※2022年から技術系の記事は個人ブログに投稿しております。ぜひこちらもご覧ください→yamaday0u Blog
今回は業界未経験からのITエンジニア転職を目指し、これまでいろんなサイトやアプリを使うことを楽しむだけで、これらのサービスがどのように動いているのか知らなかったぼくが、HTTPとHTTPS、SSLについて調べたことを整理してみます。
また、内容に誤りがあれば教えていただけると嬉しいです。
HTTPとは
HTTPは「Hyper Text Transfer Protocol 」の略で、インターネット上の情報を転送するときの、OSI基本参照モデルにおける第7層である「アプリケーション層」のプロトコルです。
プロトコルとは、ネットワークを通じコンピュータ同士がやり取りするための約束事を指します。
インターネット上の情報とはHTML文書などを指し、その中身はテキスト、レイアウトの定義、画像、動画、スクリプトなどで構成されています。
URLに「http」と表示されているページはHTTPによって通信されています。
情報がそのまま状態で転送されているため、情報を盗み見られる危険があります。
HTTPSとは
HTTPSは「Hyper Text Transfer Protocol Secure」の略で、HTTPによる通信をよりsecure(安全に)行うための、アプリケーション層のプロトコルです。
「SSL」を使って暗号化しています。
URLに「https」と表示されているページはHTTPSによって通信されています。
GoogleによるとWebサイトの90%以上がhttps化されているそう。
SSLとは
SSLは「Secure Sockets Layer」の略で、インターネット上のWebブラウザとWebサーバ間の通信を暗号化するプロトコルで、アプリケーション層のプロトコルです。
ただし、現在ではSSLよりも安全なTLSが使われていますが、SSLという言葉が一般名称として定着していることから「SSL/TLS」と呼ばれるようになっているそうです。
なお、SSLとは古い規格の名称であり、2014年に脆弱性が発見されたため翌年には使用が禁止されました。現在では、より安全なTLS(Transport Layer Security)という暗号化通信の規格が使われています。SSLが「SSL/TLS」や「TLS」と呼ばれるのはそのためです。しかしながら、世間では「常時SSL化」のようにSSLという名称が暗号化通信規格の一般名称として定着しているため、本コラムでもSSLという名称を使っています。(SSLって何?意味や仕組みをわかりやすく解説!(SAKURA internet)より)
ではSSLではどのように暗号化された通信を行っているのでしょうか。
SSLによる暗号化通信の手順
SSLによる暗号化通信は以下の手順で行われています。
- Webブラウザ:SSL通信をリクエスト
- Webサーバー:SSL証明書と公開鍵を送付
- Webブラウザ:Webブラウザにあらかじめ登録されている認証局の証明書(ルート証明書)を使って「SSL証明書に記載されたドメイン」と「通信先のドメイン」が同じであることを確認
- Webブラウザ:有効なSSL証明書であった場合は、「共通鍵(セッションキー)」を生成
- Webブラウザ:共通鍵をSSL証明書に含まれる「公開鍵」で暗号化し、Webサーバーに返送
- Webサーバー:Webサーバーで保持している「秘密鍵」で共通鍵を復号
- Webブラウザ/サーバー:共通鍵を使って送受信するデータを暗号化・復号してSSL通信を成立
今回はざっくりこんな感じでまとめてみました。
ITを学び始めた初心者の参考になれば幸いです。
参考資料
HTTP の概要(MDN Web Docs moz://a)
今や常識!知っておきたいhttpsとは?httpとの違いは?(ColorfulMediaBox)
SSLって何?意味や仕組みをわかりやすく解説!(SAKURA internet)
SSL証明書とは?仕組みや種類についてわかりやすく解説(Reworks)
キタミ式イラストIT塾 基本情報技術者 令和03年(技術評論社)