公開鍵暗号方式
秘密鍵と公開鍵を使用した方式。
- 秘密鍵:自分だけが知っている鍵
- 公開鍵:みんなに配る鍵
特徴
- 公開鍵を使って暗号化したデータは秘密鍵で復号化できる
- 秘密鍵を使って暗号化したデータは公開鍵で復号化できる
使い方
- データ受信側(サーバ等)が公開鍵を配布
- データ送信側(クライアント等)は配布された公開鍵を使って暗号化い、送信
- データ受信側が持っている自分の秘密鍵で復号化
暗号化方式
■RSA方式
素因数分解を使った方式。
1024ビットの鍵(SHA-1というハッシュ関数を使用)が使われていたが、最近では解読される恐れがでてきたため、2048ビットの鍵(SHA-2というハッシュ関数を使用)が使われるようになっった。
EC-DSA方式
楕円曲線を使った方式。
認証局と証明書
公開鍵が正しいことを証明するため、認証局の公開鍵をくっつける必要がある。
それらの公開鍵はそれぞれの端末に予めインストールされている。(Webブラウザとか)
やりかた
- 自分たちの公開鍵を認証局の秘密鍵で暗号化してもらう→証明書
- 証明書を使用して通信を行う
- 内蔵された秘密鍵で証明書を復号化する
復号化できなかった場合は偽装されているってことになる。
共通鍵暗号方式
公開鍵暗号方式が遅いため、暗号と復号で同じ鍵を使用する共通鍵暗号方式が使われることがある。
鍵のやり取りだけ公開鍵暗号方式、他の通信は共通鍵暗号方式が使われることがある。
TLS
POODOLE
2014年に起きたSSLの脆弱性問題。
プロトコル自体に問題があるので、SSLではなくTLSが使用することが勧告された。
TLSはSSLの後継であるため、基本的には同じ。今ではほぼTLSへ移行が完了しているハズ……。
(TLSの方が古いと思っていてすまんな)
実際の使用方法
- 秘密鍵を作成
- 証明書生成のための依頼データ(CSR)を作成
- 証明書の発行依頼をする
- 証明書をインストールする
自分メモ:もしかしたら前にやったことがあるので、もう少し詳しくまとめる…かもしれない。