こう 聞かれます
- 「HTTPS は
何を 守っているか、 説明してください」 - 「証明書は
何の ために ありますか」 - 「鍵の
マークが 付いている サイトなら 安全ですか」 (誤解が 無いかを 確かめる形)
面接官が 見ている点
- 「暗号にする」だけでなく、
書き換えの 検知と 相手の 確かめまで、 3 つを 分けて言えるか - 証明書が
「相手が本物か」を 示す物だと 分かっているか - HTTPS で
守れない 物 (サーバーの 中の 弱さ、 偽の サイト その もの ) を 区別できるか
短い答え
- HTTPS は、
HTTP の 通信を TLS で 包んで、 途中で 中身を 盗み見られないようにし、 書き換えられたら 気づけるようにします。 - さらに
証明書で、 つないだ相手が 本当に そのドメインの 持ち主の サーバーかを 確かめ、 なりすましを 防ぎます。 - 守るのは
通信の 途中だけなので、 サーバーの 中の 弱さや、 本物 そっくりの 偽の サイトまでは 防げません。
少し 詳しい答え
3 つの守り
- 盗み見を
防ぐ (機密性) 途中の Wi-Fi や ネットワークの 機械が 通信を 拾っても、 中身 (パスワード、 Cookie、 本文) を 読めません - 書き換えに
気づく (完全性) 途中で 1 文字でも 変えられると、 受け取った 側で 検知して 捨てます。 広告を 差し込まれる、といった 改ざんを防ぎます - 相手を
確かめる (真正性) 証明書で、 つないだ相手が 本物の サーバーかを 確かめます
証明書の役目
証明書は
偽の
守らない物
- サーバーの中の弱さ SQL インジェクションや XSS は、
暗号の 通信の 中を 通って届きます - 偽の
サイトそのもの 似た 名前の 偽の ドメインでも、 その 名前の 証明書は 取れます。 鍵の マークは 「その 名前の 相手と つながった」 ことしか 示しません - どこへつないだか
通信の 中身は 隠れても、 どの IP アドレスに つない だかや、 名前の 問い 合わせから、 どの サイトを 見たかが 途中で 分かる ことがあります
作った
よく ある間違い
- 「HTTPS なら
安全な サイト」と言う HTTPS が 示すのは、 通信が 守られている ことと、 その 名前の 相手に つながった ことです。 サイトが 善良か どうかは 示しません - 「暗号にするだけ」と言う
書き換えの 検知と 相手の 確かめが 抜けると、 なぜ証明書が 要るのかを 説明できません - 「ログインの
頁だけ HTTPS に すれば よい」と言う ログインの あとに 送る Cookie を HTTP で 盗まれれば、 なりすまされます。 サイト全体を HTTPS にします
深掘りの問い
- 「証明書の
ドメインが 合わない とき、 ブラウザが 止めるのは なぜですか」 つないだ相手が、 開こうとした 名前の 持ち主だと 確かめられないからです。 なりすましの 疑いが ある、と答えます - 「公開鍵の
暗号と 共通鍵の 暗号は、 どう 使い分けていますか」 つなぐ 最初の 取り 決めで 公開鍵の 仕組みを 使って 共通の 鍵を 決め、 その あとの 本文は 速い共通鍵で 暗号に する、と答えます - 「HTTP のまま
開かれた ときに、 HTTPS へ 寄せる方法は」 HTTPS の 住所へ移す案内 (301) と、 次から HTTPS だけを 使わせる ヘッダー (HSTS) を挙げます