- angel_p_57
- 2153
- 14
- 1
- 0
じゃまあ、折角だから「簡単な」説明だけやっちゃうか。> 証明書含めSSL/TLSの概要 なお、既存の説明と混ぜ合わせるのは注意。だってデタラメな説明と整合するわけないんだから。混乱のもと。 twitter.com/angel_p_57/sta…
2023-05-27 22:37:54うーん。根はとっても簡単なのだけど。> SSL証明書 ※テキトーな説明が出回ってるせいで、そこを否定して回る分がどうしてもマイナスにはなる。ほんとろくでもない。 twitter.com/infragirl755/s…
2023-05-26 21:15:43まず、暗号技術による通信保護の方式として代表的なものが SSL/TLS、他にも類似の方式として SSH がある。一応後者は github なんかで使う人も最近多いから、名前だけは挙げておこう。
2023-05-27 22:38:32SSL/TLS と併記風にしているのは、かつてあった SSL という規格の延長上に TLS があり、今はその SSL は使われていないけど、用語として結構残っているから。それ以上に深い意味はないし、単に TLS でも構わないし、もう使ってないとはいえ SSL でも大抵は通じる。
2023-05-27 22:38:58通信保護ってなに? というと、通信の暗号化 ( やりとりするデータを暗号化して第三者から秘匿する )、改ざん検知 ( やりとりするデータが書き換えられたらそれと分かる ) の2点セット。前者はよく説明されるけど、後者は忘れられがち。
2023-05-27 22:39:30で、SSH については記事「SSHの公開鍵ってなに?」qiita.com/angel_p_57/ite… にあるけど、今回は SSL/TLS の方。 こちらは、HTTP(web) であったり、SMTP,POP,IMAP (mail) といった通信方式と組み合わせて使う。代表的なのは HTTP を保護した HTTPS で、https://~ というURLで誰もが目にしているはず。
2023-05-27 22:39:59情報処理技術者試験で「7階層モデル」ってのを覚えた人であれば、第4層 ( トランスポート層 ) に位置するものだと思い出してほしい。名前からして Transport Layer Security で TLS だし。 ※ HTTP とかは第7層 ( アプリケーション層 )
2023-05-27 22:40:28さて、で、SSL/TLS で暗号化・改ざん検知を行うわけだけど、その詳細はある意味どうでもいい。「なんかいい感じに暗号化とかしてます」で構わない。重要なのはそんなところではない。
2023-05-27 22:40:54それよりも重要なのは、通信保護の前提となる「(サーバ)認証」これは、「アクセスしているサイトが本当に ○○.com ですよ」という、サイトとしての「本人確認」を表すものだ。
2023-05-27 22:41:18「え? なんでそんなの要るの?」というと理由は簡単。SSL/TLS での通信保護がなかった場合、「通信相手が ○○.com である」という保証がないから。「http: //○○.com/ ってブラウザに指定したよ?」と言っても、通信に干渉を受ければニセのサイトに接続させられる可能性がある。
2023-05-27 22:41:52加えて、SSL/TLS で幾ら暗号化ができるといっても、意図した相手と通信できていなければ意味がない。「amazon .comで買い物します、クレジットカード番号含め暗号化して貰わないとね」という場面で「暗号化したけど実は amazoness .com に接続されてました」では意味がないから。
2023-05-27 22:42:33そのために使われるのが、(SSL)サーバ証明書という、一種の公開鍵証明書だ。SSL証明書と言ったり、TLS証明書と言ったり、呼び方は色々あるけど、まあそこの違いは気にしなくていい。 これは運転免許証やパスポートのように「サイトの身分証明書」として働く。 pic.twitter.com/fOsG4bjKoL
2023-05-27 22:43:24サーバ証明書含め、各種公開鍵証明書はデジタル署名の応用事例で、「この公開鍵の所有者は○○です」というのを、認証局(CA)という組織が証明するデータとなる。デジタル署名含めこのまとめ程度把握していれば十分。 togetter.com/li/1803195
2023-05-27 22:44:21で、本人確認するときに「身分証拝見します…、写真と同じ人ですね、確かに日本花子さんと本人確認できました」と手続きするように、サーバ証明書も同じような使い方をする。違うのは写真ではなく公開鍵が出てくるというところ。
2023-05-27 22:44:44この公開鍵は、サーバが持つ署名作成用の秘密鍵とセットになっている。サーバは認証の度に使い捨ての署名データを作り、クライアントでは公開鍵で検証 ( 署名が本物かどうか確認 ) する。正しい署名を作れるのは秘密鍵の持ち主だけだから、これが顔写真代わりに本人確認に使えるということ。
2023-05-27 22:45:19もちろん、身分証で氏名を確認するのと同じように、「証明書が今アクセスしている○○.com用の『公式かつ有効な』ものである」ということも一緒に確認している ( でないと意味がない )。 ただこれはブラウザが勝手にやってるので、ユーザはURLが意図通りのサイトのものか確認していれば良い。
2023-05-27 22:45:57ということで、「サーバ証明書による認証」というのが、SSL/TLSで一番大事なところ。ユーザは認証手続きをブラウザに任せつつ、アクセスしているURLを把握する ( 意図通りのサイトのURLか、等 ) のがポイントとなる。
2023-05-27 22:46:22ちなみに、これあんまり誰も言わないんだけど「このURLが確かにアクセスしたかったサイトのものです」というのは、twitter.com 含め有名サイトだと問題にならないんだけど、そうでない場合 Web 上では本来完結しない。
2023-05-27 22:47:04なので新聞やテレビで「わが社のサイトは○○.com!」的な周知するのが筋なんだけど ( アメリカのCMってそんな感じよね )、日本だと大分意識が薄いし、なんなら「○○で検索!」的な宣伝が流行ったせいで逆行している感すらある。
2023-05-27 22:47:38まあ、「○○急便です、こちらのサイトにアクセスしてください!」的な詐欺に引っかかる人が後を絶たないのは、そういう基礎知識の薄さが効いてるんだろうなあと思う。 ※「○○急便のサイトは○○.com!」って周知が別途あれば、URL見て回避できるわけだから
2023-05-27 22:48:16ところで、巷の宣伝文句だと「証明書は信頼の証」的なものがあったりするんだけど、ここから分かるように「URL通りの本物のサイトか分かるための身分証」でしかないので、サイトの信頼性には直接結びつかない。
2023-05-27 22:48:38サイトの信頼性は、あくまでサイト運営者がコンテンツの質であったりサイトの知名度なりで培うもので、サーバ証明書はそれを「本物のサイト」という「認証」で裏付けるものでしかない。
2023-05-27 22:49:07早い話、パスポート見せて本人確認できても、それだけでその人の信頼性は上がらんでしょ、ってこと。なんなら悪意あるサイトでもフツーにサーバ証明書取得して運営はできる。「通信の保護」と「サイトの信頼性」は分けて考えましょうというのが注意事項。
2023-05-27 22:49:34取り敢えずこんなところだろうか。 人によっては「DV/OV/EVの説明が無い!」と不満に感じるかも知れないけど、当然そんなの「重要性が薄いから外している」だけなので悪しからず。
2023-05-27 22:51:00