No125 短縮URLの仕組み

短縮URLをご存じでしょうか?

twitterやSMS(ショートメッセージ)では1つの発言で書ける文字
数が制限されています。
あまりURLが長いと肝心の発言を書き込める量が少なくなります。
そんな時に本来のURLをギューっと圧縮したような、短縮URLという
ものが使われます。

今回はその短縮URLの仕組みを解説します。


1. 短縮URLとは?

まずは、論より証拠。以下のURLにアクセスしてみてください。

http://bit.ly/2kAG4Z4

なんだか怪しげなURLですよね。
"bit.ly" なんて見たこともないって方が大半ですよね。
一体ドコなんだよ、って感じです。

「こんな得体のしれないURLはクリックできないよ」というのは
正しい行動です。

上記のURLは筆者がとある会社のサービスを使って作成したもの
ですので、いかがわしいものではなく、このメルマガ「がんばり
すぎないセキュリティ」の紹介ページが表示されます。
(http://www.mag2.com/m/0001678731.html)

本来のURLが
http://www.mag2.com/m/0001678731.html
なのに対して、短縮URLは
http://bit.ly/2kAG4Z4
ですので、確かにかなり短くなっています。


2. 短縮URLの前にHTTPについて

短くなるのはわかった。
でも一体全体どんなしくみでそんなことができるのでしょうか?

これはブラウザがサーバとの通信に使うHTTPという通信手順(プロ
トコル)によって実現されています。

このHTTPという表記を見てピンときた方もおられるかもしれません。

URLの文字列の先頭は大文字小文字の違いはあるものの最初の4文字
はhttpとなっていますね。
この最初の数文字は「スキーム」と言って、どんな通信手順を使うかを
書くことになっています。
通信手順というくらいですから、データを送って欲しいコンピュータ
とそれを送るコンピュータ間でのルールが必要です。
少し前のメルマガ(No111 2019年6月10日)で詳しい解説をしました
ので、ここでは繰り返しませんが、いろんなデータの通信手順のこと
を「プロトコル」といいます。
インターネットの世界では、メール用、ファイル送信用、ホームページ(Web)閲覧用、といった目的毎にプロトコルが決まっています。
HTTPはその中で Web用のやり取りを決めたプロトコルなのです。

その手順はおおむね
 リクエスト:PCから「○○のデータをください」とお願い
 レスポンス:サーバは「それはコレです」と返信
といったことを繰り返して実現されています。

さて、通信を行っているといろんな予想外のコトが起きます。

例えば、古い記事などでリンク先が既になくなっちゃった場合です。
この時に出る「404 Not Found」というのを見たことがある方も
おられるでしょう。
でも、不思議ですよね?なんで404なんでしょう?

実は、この404という値はHTTPのプロトコルで規定しているステー
タスコードの一つで、「そのページはなかったよ」という意味の
値なんです。
ホームページを見るソフト(Webブラウザ)はステータスコードを
見て「ああ、このページはなかったんだな」と判断し、画面には
「見つかりませんでした」といったメッセージを表示するのです。

このステータスコードはサーバがレスポンスを返す時に必ず添える
ルールになっていて、404以外にも、いろんなものが用意されて
います。
例えば、
 200:ページは見つかった
 301:ページは別の場所に移動された
 302:ページは一時的に別の場所に移動されている
 304:ページ(内容)は前回から変わっていない
 403:ページは表示禁止である
 500:サーバ側の何らかの問題でデータが返せない
といったものがあります。

プロトコルやステータスコードの説明を長々としてきましたが、
短縮URLと関係ないやっと読むのをやめないでください。
実は上の一覧に短縮URLの動作の鍵となるステータスコードが
あるんです。
それは、ステータスコード301です。


3. 短縮URLの仕組み

上述のようにブラウザからリクエストが送られると、サーバは
ステータスコード付きでレスポンスを返します。

その時に301というコードを返すと、ブラウザはこう考えます。

「301ってことは、このページは別の場所に移動したってことだな。
 ていうことは移動先の情報も返してくれているはずだ。
 ああ、移動先は△△なのか。じゃあ今度は△△にアクセスして
 みよう。
 ....(返信待ち)
 ああ、今度は200(ページが見つかった)だな。返ってきた内容
 を表示しよう。
 ....(画面内容をレイアウトして表示)
 よしよし、これで表示完了だ」

つまり、短縮URLというのは目的のページに誘導をするサービスの
ことなんです。
短縮URLを提供するサーバにはページの内容(画像とか文章とか)は
全くありません。
単に指定のURLが呼ばれると、ステータスコード301と本来のURLを
返すだけの、シンプルなWebサービスなのです。

画面では、上記のようなやりなおしの過程は表示されませんから
まるで、圧縮されたURLが解凍されて正しいURLになったかのよう
に見えますが、内部ではこんな動きをしているのですね。


4. 誰が短縮URLを決めるのか?

短縮URLは自然発生するものではありません。
どの短縮URLも誰かが意図的に作成したものです。

その作り方ですが、短縮URL作成の専業会社があり、そこにお願い
することで簡単に誰でも作成ができます。

冒頭に例示した短縮URLもそういったサービスの一つを使って
作ったものです。

ところで、短縮URLはまるで暗号化したかのように、意味ありげに
ランダムです。が、この並び自体には大した意味はなくダブって
さえいなければどんな並びでもOKです。

要は短縮URLを発行している会社が好きなように決めているのです。


5. 実は危ない面を持つ短縮URL

と、これで終わればタダの用語解説にすぎません。

「がんばりすぎないセキュリティ」としては、もう一歩踏み込んで
おきたいと思います。

それは、セキュリティ対策からみた短縮URLです。

上記の通り、短縮URLの字面を見ても最終的にどこのページが表示
されるのか全くわかりません。

短縮URLはマルウェアやフィッシングサイトが自サイトをごまかす
ために非常によく利用されます。

特に、携帯電話のSMS(ショートメッセージサービス)では実際に
短縮URLが多用されています。
もちろん、その多くはちゃんとしたものですが、フィッシング
(詐欺)サイトやマルウェアを仕込んだ悪質なページに誘導する
ものもちらほらと出ています。
それも、「ご不在のため配達できませんでした」と宅配便からの
連絡をよそおうなど、ついついアクセスしてしまいそうな場面を
衝いてきます。

ですから短縮URLのメッセージがきても、慎重に行動しましょう。

まずは、短縮URLをGoogleで検索してください。
フィッシング(詐欺)サイトならば「詐欺注意」「偽サイト」と
いった呼びかけ情報が見つかることでしょう。

もし、怪しい情報がなくても、クリックは慎重に。

クリック後に見慣れた画面が表示されてもうかつに信用しないで
ください。最近のフィッシングサイトはホンモノそっくりです
から、見た目だけで判断するのはとても危険です。

表示されたURLを再度Googleで検索してください。(短縮URLを
クリックしても、最終的に表示されているページのURLが表示
されます)
それで、問題がなさそうであれば大丈夫でしょう。

短縮URLは便利なものですが、悪用する側にとっても便利な道具
です。

しっかりとガードするように気を付けてください。

次回もお楽しみに。

このNoteは私が主宰するメルマガ「がんばりすぎないセキュリティ」からの転載です。
誰もが気になるセキュリティに関連するトピックを毎週月曜日の早朝に配信しています。
無料ですので、是非ご登録ください。
https://www.mag2.com/m/0001678731.html
よろしければ、画面の下にあるスキ(ハートマーク)をクリックしてください。これはnoteの会員でなくてもクリックできます。

この記事が気に入ったらサポートをしてみませんか?