クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

HTTPSが守るもの

レッスンの全文をここで読めます。無料アカウントを作ると、コマンドをラボで実行し、クイズと課題に取り組めます。

50分のレッスンコマンドなし

市役所のオンライン申請

ある市役所では、住民票の写しをオンラインで申し込めます。名前、住所、生年月日が、インターネットを通って届きます。

途中には、駅のWi-Fiや、いくつもの会社の機器があります。それでも中身が読まれないのは、HTTPSを使っているからです。

では、HTTPSは何を守り、何を守らないのでしょうか。

このレッスンのゴール

メモ

HTTPSが何を守るのかを説明できる。

キーワード

ことばいみれい
HTTPWebのページを頼み、返すための決まり
リクエストブラウザーからサーバーへの頼みごと
レスポンスサーバーからの返事
TLS通り道を暗号化するしくみ
HTTPSTLSで守ったHTTPhttps://shinsei.example.com
証明書サーバーが名前の持ち主だと示す書類

学生が入力するセルは、このプレビューでは空白です。

HTTPは頼みごとと返事

ブラウザーは、サーバーにリクエストを送ります。「このページをください」という頼みごとです。

サーバーはレスポンスを返します。最初の行の数字で、うまくいったかがわかります。200なら成功、404なら見つからない、です。

HTTPだけでは、このやりとりは誰でも読める文字のまま流れます。

HTTPのやりとりの例

コード: bash
GET /shinsei/form HTTP/1.1
Host: shinsei.example.com

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8

HTTPSは三つのことを守る

HTTPSは、HTTPのやりとりをTLSで包みます。これで三つのことが守られます。

一つ目は、途中で中身を読まれないこと。二つ目は、途中で中身を書き換えられないこと。三つ目は、相手が本物のサーバーだと確かめられることです。

三つ目には、証明書を使います。信頼できる発行元が、名前の持ち主だと保証した書類です。

例: 申請フォームで守られること

困ることHTTPだけHTTPS
駅のWi-Fiで住所を読まれる読まれる読まれない
途中で申請の中身を変えられる変えられる変えると気づく
偽の市役所サイトにつながる気づけない証明書で気づく
どのサイトに行ったか知られる知られる名前は知られる

学生が入力するセルは、このプレビューでは空白です。

やってみよう: 住所の始まりを見る

コード: python
urls = [
    "https://shinsei.example.com/form",
    "http://shinsei.example.com/form",
    "https://www.example.com/",
]

for url in urls:
    # https:// で始まるときだけ、通り道が暗号化されます
    if url.startswith("https://"):
        print("暗号化あり:", url)
    else:
        print("暗号化なし:", url)

# 自分で一つ、http:// の住所を urls に足して実行しましょう

よくある思い違い

注意

鍵のマークが出ていれば、安全なサイトだと思う人が多いです。鍵のマークが示すのは、通り道が守られていることだけです。詐欺のサイトでも証明書は取れるので、名前を必ず確かめます。

証明書の名前を確かめる

ブラウザーは、証明書に書かれた名前と、つなぎに行った名前を比べます。合わなければ、警告を出して止めます。

「.example.com」という証明書もあります。 は、点を含まない一段の名前の代わりになります。www.example.com には合いますが、a.b.example.com には合いません。

証明書には期限もあり、切れると同じように警告が出ます。

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。