今回は「公開鍵認証」を学ぼう!
セキュリティ強化になるのね
ぜひ教えて欲しいなぁ!
公開鍵認証は暗号技術と
深く関わっているんだ
まずは暗号に関する
基本的な用語から確認しよう
用語 | 意味 |
---|---|
平文 | 普通に読める文章 |
暗号文 | 暗号化によって読めなくなった文章 |
暗号化 | 平文を暗号文に変えること |
復号化 | 暗号文を平文に戻すこと |
暗号解読 | 正規以外の方法で暗号文を平文に戻すこと |
暗号って HTTPS とかで
使われるやつだよね?
クレジットカード情報などを
ブラウザ経由で送信しても
相手にしか読めないようにしたりとか
そうだね
暗号は安心な通信に
必須の技術になっているよ
今回見ていく公開鍵認証は
二つの「鍵」と呼ばれる
ファイルを使うんだ
それが「公開鍵(public key)」と
「秘密鍵(secret key)」だよ
鍵 | 役割 |
---|---|
公開鍵 | 暗号化だけできる(復号化はできない) |
秘密鍵 | 復号化だけできる(暗号化はできない) |
なるほど!
公開鍵が「南京錠」で
秘密鍵が「南京錠の鍵」の
ような感じかな?
いい例えだね!
まさにそのとおりだよ
これらの鍵を使って
以下のような仕組みで認証するよ
- 自分が秘密鍵と公開鍵を作成する
- 自分から相手に公開鍵を渡す
- 相手は共通鍵を作る
- 相手は公開鍵で共通鍵を暗号化する
- 相手は自分に暗号化された共通鍵を渡す
- 自分は公開鍵で暗号化された共通鍵を復号化する
- 自分と相手が共通鍵暗号でやりとりできれば認証成功
へぇ…
第三者が公開鍵を手にしても
暗号化しかできないから
暗号化された共通鍵の通信は
覗けないんだね!
この仕組みを使えば相手が
「自分が渡した公開鍵で暗号化した」
という確認ができるので
「なりすまし」も難しいんだ
でも悪意のある相手が
最初からなりすましていて
公開鍵の受け取りも
その後の認証も
すべてなりすまされていたら
通信が覗かれちゃうよね?
実際その通りだよ
だから初回接続のときに
接続先の情報が表示され
「本当に信用しても良いですか?」
と厳重に尋ねられるんだ
認証はいつも使っている
「パスワード認証」じゃ
ダメなのかな?
ダメではないけど
「公開鍵認証」の方が
安全性が圧倒的に高いんだ
例えばパスワード認証には
以下のような問題があるよ
- 人間は長いパスワードを覚えづらい
- 人間はランダムなパスワードを覚えづらい
- 人間は特定の単語やフレーズなど推測されやすいパスワードを使いがち
- 人間は
「パスワードの使い回し」 をしがち
うっ…
いくつか当てはまる
ものがあるわ…
ssh
のようなリモート接続は
頻繁にパスワード試行の
攻撃に晒されるんだ
今回は公開鍵認証を
教えてもらったよ
パスワード認証よりも
ずっと安全に使えるとわかったよ
セキュリティの分野では
「一番の弱点は人間」
と言われているんだ
特にリモート操作を使う場合は
公開鍵認証を使おう!
次回は公開鍵・秘密鍵の
作り方を説明するよ!