公開鍵認証 【public key authentication】

概要

公開鍵認証(public key authentication)とは、公開鍵暗号の性質を応用した認証方式。SSHパスワード認証に代えてよく利用されることで知られる。

公開鍵暗号は対になる2つの暗号鍵を用いる暗号方式で、一方(秘密鍵)は利用者の手元で秘匿し、もう一方(公開鍵)は通信相手に渡したり広く公開したりする。一方で生成した暗号はペアのもう片方の鍵でしか復号できず、片方からもう一方を推測することもできない。

公開鍵認証では利用に先立ち、サーバへの利用者登録などの際にクライアント側で鍵のペアを生成し、安全な手段でサーバ側に公開鍵を伝送し登録する。秘密鍵クライアント側で利用者本人のみが呼び出せるように保管し、サーバ側にも知らせない。

認証時にはまず通信経路を暗号化し、セッションIDなどその場限りのランダムな値の生成と共有を行なう。クライアント秘密鍵セッションIDからデジタル署名を作成し、利用者名など必要な情報と共にサーバへ送信する。サーバ側では事前に登録したその利用者公開鍵を用いて署名を検証し、ペアの秘密鍵で作成された署名であると確認できれば認証成功となる。

パスワード認証との違い

パスワード認証の場合、パスワードを知っていれば本人になりすますことができるため、サーバになりすました偽物に誤ってパスワードを教えてしまった場合や、サーバに保管されたパスワードが外部に流出してしまった場合には悪用されることがある。

一方、公開鍵認証の場合には秘密鍵サーバにも知らせないため、偽物のサーバ署名を送信したり、サーバに保管された公開鍵が流出しても利用者になりすますことはできない。署名の送受信を盗聴して使い回す攻撃手法もあるが、毎回異なるセッションIDを含めて署名を作成するため、過去に作成された署名を複製しても無効となる。

(2022.3.8更新)
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。