WEBサイト構築に欠かせない!HTTPSって結局なんなの?
2021.8.17 (更新日 2024.7.16)
こんにちは。PIVOTコラム編集部です。
WEBサイトではもはやHTTPS通信があたりまえですが、
HTTP(Sなし)だと何が問題なのか、HTTPSにするには何が必要か、コストはどれくらいかかるのか、など、おさらいしましょう。
もくじ
WEBサイトとの通信経路についておさらい
スマホでSafariやChromeを起動したり、SNSからのリンクを踏むと表示されるWEBサイト、ふだん意識することはないと思いますが、通信経路についておさらいしましょう。
(パーツの縮尺がめちゃくちゃなのはご愛嬌…)
なんとなくイメージできましたか?
実はこの通信経路、下図のとおり、情報は誰からでも取り放題(!!)状態です。
HTTPSの話からはそれますが、「無線LANの通信を暗号化しましょう」という背景は、暗号化しないで送ると、上図のように情報を取り放題、しかも内容が丸見えだからです。
(PIVOTでは在宅ワークの申請時に、自宅の無線LAN通信が暗号化されていることをキャプチャで送り、情シスがチェックします)
HTTPS通信のしくみ
HTTP(Sなし)通信は、HTTPという世界共通言語(※1)をそのまま通信で送ります。すなわち、どんなサイトを見ているのか、入力フォームで何を送ったのか、知識とツールのある人にはわかってしまいます。
(※1) 正確には言語とは違いますが、わかりやすく言語という言葉を使っています。
それでは、HTTPS通信のしくみを見ていきましょう。
下図で、サイトが表示されるまでの流れを説明します。ブラウザに画面が表示される前の裏側のやりとりなので、画面からは何が起こっているのかわかりません。
(便宜的に、間の通信経路は省略します。また、典型的な例を示しているので、異なる場合もあります。)
ここでは概念としての「鍵」が全部で3つ出てきます。
WEBサイト側から提供される「公開鍵」、
WEBサイト側のみがもっている「秘密鍵」、
利用者側で作成する「共通鍵」です。
まず、公開して問題ない、鍵をかけることしかできない鍵(公開鍵)をサイトから送り、受け取った側で作成した鍵(共通鍵)を、公開鍵で暗号化してサーバに送ります。公開鍵は鍵を閉めることしかできないため、通信を傍受されても解読されません。
サーバは、鍵を開けることのできる秘密鍵を持っているので、共通鍵を取り出し、以降の通信は共通鍵をかけてやりとりします。共通鍵はこの二者しか持っていないので、通信が傍受されても(鍵のかかったカバンが盗まれても)開けられません。
HTTPSサイトにするには?
HTTPSサイトにするには、SSLサーバー証明書(以下、SSL証明書)を用います。SSL証明書とは、以下の図のように作成・使用されるものです。
認証局はいくつかありますが、ブラウザ側で認証されたWebサイトのリストを持つので、世界で認定された認証局に依頼して証明書を発行してもらいます。(認証リストの更新は、ブラウザやOSがアップデートされるときなどに行われています)
エンジニアがよく「自己証明書」「オレオレ証明書」などと呼んで使うものは、どこの認証局にも認証されていない(上図の印がない)けど、HTTPS通信はできるというSSL証明書です。
SSL証明書の種類
SSL証明書には、いくつか種類があります。また、種類によってお値段が違います。自己証明書、オレオレ証明書は上記で説明したので省略します。ざっくり表にすると…
SSL証明書の期限と更新手続き
SSL証明書には有効期限があり、2021/07/14現在、取得した日から最大約1年となっています。この有効期限については、セキュリティの観点から(詳細な理由については割愛します)最大6ヶ月、3ヶ月…と短くする案が、ブラウザ開発ベンダーと認証局の会議で検討されています。短くなることにより更新手続きが頻繁に必要になりますが、有効期限は作成するときに決まるため、更新の計画を立てることは可能です。
ドメイン認証型であれば、クラウドサービスで自動更新の仕組みも整備されてきています。今後、更新が簡単なのか/手作業が必要で大変なのか/自動更新の仕組みをつくっておくのか、という観点もSSL証明書の選択の観点に入ってくるでしょう。
参考までに、自己証明書なら有効期限を好きなだけ長く設定できるので、スマホやPC以外の限られたサーバにしか接続しない通信機器やIoTデバイスなどでよく使われます。
WEBサイト構築に欠かせない!HTTPSって結局なんなの? ~ まとめ
これでもう、HTTPS通信についてはカンペキ!でしょうか?
SSL証明書の期限短縮については、今後もウォッチしていきます!
「真ん中に『人』がいる
デジタルサービス」をつくりませんか。
お仕事のご相談やお見積もりのご依頼、具体的なご相談は、こちらからお問い合わせください。