1. 見られて いる 道で、どうやって かぎを わたす?
1. 鍵を渡す道が、そもそも安全ではない
1. 鍵配送問題 ── 秘密の通信路を先に用意できない
ひみつの 手紙は、2人だけが 知って いる かぎ(あいこと ば)が あれば、他の 人に 読まれません。でも、その かぎを、どうやって 相手に つたえるのでしょう。
手紙で 送れば、とちゅうで 見られるかも しれません。かぎを つたえる ために、また ほかの ひみつの 道が いる。これは 昔から の こまりごとでした。
ウェブサイトの 相手は、会った ことも ない 人(の コンピューター)です。前もって 会って きめる ことも できません。
「合言葉を決める合言葉」がほしい
暗号は、送る人と受け取る人が同じ鍵を持っていれば成り立ちます。ただし、その鍵をどうやって相手に届けるかが問題です。届ける途中で盗み見られたら、暗号の意味がなくなります。
ネットの買い物やログインでは、相手は一度も会ったことのないサーバーです。あらかじめ安全な通信路で鍵を渡しておくことはできません。1976年の論文が取り組んだのは、この問題でした[1]。
共通鍵暗号は、両者が同じ鍵を持つことが前提になる。その鍵を運ぶための安全な通信路を別に用意する必要があり、これが鍵配送の問題である。Diffie と Hellman の論文 “New Directions in Cryptography” は、1976年11月にIEEE Transactions on Information Theory 22巻(644–654頁)に載り、秘密の鍵を配る通信路の必要をへらす新しい暗号の形を提案した[1](読みはディフィー、ヘルマン)。
Webのサーバーとブラウザーは、初対面であるのが普通だ。事前の共有を前提にできないから、この問題は実用上、避けて通れない。
2. 見られて いても、同じ かぎが できる?
2. 「聞かれていても同じ鍵になる」1976年の発想
2. Diffie-Hellman鍵交換 ── 何も共有せずに同じ鍵を得る
1976年、2人の 人が ふしぎな やり方を 見つけました。はじめは なにも ひみつを 分けて いない 2人が、みんなに 聞かれる 道で やりとりを して、さいごに 同じ かぎを 手に 入れます[2]。
たとえば 絵の具で 考えて みます。2人は、同じ 黄色を 出します。ここまでは 見られて も 平気です。それから、それぞれ 自分だけの ひみつの 色を 黄色に まぜ、まぜた 色を 交かん します。
もらった 色に、また 自分の ひみつの 色を たすと、2人とも 同じ 色に なります。見て いた 人は、まざった 色は 見えても、ひみつの 色が 何なのか わかりません。
ただし 本当は、絵の具では ありません。もとにもどしにくい 数の けいさんを 使います。絵の具は、じっくり 調べれば 当てられて しまうかも しれません。
絵の具で考えると
1976年に発表されたこの方法(Diffie-Hellman鍵交換)は、最初は何も秘密を共有していない2人が、盗聴される通信路の上でやりとりをして、最後に同じ秘密の鍵を手に入れるというものです[2]。盗み聞きしている人がその鍵を求めるのは、事実上できないと説明されています。
イメージとして、絵の具の色の混ぜ合わせがよく使われます。2人が同じ黄色を用意し、それぞれ自分だけの秘密の色を混ぜ、混ざった色を交換します。相手から受け取った色に、もう一度自分の秘密の色を混ぜると、2人とも同じ色になります。途中を見ていた人には、混ざった色は見えても、それぞれの秘密の色は分かりません。
ただし、この比喩には限界があります。実際は色ではなく、逆にたどるのが極めて難しい計算を使います。絵の具は、混ぜた色から元の色を推測できてしまうことがあり、原理が完全には一致しません。
Diffie-Hellman鍵交換は、最初は何も秘密を共有していない2者が、完全に安全でない通信路でやりとりをして、最後に同一の秘密鍵に至る方法である。盗聴者が同じ鍵を求めるのは事実上できない、とされる[2]。
絵の具の混色でたとえると、共通の色に各自の秘密の色を混ぜて交換し、受け取った色にもう一度自分の秘密の色を混ぜれば同じ色になる。だが実際の方式は、逆算が難しい数学的な操作にもとづき、混色の比喩は原理まで一致しない。このメモでは数学の細部には立ち入らない。
3. じつは、先に 見つけて いた 人たちが いた
3. 発表より前に、秘密の研究室で
3. GCHQの先行研究とRSA
この 大はっけんには、おまけの 話が あります。イギリスの ある 役所(GCHQ)の 中でも、にた 考え方が、こっそり 研究されて いたと 言われて います。ひみつの ままだったので、だれも 知りませんでした[3]。
その 研究の うち、2つの 文書が みんなに 公開されたのは、1997年です。もう 世の中では、この しくみを 使った ものが 売られて いました。
1977年には、ほかの 3人が RSAと いう やり方を 発表します。ざっしの コラムで しょうかいされ、広く 知られる ように なりました[4]。
公開されるまで秘密だった研究
英国の情報機関GCHQでは、公開鍵暗号にあたる研究が、公開よりも前に秘密のうちに行われていたと伝えられています。ある研究者が「秘密の鍵を先に渡さなくても暗号が可能だ」と示し、別の研究者が1973年に大きな数の素因数分解の難しさを使った実用的な方式を書き、さらに別の研究者が1974年に鍵交換の方式を考えた、とされています[3]。
このうちEllisとCocksの文書が機密解除されたのは1997年で、RSAが特許を取って商品になったあとでした[3]。最初の研究者が考えついた年は、資料によって1969年とも1970年とも書かれています。
民間側では1977年に、Rivest・Shamir・AdlemanがRSA暗号を発表しました。同じ年の8月、数学コラムニストのマーティン・ガードナーがScientific Americanのコラムで紹介し、広く知られるきっかけになったと説明されています[4]。
GCHQでは、公開鍵暗号にあたる研究が公開より前に秘密で進んでいた。Ellisが「非秘密暗号」の可能性を示し(1969年または1970年と資料が割れる)、Cocksが1973年に素因数分解の難しさを使う方式(のちのRSAに相当)を書き、Williamsonが1974年に鍵交換の同等の方式を考えた。EllisとCocksの文書は1997年に機密解除された。GCHQ側の文書は、RSAが特許になり商用化されたあとに公開された[3](The Cipher Museumの解説による二次資料)。
RSAは1977年にRivest・Shamir・Adlemanが発表し、同年8月にMartin GardnerがScientific American誌の「Mathematical Games」欄で紹介して広く知られた[4]。公開の順序と、先に考えていたかどうかは別のことである。
4. 話して いる 相手は、本ものだろうか
4. 鍵が決まっても、相手が本物とは限らない
4. 証明書と認証局 ── 鍵と持ち主を結びつける
かぎが 同じに なっても、まだ 問題が のこります。いま 話して いる 相手が、にせものだったら どう でしょう。にせものと ひみつの かぎを きめても、意味が ありません。
そこで、しょうめいしょ(あいての 名前と、かぎの 持ち主を むすびつけた 紙)が 使われます。しんじられる 「にんしょうきょく」と いう ところが、その 紙に はんこの ような しるしを つけて、本物だと たしかめます[5]。
ブラウザーは、自分が しんじて いる ところの リストと くらべて、しるしが 本物か しらべます[6]。ただし 役所の はんこは たとえにすぎず、本当の しくみは デジタルの しるしです。
証明書は「鍵と持ち主の結びつき」
安全に鍵を決められても、その相手がなりすましだったら意味がありません。そこで使われるのが公開鍵証明書です。公開鍵とその持ち主(サイトの名前など)を結びつけたデータで、その結びつきは、信頼された認証局(CA)が電子署名をつけることで保証されます[5]。
ブラウザーは、サイトの証明書を、自分が持っている信頼できる認証局の一覧と照らし合わせます。間に中間の認証局をはさんでいても、署名をたどって一覧にある根元(ルート)の証明書までつながれば信頼します[6]。TLS 1.3では、この証明書は、鍵を決めた相手が本物かを確かめる(認証する)ために使われます。
身分証明書やパスポートに近いところはありますが、国の役所が出すものとは仕組みがちがいます。確認は、電子署名という計算で行われます。
5. しょうめいしょは、タダで もらえる?
5. 無料で自動、Let's Encrypt
5. Let's Encrypt ── 証明書の取得を誰にでも開く
むかしは、しょうめいしょを 手に 入れるのに、お金や 手間が かかる ことが ありました。いまは、ドメイン(サイトの 住所)の 持ち主なら だれでも、むりょうで とれる しくみが あります。「Let's Encrypt」です[7]。
2015年12月に 公開べータ(ためしの 公開)、2016年4月に せいしきに はじまったと 言われて います。しょうめいしょは、じどうで こうしんされる しくみで 使われます。
「誰でも無料」が変えたもの
Let's Encryptは、ドメイン名の持ち主なら誰でも無料で、信頼される証明書を取れる仕組みです。非営利団体ISRGが運営し、EFF・Mozilla・ミシガン大学・Akamai・Ciscoなどが設立に関わりました[7]。
2015年12月3日に公開ベータ、2016年4月12日に正式開始とされています。証明書の有効期間は標準で90日ですが、更新はACMEという自動の仕組みで行われます。なお、この日付と90日はWikipediaを経由した情報で、公式ページで直接確認した数字ではありません。
Let's Encryptは、ドメイン名の所有者なら誰でも無料で信頼される証明書を得られる仕組みで、非営利のISRGが運営する。EFF、Mozilla、ミシガン大学、Akamai、Ciscoなどが設立に関わり、2015年12月3日に公開ベータ、2016年4月12日に正式開始とされる。既定の有効期間は90日で、更新は自動化プロトコルACMEで行う[7]。日付と90日は、公式ページではなくWikipedia経由の情報である。
6. かぎは、つかいすてに する
6. 使い捨ての鍵 ── TLS 1.3の考え方
6. TLS 1.3 ── 使い捨てのDHと前方秘匿性
いま 使われて いる 「TLS 1.3」という きまりでは、ふつうは、かぎを その ときだけの つかいすてに します[8]。
もし あとで、だれかが 大切な 長く 使う かぎを ぬすんでも、むかしの 通信は 読めません。これを 「ぜんぽうひとく」と いいます。
7. かぎマークが あれば あんしん?
7. 鍵マークは「安全なサイト」の印ではない
7. 鍵マークの意味の見直し ── Chrome 117(2023年9月)
アドレスの 横の かぎマークは、「通信が まもられて いる」と いう しるしです。でも 「この サイトは あんぜん」という 意味では ありません[9]。
にせの サイトも、この マークを 出せるからです。HTTPSの ページは とても 多く、Googleは 2023年ごろの はっぴょうで、9わりを こえたと せつめいして います[10]。あまりに ふつうに なったので、Chromeは 2023年9月の バージョン117で、かぎの しるしを べつの 図に かえました。見た目は、たんまつや バージョンで ちがいます。
HTTPSは9割超、でも印の意味は誤解されていた
Chromeは2023年9月のChrome 117で、HTTPSの鍵マークを中立的な図(調整アイコン)に置き換えました。表示は端末やバージョンで異なります。理由として、鍵マークを「そのサイトは安全」の意味に受け取る人が多いこと、フィッシングサイトのほぼすべてもHTTPSで鍵マークを出すことが挙げられています[9]。
HTTPSの割合は、Chromeで読み込まれるページで、2016年ごろデスクトップで半分を超え、その後に9割超と説明されるまで増えました[10]。数字は出典で揺れ、最新の値は確認できていません。
鍵マークが保証しているのは「途中で盗み聞きや書き換えをされにくい」ことと、証明書の持ち主のドメインです。中身が信用できるかは、別に考える必要があります。
Chromeは2023年9月のChrome 117で、HTTPSの鍵マークを中立的な「調整」アイコンに置き換えた(表示は端末やバージョンで異なる)。鍵マークを「そのサイトは安全」の意味に誤解する人が多いこと、フィッシングサイトのほぼすべてもHTTPSで鍵マークが出ることが理由とされる[9](Google発表の報道による二次資料)。
Chromeで読み込まれるページのHTTPS割合は、2016年ごろデスクトップで半分超、Androidで約4割だったのち、Googleの2021〜23年の発表では9割超と説明された。99%超とする報道もあり、数字は出典で揺れる[10]。鍵マークは通信路の保護と証明書上のドメインを示すもので、サイトの中身の信頼性まで示すものではない。
8. かぎマークを クリックして みよう
8. アドレス欄のマークを開いてみる
8. 出口 ── 自分のブラウザーで確かめる/原典の読みどころ
おうちの 人と いっしょに、ブラウザーの アドレスの 左はしに ある マークを おして みましょう。「せつぞくは まもられて います」などの 文が 出る ことが あります。見た目は、ブラウザーや バージョンで ちがいます。
どんな サイトが 「https」か、まわりの 人と くらべて みるのも おもしろいです。
しらべた もとの じょうほう
参考にした情報源
参考にした情報源と、その使い方
出典について:論文の書誌、IETFの規格文書(RFC)、Let's EncryptやMozilla、Chromeの発表報道、博物館の解説を使いました。何に使ったかは、それぞれの項目の最後に書いています。検索要約にもとづく項目は、その旨を書きました。
- W. Diffie, M. E. Hellman「New Directions in Cryptography」IEEE Transactions on Information Theory 22巻、1976年。https://dl.acm.org/doi/10.1109/TIT.1976.1055638 (発表の年月と、提案の趣旨について。書誌と要旨)
- Diffie-Hellman論文の要旨紹介。http://cr.yp.to/bib/1976/diffie.pdf (鍵交換の説明について。要約文で、本文は未照合)
- The Cipher Museum「The GCHQ Trio」。https://ciphermuseum.com/ciphers/gchq-trio.html (GCHQの先行研究と1997年の機密解除について。二次資料)
- Wikipedia「RSA cryptosystem」。https://en.wikipedia.org/wiki/RSA_cryptosystem (RSAの発表年とガードナーのコラムについて。二次資料)
- RFC 5280「Internet X.509 Public Key Infrastructure Certificate and CRL Profile」IETF、2008年。https://www.rfc-editor.org/rfc/rfc5280.html (証明書と認証局の役割について)
- Mozilla Support「Secure website certificate」。https://support.mozilla.org/en-US/kb/secure-website-certificate (ブラウザーが証明書を照合する流れについて。検索要約にもとづく)
- Let's Encrypt「About」。https://letsencrypt.org/about/ (無料の証明書の仕組みについて。日付と90日はWikipedia経由)
- RFC 8446「The Transport Layer Security (TLS) Protocol Version 1.3」IETF、2018年。https://www.rfc-editor.org/rfc/rfc8446.html (TLSの目標と前方秘匿性について)
- BleepingComputer「Google will remove secure website indicators in Chrome 117」。https://www.bleepingcomputer.com/news/google/google-will-remove-secure-website-indicators-in-chrome-117/ (鍵マークの見直しについて。報道による二次資料)
- Google Transparency Report「HTTPS encryption on the web」。https://transparencyreport.google.com/https/overview?hl=en (HTTPSの割合の推移について。ページ本文は未取得で、検索結果にもとづく)
なおした ところ
更新履歴
更新履歴(改版の記録)
- 初版を公開。
このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。