違いを解説君

あるゆる物事の"違い"をわかりやすく解説する情報マガジン

HUB

ITの違い

【URLアドレス】httpとhttpsの違いをわかりやすく解説!

投稿日:

Internet ExplorerやFirefoxなどのブラウザを使っていると、上の方に "http://..." といった感じでURLアドレスが表示されますよね。

はなこ
最近、URLアドレスが『http』と『https』の2種類表示されるんだけど、あれって何が違うのかな?
たろう
あれ、僕も気になっていたんだ。

最近は、『https』の方が多く表示されるよね。

れいか
『https』の方が安全だと聞いたことがあるけど。
はなこ
それって、『http』は危険だってこと?

 

ということで、今回は『http』と『https』の違いについて解説します。

スポンサーリンク

『http』と『https』の違い

パソコンと南京錠

パソコンと南京錠

『http』も『https』も、

ブラウザとWebサーバの間の『プロトコル』

を表します。

『プロトコル』の定義

『プロトコル』とは、

サーバやパソコンの間でデータをやり取りする時の約束事

のことです。

例えば、電話をかけた時、

「もしもし、○○さんですか?」

「はい、そうです。」

などとやり取りをしますよね。

このような通信のやり取りを定義した規則のことを『プロトコル』といいます。

ブラウザがWebサーバからデータをダウンロードして結果を表示するときも『プロトコル』が定義されています。

その規則が『http』と『https』の2種類ある

ということです。

 

『http』の定義

『http』は

Hypertext Transfer Protocol(ハイパートランスファープロトコル)

の略で、

ブラウザが要求したページや画像・動画などのコンテンツをWebサーバが返すときの『プロトコル』

を意味します。

ブラウザが要求する情報や、Webサーバが返すページ・コンテンツの内容は、そのままやり取りされます。

そのため、通信内容を途中で盗み見ることで、どんな内容がやり取りされているかが簡単に分かってしまいます。

例えば、クレジットカードの番号が盗み取られてしまうのは非常に危険ですよね。

 

そこで、

通信内容が盗まれても解読ができないように暗号化したプロトコル

が『https』というわけです。

『https』の定義

『https』は

Hypertext Transfer Protocol Secure(ハイパーテキストトランスファープロトコルセキュア)

の略で、

ブラウザが要求する情報や、Webサーバが返すページ・コンテンツを暗号化してやり取りします。

 

この暗号化には、昔は『SSL(Secure Sockets Layer)』という『プロトコル』が利用されていました。

しかし、現在ではそれを改良した『TLS(Transport Layer Security)』という『プロトコル』が利用されています。

 

『https』の通信手順は、次のようになります。

  1. ブラウザは、Webサーバに接続を要求する。
  2. Webサーバは『公開鍵』をブラウザに送る。
  3. ブラウザは『共通鍵』を作成し、Webサーバから受け取った『公開鍵』で暗号化してWebサーバへ送る。
  4. Webサーバは『秘密鍵』を使ってブラウザから受け取った『共通鍵』を複合化する。
  5. あとは『http』プロトコルを使って、『共通鍵』で暗号化・復号化しながらやり取りをする。

ここで、3つの鍵『公開鍵』『秘密鍵』『共通鍵』が登場しましたので、順を追って説明します。

 

まず、『公開鍵』と『秘密鍵』は『公開鍵暗号』と呼ばれる方法を使った暗号化・復号化に使われます。

例えば、

『たろうさんがはなこさんにメッセージを送りたい』

とします。

 

はなこ
たろうさん、この『公開鍵』を使って暗号化して下さい。
はい、暗号化しました。

じゃあ、暗号化したメッセージを送りますね。

たろう
はなこ
あとは、私が持っている『秘密鍵』で復号化して、よし、メッセージが読めました。

 

このように、

メッセージを暗号化する時は『公開鍵』を使い、それを復号化する時は『秘密鍵』を使います。

そうすると、相手に暗号化してもらう時に『公開鍵』だけを渡せばよく、『秘密鍵』は自分だけが持つことになります。

だから、鍵をやり取りしている時にだれかに盗まれて、メッセージを復号化されてしまう心配はなくなるわけです。

 

これに対して、暗号化も復号化も同じ『共通鍵』を使う場合は『共通鍵暗号』という方式になります。

 

全ての内容に『公開鍵暗号』が利用できればいいのですが、『公開鍵暗号』には一つ弱点があります。

それは、処理が非常に重くなるという問題です。

そのため、

共通鍵暗号に使う共通鍵だけを『公開鍵暗号』で渡して、あとは『共通鍵暗号』でやり取りする

方式が使われています。

 

『https』には、データを暗号化する他にもセキュリティ上重要な役割があります。

  • データを暗号化する。
  • 通信相手の認証
  • 通信内容の改ざん検知

データの暗号化については、すでに説明しました。

 

通信相手の認証とは、

Webサーバにある『SSL証明書』というものを使って、通信相手が本物であるかどうかを判定する

機能のことです。

本物とそっくりなURLアドレスを持った偽のサイトに誤ってアクセスしてしまう問題を回避することができます。

また、通信内容の改ざん検知とは、

通信内容が途中で変更されていないかを検知する

機能のことです。

通信内容を途中で拾い上げて、その内容を変更してしまうような攻撃に対処することができます。

 

はなこ
『http』よりも『https』の方が安全だということね。
昔は、ネット・ショッピングでクレジットカードの番号を送るようなやり取りのときだけ使われていたけど、最近は全部『https』になっていることも多いね。
たろう
はなこ
どこにアクセスしていたか、全部見えてしまうといやだものね。

その方が安心できるわ。

スポンサーリンク

まとめ

今回のポイントについて、まとめていきましょう。

ポイント

  • 『http』も『https』も、Webサーバとブラウザの間の通信内容を定義した『プロトコル』である。
  • 『https』は、『http』の通信内容を暗号化した『プロトコル』である。
  • 『https』での暗号化には、『公開鍵暗号』と『共通鍵暗号』の両方が利用されている。
  • 『https』には、データの暗号化の他に、通信相手の認証と通信内容の改ざん検知の機能がある。

ブラウザを使った時、URLアドレスが "http://..." であるか "https://..." であるかによって、どちらの『プロトコル』が使われているか知ることができます。

今見ているページは安全なのかどうか、一度、注意して見てみましょう。

関連記事

-ITの違い

Copyright© 違いを解説君 , 2019 All Rights Reserved.