OpenSSLとかのメモ
自分用
もくじ
そもそもSSL通信って何
共通鍵暗号って
暗号化と復号化に同じ鍵を使う。二人だけの共通鍵を作って使う感じ。『AED』はこれの暗号化方式の一種。
相手ごとに鍵をいちいち作る必要があるけど、処理が速い。
ただ、鍵の受け渡し自体を盗聴されたらアウト。
公開鍵暗号って
暗号化と復号化に別の鍵を使う。暗号化は公開鍵で、復号は秘密鍵で行う。『RSA』はこれの暗号化方式の一種。
- 受信側で公開鍵と秘密鍵を生成する。
- 受信側から送信側に公開鍵を送る。
- 送信側は、公開鍵で送信内容を暗号化して送る。
安全だけど処理が遅いらしい。
SSL通信って
SSL通信では、最初だけ公開鍵暗号を、それ以降は共通鍵暗号を使ってやりとりすることで、二つのいいとこどりをしている。
- クライアントからサーバーに接続要求する。
- サーバーはクライアントに公開鍵つきの証明書を送る。
- クライアントはブラウザのルート証明書を使って、サーバーから送られてきた証明書が本物かどうか確認する。
- クライアントは共通鍵を作って、公開鍵で共通鍵を暗号化して、サーバーに送る。
- サーバーは送られてきたものを秘密鍵で復号して、共通鍵を手に入れる。
- あとは共通鍵で通信する。
電子署名って何
前提として
- 公開鍵と秘密鍵は同じ構造なので、どちらを使っても暗号化はできる。
- 公開鍵で暗号化した文章は、秘密鍵で復号化できる。
- 秘密鍵で暗号化した文章は、公開鍵で復号できる。
つまり、ある公開鍵で復号できる暗号文を作れる人は、対応する秘密鍵を持ってることになる。
これにより、少なくとも (公開鍵が本物かどうかはともかく) その文章を作ったのが秘密鍵の持ち主であることが判る。
ただのメモ
- PEM、DERは鍵のフォーマットの名前。何の鍵かということではない。
- RSAでは秘密鍵から公開鍵を作れるので、間違えて相手に秘密鍵を渡しちゃうと危険。
- CSRを作るとき、色々聞かれる。Chromeにインポートするとかなら、CommonNameはちゃんと書いた方がいい。
- Chromeにオレオレ証明書取り込むときは、証明書の管理→インポート→証明書ストアに『信頼されたルート証明機関』を選ぶ。
オレオレ証明書の作り方
Chrome対応のオレオレ証明書の作り方
SANがいるらしい
爆速でChrome対応オレオレ証明書を作成する - 動かざることバグの如し
このあと、DER形式に変換しないと取り込めない。変換方法は次項。