公開鍵認証方式
認証の やり方だよ
公開鍵暗号方式を使ってやるよ
細かい仕組みは他のところで勉強してね
簡単に書くよ
公開鍵認証方式(読:コウカイカギニンショウホウシキ 英:public-key authentication)とは
認証の やり方のひとつ
であり
公開鍵暗号方式
(「みんなに ばらまく鍵」と「自分だけが持ってる鍵」の2つの鍵を使って やり取りする暗号化方式)を使って あれやこれやすることで認証する やり方
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・認証
・暗号
・暗号化
・復号
・暗号鍵(鍵)
・暗号化方式
・公開鍵暗号方式
・秘密鍵
・公開鍵
について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
認証は「おまえ誰?OKなやつ?」を確認する作業です。
例えば
・本人しか知らない情報を入力させる
・本人しか持っていないものを提示させる
・接続元の情報を見る
のような過程を経て、OKな人かNGな人かを判定します。
※厳密には「認証+認可」の説明になっていますが気にしないことにします。そこら辺が気になる方は、用語「認可」の説明を ご覧ください。
暗号は「ルールを知っている人しか意味を読み取れないようにするために、特定のルールに従って ぐちゃぐちゃに変換したデータ」です。
暗号は、そのまま見ても内容が分かりません。
パッと見では ぐちゃぐちゃになっているからです。
ルールを知っている人は、そのルールに沿って元の形に戻すことで内容を読み取れます。
暗号にすることで悪い人に盗み見られても大丈夫な気分になれます。
変換ルールを知らない人は書かれている内容を読み取れないからです。
暗号化は「データを暗号にすること」です。
暗号を元のデータに戻すのは「復号」です。
暗号化の逆ですね。
暗号鍵(鍵)は「暗号化したり、元に戻したり(復号)するときに使うデータ」です。
暗号化方式は「暗号化の やり方(方式)」です。
細かく見ていくと、ややこしかったりしますけどね。
今回は気にしないでください。
公開鍵暗号方式は「『みんなに ばらまく鍵』と『自分だけが持ってる鍵』の2つの鍵を使って やり取りする暗号化方式」です。
まず、自分だけが持つ鍵A(秘密鍵)と、みんなに ばらまく鍵B(公開鍵)を用意します。
この鍵Aと鍵Bの関係ですが、鍵Aで暗号化したものは鍵Bでしか元に戻せません。
鍵Bで暗号化したものは鍵Aでしか元に戻せません。
※実際には「鍵A(秘密鍵)で暗号化したものを鍵B(公開鍵)で戻す」は(一部の例外を除いて)できません。ウソです。……が、そこら辺を気にすると ややこしくなるので、とりあえずスルーします。気になる人は他のところで勉強してください。
この鍵Aと鍵Bをピヨ太君が手に入れました。
ピヨ太君は、鍵Bを みんなに ばらまきます。
そうすると「鍵Aを持つピヨ太君」と「鍵Bを持つ たくさんの人」という状態になります。
この状態で、ピヨ子さんがピヨ太君に お手紙を出しました。
ピヨ子さんは鍵Bで暗号化して、お手紙を送ります。
鍵Bで暗号化したものを元に戻せるのは鍵Aだけです。
ピヨ太君が受け取れば、ピヨ太君が持っている鍵Aで元に戻せます。
仮に途中で、アクマ君がピヨ子さんのお手紙を盗み見たとしましょう。
でも、残念でした。
鍵Bで暗号化したものを元に戻せるのは鍵Aだけです。
鍵Bしか持っていないアクマ君では、暗号化された手紙を元に戻せません。
ピヨ子さんのお手紙は、中身を盗み見られることは ありませんでした。
めでたし、めでたし。
実際の仕組みは もう少し複雑だったりしますけどね。
このような暗号化のやり方が公開鍵暗号方式です。
あと、すでに書きましたが、自分だけが持つ鍵Aを「秘密鍵」と言います。
みんなに ばらまく鍵Bは「公開鍵」と言います。
以上を踏まえて
公開鍵暗号方式を利用して あれやこれやすることで認証する やり方
が「公開鍵認証方式」です。
「あれやこれや」については結構ややこしいので他のところで勉強してください。
……だけで終わると少し感じが悪いので、大雑把にですが触れておきましょうかね。
今回の説明で出てくるのは
認証されるコンピュータ:パソコン
認証するコンピュータ:サーバ(サービスや機能を提供する側のコンピュータ)
の2人(?)です。
まず事前準備としてパソコンさんが公開鍵と秘密鍵を作ります。
次にパソコンさんは、作った公開鍵をサーバさんに渡します。
これで
パソコン:(パソコンさんが作った)秘密鍵を持っている
サーバ:(パソコンさんが作った)公開鍵を持っている
状態になりました。
さて、いよいよ認証です。
まず、パソコンさんがサーバさんに「やっほー。僕はパソコンだよー。君を使わせてよー」と言います。
それに対してサーバさんは「こいつが本当にパソコンさんなら、秘密鍵を持っているはずだ」と考えます。
そこでサーバさんは、パソコンさんを名乗るやつが秘密鍵を持っているか、あれやこれやして確認します。
サーバさんは公開鍵を持っていますよね。
公開鍵と秘密鍵はセットです。
公開鍵を使って あれやこれやすることで、相手が秘密鍵を持っているか確認できます。
※「あれやこれや」の部分については他のところで勉強してください。
もしパソコンさんを名乗るやつが秘密鍵を持っていれば「(パソコンさんしか持っていない秘密鍵を持っているから)こいつはパソコンさんだ」と判断できます。
認証OKです。
秘密鍵を持っていなければ「(パソコンさんなら持っているはずの秘密鍵を持っていないから)こいつはパソコンさんじゃないな」と判断できます。
認証NGです。
かなり大雑把な説明ですが、このような やり方で認証するのが公開鍵認証方式です。
個人的には
1.公開鍵暗号方式を使う
2.サーバ側に公開鍵を登録する
3.秘密鍵を持っているか確認することで認証する
の3つがポイントだと思っています。
一言でまとめるよ
まぁ「公開鍵認証方式」って単語が出てきたら「公開鍵暗号方式
(「みんなに ばらまく鍵」と「自分だけが持ってる鍵」の2つの鍵を使って やり取りする暗号化方式)を使ってやる認証のやり方なんだな~」と お考えください。






