セキュアなインフラとして期待されるPKI(Public-Key Infrastructure,公開鍵認証基盤)。PKIをより安全に,そして手軽に利用できるようにするためには,各ユーザーの私有鍵(Private key)を安全に保管する,携帯性に優れた“保管庫”が必要である。それが,ICカードやUSBキーなどの「ハードウエア・トークン」である。今回の記事ではハードウエア・トークンについて解説する。

“暗号クレデンシャル”を保管する

 ICカードやUSBキーという言葉は聞いたことがあっても,ハードウエア・トークンという言葉には馴染みがないかもしれない。ハードウエア・トークンとは「所有者を識別するための暗号クレデンシャルを保管できる携帯性のあるデバイス」と定義される。ここで暗号クレデンシャルとは,ユーザーごとに持つ,他人に勝手に使われては困る情報のことである。

 暗号クレデンシャルの代表例が,PKIで使用する,公開鍵暗号の私有鍵である。私有鍵とペアになるのが,公開鍵(Public Key)である。私有鍵を使ってデジタル署名を施せば,その文書(ファイル)がその所有者ユーザーによって作成されたことが,ペアになる公開鍵を使えば検証できる。また,公開鍵で暗号化されたファイルは,私有鍵を持つユーザーだけが復号できる。自分の私有鍵を他のユーザーに使われると,なりすましを許すとともに,自分あての暗号化された情報を読まれてしまうことになるので,まさしく「他人に勝手に使われては困る情報」である。

 なお,私有鍵のことを「秘密鍵」と呼ぶこともあるが,対称鍵暗号(共通鍵暗号)の秘密鍵(Secret Key)と区別するために,ここでは私有鍵と呼ぶ。

ハードウエア・トークンの条件

 ハードウエア・トークンは,暗号クレデンシャルを持ち運ぶためだけのデバイスではない。暗号クレデンシャルを正規ユーザー以外のアクセスから守るためのデバイスでもある。そのため,まずは「耐タンパ機能」を備えていなければならない。耐タンパ機能とは,不正なアクセスに備えるための機能と定義される。例えば,デバイスを分解された場合に,保存データ(暗号クレンデンシャル)を消去する機能などが挙げられる。

 加えて,ハードウエア・トークンの正規の所有者を認証する機能が求められる。暗証番号(PIN:Personal Identification Number)などを入力しなければ,暗号クレデンシャルにアクセスできない仕組みが必要である。この仕組みを備えることで,ハードウエア・トークンを盗まれても,暗号クレデンシャルを悪用される危険性を軽減することができる。

 では,正規のユーザーはハードウエア・トークンをどのように利用するのか。クライアント認証の機能を備えたサーバーへアクセスする場合を考えると,以下のようになる。以下の例では,ハードウエア・トークンとしてICカードを使用している。

  1. ユーザーは,クライアントPC(クライアント・ソフト)からサーバーへアクセスする
  2. サーバーはある乱数を生成し,クライアント・ソフトへ送信する
  3. ユーザーは自分のICカードをクライアントPCに挿入する
  4. ユーザーはPIN(暗証番号)を入力してICカードへアクセスする
  5. クライアント・ソフトは,受信した乱数を電子署名するようICカードに要求する
  6. ICカードは,ICカード内に保存されている私有鍵で署名し,その署名をクライアント・ソフトに返す
  7. クライアント・ソフトは,サーバーへその署名を送信する
  8. サーバーは,ユーザーの公開鍵を使用して署名を検証する
  9. 検証した結果(公開鍵で署名を処理した結果),最初に送信した乱数が得られれば,サーバーはアクセスを許可する
 上記の流れのなかで,特にポイントとなるのは 6 である。ICカード内で署名するので,私有鍵がクライアントPC(クライアント・ソフト)に送られることはない。つまり,私有鍵をICカード内に保管したままで,認証の手続きが可能になる。

ICカードが有力

 PKIで利用するハードウエア・トークンとして有力なのはICカードであろう。ICカードは携帯性に優れるとともに,十分な容量を備えている。実際,PKI以外の分野では導入が加速している。社員証や学生証にICカードを使用する企業や教育機関は増えている。住民基本台帳ネットワークでもICカードが利用可能になる。2003年8月からは,申し込めば「住民基本台帳カード」として交付される。

 現在のところPKIで利用するICカードは,比較的容量の大きい接触型が主流である。だが,PKI用として利用できる非接触ICカードも登場している。また,USBキーとICカードの組み合わせて使用するPKIシステムも開発されている。

 今回の記事ではPKIでのハードウエア・トークンについて書いたが,指紋認証ユニット(バイオメトリクス認証ユニット)用のハードウエア・トークンやドングル(ソフトウエアの不正コピーを防止するハードウエア・キー)なども,ハードウエア・トークンの一種である。

 簡便さとセキュリティの両方を実現するシステムの一要素として,今後もハードウエア・トークンの研究開発に期待が寄せられる。


大谷 俊一 (OHTANI Toshikazu) ootaniアットマークmxe.nes.nec.co.jp
NECソフト株式会社 ITソリューション事業部
セキュリティソリューション部 部長


 IT Proセキュリティ・サイトが提供する「今週のSecurity Check [一般編]」は,セキュリティ全般の話題(技術,製品,トレンド,ノウハウ)を取り上げる週刊コラムです。システム・インテグレーションやソフト開発を手がける「NECソフト株式会社」の,セキュリティに精通したスタッフの方を執筆陣に迎え,分かりやすく解説していただきます。