食べるSSL
アマゾンアンリミテッドの技術書を読んで、腹落ちしたものを覚え書きとして残していきたいと思います。なぜかいつまで立っても覚えられなかった、鍵のやり取りについて、アンリミテッドの食べるSSLでポイントが腹落ちしました。自分は公開鍵と秘密鍵がなかなか理解できなかった。なにかの技術を改善するために別の技術が出てくるという基本の流れに沿って考えればすぐに理解できるとのことでしたので、簡単に流れとメモ書きを残しておきます。
共通鍵暗号方式
情報の暗号、復号のルールをお互いで決めておく方式
双方共通鍵のやり取りを盗み見されないかという点と、情報のやり取りをする相手が増えるとその相手ごとに共通鍵が必要になるのが弱点
公開鍵暗号方式
公開鍵と秘密鍵で暗号、復号をする方式。
公開鍵
自分の秘密鍵で復号できる暗号を作る鍵を公開している。
秘密鍵
公開鍵を使って暗号化されたものを複合する鍵。自分しかもっていない。
共通鍵の弱点を補うように出てきた暗号方式。これであれば、相手と直接、鍵のやり取りをする必要がなく、相手側は自分側の公開鍵を見て暗号化するのだから、相手が増えると鍵が増えるということもない。
自分は、暗号を公開する、非公開にすると考えてしまっていたから理解が遅くなった。
鍵そのものが公開(みんな知っていいか)なのか秘密なのか(自分だけが知っている)ということ。弱点は共通鍵より処理が遅いこと。
ハイブリッド暗号方式
共通鍵暗号方式と公開鍵暗号方式を組み合わせたもの。
まず、共通鍵の受け渡しを安全な公開鍵暗号方式で行う。双方に共通鍵が渡ったあとは共通鍵でのやりとりをする。
共通鍵の受け渡しを公開かぎ暗号方式で行いそれ以降を共通鍵暗号方式でやりとりすることで処理事態も早くなる。いいとこ取り。
SSLでのHTTPであるHTTPSのやり取りもこのハイブリッド暗号方式で行われているとのこと。公開鍵暗号方式を使って共通鍵のやり取りを行うことをハンドシェイク、その後の共通鍵を使ってのやり取りをデータ転送っていうらしい。
これがふに落ちただけでも非常にありがたった。