メニューへ移動  本文へ移動 日本ユニシス株式会社

『日本ユニシスについて』
出版物

CLUB UNISYS

ユニシス技報


書籍情報

ユニシスニュース


日本ユニシスグループ ICTサービス 企業システムに”ペイ・フォー・ユース”という選択肢




『ユニシス技報』 1997年8月発刊 Vol.17 No.2 通巻54号

ネットワーク・セキュリティ――無限ワンタイム認証方式の考案

-- 八 津 川   直  伸 -- ▲目次
  

1. は じ め に

 情報処理システムが社会活動のあらゆる局面において中心的な役割を演じるようになった現在,ネットワークを介した個人間や個人−企業間あるいは企業間の情報通信に対するセキュリティ確保が緊急の課題となっている.
 特に昨今のネットワーク・システムのオープン化・汎用化により,機密情報転送や電子商取引(Electronic Commerce)のような分野に対し,セキュリティ機能は必要不可欠なものとなっている.
 例えば,企業間,個人間あるいはそれら相互間で法律行為をなす場合,従来(現在でも),物理的な紙を使用して契約書などを作成し,署名し,押印し,さらに必要に応じ印鑑登録証を添付したり,あるいは公証人による公正証書を作成し,次にこれら文書を相手方に送付する際,書留にしたり,内容証明郵便にしたりする.
 このような物理的な書類を中心にした行為をすべて,電子的な情報通信によって安全に代替ならしめるものが,ネットワーク・セキュリティ技術である.
 コンピュータとネットワークによる情報通信網が全世界規模に達した現在,ネットワーク・セキュリティ技術に対する要求は増大の一途である.
 セキュリティ上の脅威としては,盗聴,なりすまし,改ざん・偽造,事実の否認など様々なものが想定されるが,ネットワーク・システムを介した情報通信において,そのシステムを誰がどのように利用したかということを確認したり,利用方法を制御・管理することはセキュリティを維持する上において極めて重要である.システム内で起こる大方のイベントは,情報通信に関わる特定の実体(エンティティ)に起因しているはずであり,したがって,それらの認証は不正行為を防止し,システムの安定的稼働を維持するための基本的防衛行為であると言える.
 認証とは,情報通信に関与した実体(エンティティ:人間,人間の代理として機能するプロセス,ソフトウェア,ハードウェアなど)が正当なものであるか否かを確認することであると考えられる.一般的には,認証する実体別に図1のように分類することができる.

認証の分類

図 1
図 1 認証の分類

 エンティティ認証は情報通信に関わる実体,例えばメッセージの送受信者などの正当性を確認することであり,一方,メッセージ認証は,それら送受信メッセージの正当性を確認することであると言える.
 なお,エンティティ認証は利用者認証と呼ばれることもある.
 本稿では,まず最初にこのセキュリティの基本であるエンティティ認証について既存の方式を考察し,その現状と問題点を述べる.次にこれら問題点を解消し,且つインターネット時代を前提とした合理的な新認証方式を考案し,その有効性を述べる.

2. エンティティ認証技術の現状

 エンティティ認証機構は,エンティティ識別処理とエンティティ認証処理に分けられる.前者は,システムの利用者が誰であるかを識別するもので,後者はその利用者が正当な本人であるか否かを認証する処理である.
 前者には,一般的に利用者識別名(User-id)などが用いられるが,これは公知の識別子であり,本人だけが持ち合わせる情報(パスワードや暗証番号など)を用いた本来の認証処理は,後者の処理に委ねられる.以下のエンティティ認証機構の説明では,主としてこのエンティティ認証処理について記述している.
 エンティティ認証機構は,認証に用いる情報のあり方により,大きく次の四つに分類できる.
◆知識利用
◆暗号利用
◆生体特徴利用
◆所有物利用
2.1 知 識 利 用
 エンティティを認証するために必要な情報をあらかじめ登録しておき,認証されるべきエンティティがその情報を知っているか否かでそのエンティティの正当性を確認する方法である.個人認証などで最もよく用いられているのが「パスワード」や「暗証番号」あるいは「その個人にしか知り得ない情報(住所,生年月日など)」である.
 大抵のシステムでは,「パスワード」により利用者認証を行っている.このような知識利用によるエンティティ認証は導入が比較的簡単で有効であるが,覚え易い文字列を使用したり,人目に付きやすいところにメモしがちで,容易に他人に見破られたり,通信中に盗聴されたりする危険性が高い.また,パスワード送信時に暗号化しても毎回同じパスワードであればそれをそのまま盗用し,再利用すること(リプレイ攻撃)で「なりすまし」が可能である.
 さらに,サーバ側のパスワード・ファイル(通常利用者のパスワードをキーとして暗号化し保存している)が辞書攻撃によって破られる可能性もある.
 辞書攻撃とは,利用者がパスワードとして選びやすそうな単語や有名人の名前あるいはそれらを組み合わせた文字列を集めたファイルを辞書とし,その辞書に載っている各文字列に従って順々にシステムが用いているのと同じ暗号化を施し,パスワード・ファイルのデータと比較する攻撃法である.パスワード・ファイルのデータと一致すれば,その利用者に対するパスワードが破られたことになる.
 世の中には,このような攻撃を行う「Crack」というツールもフリー・ソフトウェアとして存在し,優れた辞書を用いることにより,平均的なコンピュータ・システムの30%から40%のパスワードが解読できるという報告もある[1][2]
 これらの脅威に対抗するためには,毎回パスワードを変更するなどの工夫が必要となるが,知識利用のエンティティ認証においては,以下に述べるような一方向性関数や乱数を利用した,高度な一回限りのパスワード方式が考案されている.
◆ワンタイム・パスワード方式
◆チャレンジ・レスポンス方式
 以下に各々の方式について述べる.
2.1.1 ワンタイム・パスワード方式
 文字どおり一回限りのパスワード認証方式で,ここでは最も有名なS/Keyの例を説明する.本方式はBellcore Co. U.S.A.によって提唱され,インターネット標準としてもRFC化されている(RFC-1938).
1) 処理概要(A:クライアント,B:認証サーバとする)
 (1) 一方向性関数fを準備する.
 (2) Aは秘密の乱数Rと公開の種と呼ばれる任意の数値Sを生成する.
 (3) Q=R+Sとし,f(Q),f(f(Q)),f(f(f(Q)))…を計算し,それらをX1,X2,X3,…X100,X101とする.
 (4) AはX1,…X100およびRを秘密に保持し,BにはX101を何らかの方法(オフライン)で渡し,Bはそれらを保持する.
 (5) AがBに初めてログインする際,パスワードとしてX100をBに送信する.
 (6) Bはf(X100)を計算し,保持していたX101と比べる.もし,一致すればログインを許可し,一致しなければログインを拒否する.ログインが許可された場合,BはX101を捨て,X100を保持する.
 (1) Aが次にログインするときは,次のパスワードX99を使用する.B側の処理は以降同様である.
2) 長  所
・一回限りのパスワードなので,通信途上で第三者が盗聴しても再利用が不可能である.
・サーバBのファイル上に保持しているパスワードは,次回ログイン時のパスワードを検査するためのものであり,これが盗まれても支障はない.
・関数fは一方向性関数なので,Xnが盗聴できてもXn-1が計算できない.したがって,fが第三者に知れても支障ない.
3) 短  所
・上の場合で,100個パスワードを使い切ると,サーバの認証プログラムを再初期化する手間が必要である.
・実際のシステムでは再初期化をオンラインで可能なように,サーバ側では常に乱数Rを保持している.すなわち,再初期化時,クライアントは以前とは異なった種S´のみをサーバにオンラインで送信し(S´は盗聴されても問題ない),サーバは保持していたRを用いて新たにQ´=R+S´を計算し,これから新たなX´101を生成する.
 このため,第三者がなんらかの方法でサーバに侵入したり,あるいはサーバ管理者が悪意でこの乱数を得ると,パスワードが生成できクライアントAになりすますことができる.
2.1.2 チャレンジ・レスポンス方式
 これは,パスワード認証における盗聴対策の一種で,代表的なものにCHAP(Challenge Authentication Protocol,RFC-1334)方式がある.
 このCHAP方式において,被認証者Aが認証者Bに認証してもらう手順は図2のとおりである.
図 2
図 2 チャレンジ・レスポンス方式概要

1) 長  所
 チャレンジが毎回変化するので,第三者が図中(2)のメッセージを盗聴しても再利用が不可能である.
2) 短  所
 B上にAのパスワードが保存されているので,Bの管理者自身がそれを悪用し,クライアントAになりすまして不正を行うことができる.
2.2 暗 号 利 用
 暗号技術を用いて当事者以外には偽造が困難な認証情報を生成し,当事者同士が交換・検査することにより当事者(エンティティ)の正当性を確認する技法である.
2.2.1 デジタル署名方式
 デジタル署名は,従来の書面取り引きにおける署名や印鑑による本人確認を電子媒体上で行う機構で,機能的には次の3条件を満たすことが要件であると考えられている.
・デジタル署名の要件
(1) 署名文が第三者によって偽造できない.
(2) 署名文が受信者によって偽造できない.
(3) 署名文の内容およびそれを送った事実を送信者が後で否定できない.
 つまりデジタル署名は,エンティティ認証機能およびメッセージ認証機能を兼ね備えることになる.
 現状では,(2)および(3)の要件を満たすために公開鍵暗号方式の利用が必須である.公開鍵暗号方式は,1976年にスタンフォード大学のW. DiffieとM. Hellmanによって発表された概念で,一対の暗号化鍵と復号化鍵が異なり,復号化鍵のみを秘密に保持し,暗号化鍵は公開して構わない.そのため次の特徴を有する.
(1) 鍵の配送が容易
(2) 秘密に保持する鍵の種類が少なくて済む
(3) 認証機能(デジタル署名)がある
 公開鍵暗号方式の一般モデルを図3に示す.
図 3
図 3 公開鍵暗号方式の一般モデル

 いま,この公開鍵と秘密鍵の関係を逆にするとデジタル署名機能となる.すなわち,送信者のみが知る秘密鍵で平文を暗号化し受信者に送信する.また,受信者は,送信者の公開鍵で復号化し平文を得る.この場合,暗号化鍵は送信者しか知らないので,暗号文が第三者および受信者によって偽造できないことになる.また,暗号化鍵を持つ本人にしか平文の内容を暗号化し送信することができないため,後になって暗号文の内容およびそれを送った事実を送信者が否定できず,上述のデジタル署名の要件を満たす.
 現在,この公開鍵暗号の概念を実現した世界で最も有力なアルゴリズムとして,MITのRivest,ShamirおよびAdlemanによって開発され,それぞれの頭文字を採って命名されたRSA暗号がある.なお,国際的に標準化されつつあるデジタル署名方式としては,次の二つがある.

◆認証子照合法(with appendix)――ISO/IEC CD14888 PART1/2/3(Sep21,1995)
◆通信文復元法(giving message recovery)――ISO/IEC9796:1991(E)
 実際に広く利用されているのは前者の認証子照合法であり,その概要を図4に示す.
図 4
図 4 認証子照合法の概要

 このようなデジタル署名を用いて受信者が送信者の正当性を検証するためには,送信者の公開鍵が真の差出人のものである保証が必要である.例えば,物理的印鑑が正当なものであることを証明する印鑑登録証に相当するものがデジタル署名に必要となる.
 この保証のために信頼できる第三者による公開鍵証明書制度が設けられ,その発行機関はCA(Certification Authority)と呼ばれる.CAはインターネット標準(RFC1421-1424)として制定され,公開鍵証明書の発行と管理を行う.
 証明書のフォーマットは,国際標準(X.509→ISO9594-8)として制定されており,すでにX.509は第三版が出ており,今後それに対応したISO標準も制定される予定である.証明書は図5の項目からなり,最後にCAの電子署名が付されている.


図 5
図 5 公開鍵証明書(Version 3)のフォーマット

 図4の例において,送信者Aは送信本文およびそれに施したAのデジタル署名と共に,このAの公開鍵証明書を送信する.前提として受信者BはCAの公開鍵を保持しているものとする.
 受信者Bは,まずCAの公開鍵によって,Aの公開鍵証明書に付されているCAのデジタル署名を検査することにより,Aの公開鍵証明書の正当性を確認する.これが正当であればBは正当なAの公開鍵を入手できたことになる.この後,BはそのAの公開鍵を用いてAのデジタル署名を検査することにより送信者認証を行う.
1) 長  所
 厳格なCAが存在し,かつ送信者が自身の秘密鍵を厳密に保持できれば,第三者あるいは悪意のサーバ管理者による「なりすまし」は一般に困難である.
2) 短  所
 ネットワークを介したリモートログインにおいて,署名をリモートログインのためのパスワードとして使用した(すなわちデジタル署名を相手認証情報として用いる)場合,第三者がそれを盗聴しそのまま再利用する(リプレイ攻撃)ことで「なりすまし」が可能である.
2.2.2 デジタル署名付認証トークン方式
 これは前述のデジタル署名方式の短所であるリプレイ攻撃に対する強度を改善したものと言える.すなわち本方式の前提として,クライアントAはCAの秘密鍵によってデジタル署名されたAの公開鍵証明書を,またサーバBはCAの公開鍵を保持しているものとする.
 この状態においてクライアントAは認証情報(以下認証トークンと称する)として,次の(1)から(4)を組み立てたものをサーバBに転送する.この認証トークンには,トークン作成時のタイムスタンプTが含まれている.
(1) Aの公開鍵証明書:Ca
(2) タイムスタンプ:T
(3) 受信者id:BのE-mailアドレスなど
(4) (2)+(3)のデジタル署名:Sa
 この認証トークンを受信したサーバBは先ず署名の検査を行い,タイムスタンプTなどが改ざんされていないことを確認の上,このTと現在時刻とを比較する.
 もし比較結果がほぼ等しければクライアントAのログインを許可する.しかし,Tが一定時間以上過去の時刻であれば,この認証トークンがAおよびB以外の第三者によって再利用(リプレイ攻撃)されているものと見做しログインを拒否する.
 デジタル署名付認証トークン方式の処理シーケンスを図6に示す.

図 6
図 6 デジタル署名付認証トークン方式

1) 長  所
 厳格なCAが存在し,かつ送信者が自身の秘密鍵を厳密に保持できれば,第三者あるいは悪意のサーバ管理者による「なりすまし」はかなり困難である.
2) 短  所
 一定時間内であれば,盗聴した認証トークンをそのまま再利用すること(リプレイ攻撃)で「なりすまし」が可能である.
2.2.3 SSH(Secure SHell)方式
 SSHはUNIX*1におけるリモートログインのためのrsh/rloginなどrcmds系プロセスに対するセキュリティパッケージでありインターネット・ドラフトとして検討されている.認証処理に関する部分を以下に示すが,基本的には,共通鍵暗号と公開鍵暗号を併用したチャレンジ・レスポンス認証方式である.
 図7は,クライアントAがサーバBにログインする際のシーケンスである.共通鍵暗号(DES,IDEAなど)用のセッション鍵を共有するためのフェーズ((2),(3))と認証処理を行うフェーズ((4),(5),(6))に分かれている.
図 7
図 7 SSH(Secure SHell)の概要

(1) クライアントAはサーバBにログイン要求を送る.
(2) このログイン要求に基づき,サーバBはセッション鍵共有のため自身の公開鍵,乱数などをクライアントAに送る.
(3) クライアントAはセッション鍵を生成し,それをサーバBの公開鍵で暗号化してBに送る.サーバBがこれを受信した時点でクライアントAとの間にセッション鍵を共有できたことになるので,(4)以降AB間のメッセージは全てこのセッション鍵で暗号化してやり取りされる.
(4) クライアントAは,自身の公開鍵,ユーザ名をサーバBに送る.
(5) サーバBはクライアントAに対する公開鍵とユーザ名が登録されていることを確認の上,認証のためのチャレンジ(乱数)を生成し,それをAの公開鍵で暗号化してクライアントAに送る.
(6) クライアントAはチャレンジのハッシュ値を計算し,それをチャレンジ・レスポンスとしてサーバBに送る.
(7) サーバBは,(6)で受けたチャレンジ・レスポンスの値と保存してあったクライアントA向けチャレンジのハッシュ値とを比較し,それらが同値であればAのログインを許可し,異なっていればログインを拒否する.
1) 長  所
 チャレンジ・データが毎回変化するので,第三者が6)のメッセージを盗聴しても再利用による「なりすまし」が不可能.
2) 短  所
 サーバBの管理者自身が悪意でクライアントAの公開鍵情報を書き換えることにより,クライアントAになりすまして不正を行うことが可能である.
2.2.4 RPC認証方式
 UNIXの分散環境システムでよく用いられる遠隔手続き呼び出し機能であるRPC(Remote Procedure Call)には,セキュリティ機能としてユーザ認証機能がある.
 このRPC認証は,RPC手続きの発行者が誰であるか(エンティティ認証機能),そしてその発行者の権限はどのくらいであるかなどをサーバが確認する機能を備えている.
 以下ではこのRPC認証が持つエンティティ認証機能の概要を述べる(図8参照).
図 8
図 8 RPC認証の概要

(1) 通信に先立ち,まずクライアントとサーバはDES暗号に用いる共通鍵(Kab)をDH法(Diffie-Hellman型公開鍵配送法)により共有する.
 UNIXの世界では,DH法に用いる公開鍵と秘密鍵はNIS(Network Information Service)によって管理され,各ユーザは通信に先立ってこのNISから予め登録してある通信相手の公開鍵と自身の秘密鍵を入手し,それらから共有鍵(DES鍵)を計算により得る.
(2) クライアントでは,次の手順で認証情報を作成しサーバに送信する.
(I)送信者を表す文字列(ネットネームと呼ばれる)を生成する.
 UNIXの場合,次のような形式である.
 unix.〈ユーザid〉@〈ホスト・アドレス〉
(II)セッション鍵(乱数:K)を生成する.
(III)タイムスタンプ(現在時刻:T)をセッション鍵(K)でDES暗号化する(Te).
(IV)セッション鍵(K)を共有鍵(Kab)でDES暗号化する(Ke).
 認証情報として,(I)(III)(IV)をサーバに送信する.
(3) サーバは,受信した認証情報の中の暗号化されたタイムスタンプ(Te)を復号化し(T),それを現在時刻と比較することによりネットネームの正当性を検証する.すなわち,Tと現在時刻との差が許容範囲内であればそのネットネームのアクセス要求を許可するが,許容範囲外であれば拒否する.
(注)米国製暗号製品の実装は,利用目的や鍵の桁数などで米国外には輸出制限があり,日本では利用できない場合がある.
1) 長  所
 クライアントおよびサーバの各々が自身の秘密鍵を厳密に保持し,かつ正当な相手の公開鍵を確実に得ることができれば,第三者による「なりすまし」はかなり困難である.
2) 短  所
 ・一定時間内であれば,盗聴した認証情報をそのまま再利用すること(リプレイ攻撃)で「なりすまし」が可能である.
 ・サーバBの管理者は,クライアントAの認証情報を作成可能であるので,クライアントAになりすまして不正を行うことが可能である.
2.2.5 Kerberos(RFC1510)方式
 Kerberosは,MITのAthenaプロジェクトで開発された利用者認証システムであり,1978年にR. NeedhamとM. Schroederによって提案された「信頼された第三者機関による認証方式」に基づいている.
 OSF(オープン・ソフトウェア財団)が定めた分散処理環境構築のためのソフトウェア・パッケージであるDCE(Distributed Computing Environment)における認証サービスとして,このKerberosが採用された.

(注) Kerberos(ケルベロス)は,ギリシャ神話に登場する地獄の門を守る「番犬」の名前である.
 Athenaシステムは,数千台のワークステーションを使用し,約1万人のユーザをサポートする大規模分散システムである.

 この方式では,通信の秘匿やユーザ認証など全て共通鍵暗号方式(DES)のみで実現している.
 各ユーザの鍵を知っているのは各ユーザ自身と認証サーバだけであることを前提に,お互いの正当性を認証サーバで保証してもらうという方式を採用している.
 認証サーバにあたる部分をKerberosサーバとTGS(Ticket Granting Server:チケット発行サーバ)に分けて利用者のパスワードや鍵が利用者側のシステム(セキュリティレベルが低い)上に長時間保持されないように工夫している.
 また,チケット(Ticket)とオーセンティケータ(Authenticator)という考えを導入して,さらに安全性を高めている.
 Kerberos認証方式の概要を図9に示す.

図 9
図 9 Kerberos認証方式の概要

1) 長  所
・各サーバ,利用者WS間のやりとりは全て暗号化され,さらに暗号化鍵は毎回乱数により生成しているため盗聴に強い.
・目的サーバは利用者個々のユーザIDやパスワードを管理する必要は無く,それらはKerberosサーバだけが知っていればよい.このため,大規模分散環境における変更管理の容易化が実現できる.
2) 短  所
・一定時間内であれば盗聴した認証情報をそのまま再利用(リプレイ攻撃)可能.
・米国における暗号製品の輸出制限のため,暗号アルゴリズムとしてのDESが実装されたKerberos製品は,日本で利用できない場合がある.
・認証サーバが各利用者の認証情報や暗号化鍵を集中管理するので,悪意の第三者がこの認証サーバへの侵入に成功するとその管理対称ドメインが全滅する.
・全てのマシン,アプリケーションはKerberos対応が必要で,導入の手間が大きい.
2.2.6 ゼロ知識対話証明方式
 ゼロ知識対話証明方式は,1985年,MITのGoldwasser,Micaliおよびトロント大学のRackoffにより提案されたもので,ある情報を持っていることをその内容を相手に示すことなく相手に納得させる方式である.
 例えば,パスワードを提示することなく真のパスワードを知っていることを相手に証明することが可能である.
 1986年にFiatとShamirによりファイアット・シャミア法が提案されている.
 (パテント:USP4,748,668(1988.5),JP63101987(1988.5))
 クライアントA(証明者)がサーバB(検証者)へ秘密の情報T(パスワードなど)を転送する場合のシーケンスを図10に示す.
図 10
図 10 ゼロ知識対話証明方式概要

 今,AはZ=T2modnを完全に知り,BはZとnのみを知っているとする.ここで,nは大きな素数p,qの合成数である.この場合,Bはnを素因数分解できなければTを得ることが極めて困難である.


1) 長  所
 事前に秘密の認証情報TをサーバBに教える必要が無いので,サーバBの正当な管理者であってもクライアントAになりすますことができない.
2) 短  所
・対話シーケンスが冗長である.
・認証プロセスが複雑であり,パフォーマンスと認証精度がトレード・オフの関係となる.
2.3 生体特徴利用(個人属性)
 本人の身体的,行動的特徴を認証情報として利用し,端末利用者の正当性を確認する技法である.
 身体的,行動的特徴としては次のようなものがある.
◆身体的特徴
 指紋,音声スペクトル,顔のパターン,手形,網膜パターン,耳の形
◆行動的特徴
 署名,筆記パターン,キーストローク
 図11に指紋による認証方式の例を示す.
図 11
図 11 指紋認識による認証方式の例

1) 長  所
 本人にしか持ち得ない唯一の個人属性を認証情報として使用するので,認証が成功した場合の本人識別精度は高い.
2) 短  所
・正当な本人であるにも係わらず認証が失敗するなど,認識確度が100%ではなく,技術的な改善の余地がある.
・生体計測を用いる場合,端末による利用者の認証など,オフライン認証(ローカル認証)では極めて有効であるが,ネットワークをまたがった認証(リモート認証)では盗聴により認証情報を再利用(リプレイ攻撃など)すなわち「なりすまし」が可能となる.
2.4 所 有 物 利 用
 ある特定の物体が認証情報を保持しており,認証する側ではその認証情報を検証することにより,その物体を保持する人間やその物体に認証された人間,あるいはその物体と連動して作動するソフトウェアやハードウェアなどを正当なエンティティとして認証する.
 所有物の例としては次のようなものがある.
 (所有物の例)
(カード内で認証以外に暗号化処理を行うものもある)
◆鍵,トークン,バッチ
◆電子キー
◆磁気カード,キャッシュカード
◆ICカード
◆非接触型カード(光式,電磁波式など)
 例えば,端末のロックを解除するための鍵やトークン,電子キーを所持する人間は,その端末の正当な利用者として認証される.
 しかし,これら所有物の紛失や盗難による悪用を防止するため,ネットワークを介した認証では,磁気カードのように所有物でまず利用者識別を行い,さらにサーバ(アクセス先のホストコンピュータなど)による暗証番号の検証により利用者の正当性を確認するなど,「知識利用」の技法と組み合わせて用いられることが多い.
 ICカードではこれがさらに発展し,まずICカード自身がICカードを使用しょうとしている人間を暗証番号で認証し,これが成功して初めてネットワークを介したサーバとの認証動作に入る.サーバによるICカード(すなわちICカードにより認証された人間などのエンティティ)認証処理は「知識利用」や「暗号利用」の技法を利用して行われる.
1) 長  所
・所有物を厳密に保持すれば第三者による「なりすまし」は一般に困難である.
・ICカードは通常,耐タンパー性(Tamper Free)を有しており,外部からメモリ内の情報を読み書き不可能な構成となっている.そのため暗号鍵やパスワードなど個人に依存した情報を比較的安全に格納,管理できる.
 またセキュリティ処理機能そのものをICカード内に組み込むことにより,さらに安全な認証通信が可能となる.
2) 短  所
・所有物利用による認証システムでは,大抵の場合,その所有物とクライアントとなる端末との間に専用の入出力機器が必要である.
・磁気カード,ICカードなどでネットワークを介した認証処理の場合,認証シーケンスそのものは結局「知識利用」や「暗号利用」の技法を使用しているため,当然であるがそれらに特有の短所も付随することになる.
 図12にICカードを使用した所有物利用の例を示す.この例では,ICカードとサーバが同期しており,使用者は例えば4桁の個人識別番号(暗証番号)とカードに表示される6桁の数字の組み合わせで一回限りのパスワード(ワンタイム・パスワード)が与えられる.この6桁の数字は一定時間毎(例えば60秒毎)に変化し,従ってパスワードも一定時間毎に変化することになる.
図 12
図 12 ICカードを使用した所有物利用の例

 製品によっては,端末への入力は手入力で行いカードリーダなどの特殊機器は不要なものもあるが,ICカードと認証サーバとの間で時間ズレが生じるので,これを補正する機能が必要であるなど,運用に注意を要する.
 また,安全維持の観点からICカードに完全な耐タンパー性を付与しているようなものは,バッテリーの交換も不可能となり,そのためバッテリーが切れると新しいICカードの調達(現時点では安価ではない)とサーバへの再登録処理が必要といった運用が面倒なものもある.

3. 既存エンティティ認証方式の問題点

 前章までで各種エンティティ認証方式の仕組みおよびそれらの長所,短所を述べた.
 エンティティ認証が想定する直接の脅威は,パスワードなどの不正入手による「なりすまし」であるが,この「なりすまし」が一旦成功しシステムに侵入されると,データの改ざんやファイル破壊,不正データの生成など様々な不正行為の脅威にさらされることになる.
 また,このような脅威は外部からの不正アクセスによるもののみならず,システム管理者などの内部犯罪によって引き起こされる可能性もある.
 したがって,アクセスされる側のシステムにとって,アクセスしてくる実体が何であるかを確認するエンティティ認証は,セキュリティ上の脅威に対する最前線の防衛網と言え,その重要度はシステムの機密度に応じて大きくなる.
 ここで今まで述べてきたエンティティ認証方式の「なりすまし」に対する強度を外部および内部の不正エンティティに対してまとめてみると表1のようになる.
表 1 各種エンティティ認証方式の「なりすまし」に対する強度
表 1

 表1でいずれの方式も欠点はあるものの,システムの環境,構成によっては十分実用的なものである.しかしながら,表1に示すようにシステム管理者などのシステムに精通した人間の悪意の内部犯罪による脅威に対しては防御できないものがほとんどであり,たとえ防御できる方式であっても認証手続きが複雑になるなどの欠点がある.
 次章では,仕組みが簡単で内部犯罪にも耐え得るエンティティ認証方式について述べる.

4. インターネット時代の新認証方式の考案

 インターネットというオープンな通信網およびその利用用途の急速な拡大に伴ってネットワークを利用した犯罪も日々増大している.前章で述べたように,エンティティ認証はセキュリティ上の様々な脅威に対する最前線の防衛機能であるが,インターネット時代においては,その適用領域の広範さと相互接続性の観点から,導入が簡単すなわち仕組みが簡単で,かつ脅威に対して十分有効な方式であることが望まれる.
 そこで,2章および3章で述べた各種認証方式の長所,短所を踏まえ,インターネット時代の新たな認証方式の要件をまとめると次のようになる.

4.1 新認証方式の要件

1) 盗聴などによって盗まれた認証情報が通信当事者以外の第三者によって再利用できないこと.
 例えば,ワンタイム・パスワード方式(S/Keyなど)はこの要件を満たしているが,デジタル署名付認証トークン方式はそのタイムスタンプの許容時間内であれば盗聴トークンが再利用できてしまう.
2) 認証サーバに認証情報が保存されていないこと.
 換言すれば,認証サーバは利用者個々の認証情報を保管する必要がなく,ただログイン時の認証情報が正当か否かを識別できる機能を有すればよい.
 これによって,例え悪意の第三者が認証サーバに侵入できたとしても利用者個々の認証情報を得ることはできない.
3) 認証シーケンスは極力簡素化する.
 これにより,システムに対する負荷を最小限にし動作の安定性を得る.従って,チャレンジ・レスポンス方式やゼロ知識対話証明方式のような対話シーケンスを用いない.
4) 認証情報は毎回異なり,しかもその情報は無限に存在すること.
 これにより1)の要件を満足しつつ,既存ワンタイム・パスワード方式(S/Keyなど)のようにパスワードを使い切った場合に再度初期情報をサーバに再登録するといった定期作業が不要となる.
5) 生体特徴利用のような特殊外部測定機器を必要としないこと.
 特殊な機器はインターネットを介した相互運用性を損ない,また導入コストの高騰につながるので,このような外部機器は用いない.
 以上の要件を満たし,かつ安全性が確保されたエンティティ認証方式を考案したので以下に述べる.

4.2 新認証方式の設計
 4.1節の要件に基づき新認証方式を設計した.以下説明の簡略化のために,被認証者をクライアント,認証者をサーバと呼ぶことにする.
 前提として,この方式は公開鍵暗号アルゴリズムを使用し,クライアントは自身の秘密鍵を,またサーバはそれに対応する公開鍵を保持しているものとする.
 本方式では,ログインに先立って,認証処理に必要な初期情報D0をサーバに登録する必要がある.この登録は,クライアント毎に最初に一回だけ行えば良く,一旦登録すれば,その後この作業は不要である.この初期情報D0は,乱数やクライアントのE-mailアドレスや利用者識別名などなんでもよいが,クライアントにおいては次回ログイン時の認証情報を生成するための元となるデータ(以降,認証情報生成種データと呼ぶ)であり,サーバにおいては次回ログイン時にクライアントから受信した認証情報を検査するためのデータ(以降,認証情報検査データと呼ぶ)となる.いずれにせよこのような利用者登録作業は一般にクライアントのアクセス権限の設定などを伴うので相応の権限を持ったシステム管理者が行う.初期情報登録後は,その旨クライアントに通知する.
 以上の初期登録作業後,クライアントがサーバにログインする際のサーバによるクライアント認証処理は次のようになる.処理概要を図13に示す.

図 13
図 13 無限ワンタイム認証方式の処理概要

(1) クライアントがサーバにログインする際,クライアントは先ず利用者識別名(User-idなど)をサーバに送信することにより,認証要求を行う.
(2) 認証要求メッセージを受け取ったサーバは,クライアントに対して認証情報要求メッセージを送る.
(3) 認証情報要求メッセージを受け取ったクライアントは,サーバに返すべき認証情報として,自身が保存している認証情報生成種データを自身の秘密鍵で暗号化したものを送る.一回目のログイン時においては,認証情報生成種データは初期情報D0であり,認証情報はD1である.
(4) サーバは,クライアントから受信した認証情報をクライアントの公開鍵で復号する.
(5) 次にサーバは,それを利用者毎に保存してあった認証情報検査データと比較する.一回目のログイン時においては,認証情報検査データは初期情報D0である.
(6) (5)の比較結果が等しければログインを許可し,クライアントの認証情報検査データ格納場所に今受信した認証情報を次回ログイン時の検査用として上書き保存する.一方,不一致ならログインを拒否する.サーバは,許可あるいは拒否いずれの場合においてもその旨をクライアントに通知する.
(7) クライアントは,サーバから認証処理結果の通知を受けたなら,ログインが許可されたか否かを確かめる.
(8) もし,認証結果が許可であれば,認証情報生成種データ格納場所に,(3)で送った認証情報を次回のログイン時の認証情報生成種データとして上書き保存する.次回,クライアントが再ログインするときは,今保存した認証情報生成種データをクライアントの秘密鍵で再度暗号化し,それを新しい認証情報としてサーバに送る.二回目のログイン時においては,認証情報生成種データはD1であり,認証情報はD2となる.
(9) 以降,(1)から(8)を繰り返す.
 この方式は,一回限り有効な認証情報を無限に生成できるので,以降これを「無限ワンタイム認証方式」と呼ぶことにする.
 なお,利用者識別情報と認証情報を結合し一つのメッセージとして(3)をサーバに送ってもよい.その場合,(1)と(2)が省略できる.また,2.2.1項で述べたCAの運用が行われている環境であれば,(3)で認証情報と共にクライアントの公開鍵証明書をサーバに送ることにより,クライアントの公開鍵をサーバに配送してもよい.この場合,サーバは事前にクライアント個々の公開鍵を保持する必要はないが,各クライアントは事前にCAから自身の公開鍵証明書を発行してもらい,さらにサーバはクライアント個々の公開鍵証明書の正当性検査のために事前にCAの公開鍵を保持している必要がある.
 ここで,各記号の意味は次のとおりである.
CKp:CAによって発行されたクライアントXの公開鍵証明書
Ks:クライアントXの秘密鍵
Kp:クライアントXの公開鍵
Se:公開鍵暗号アルゴリズムの暗号化関数
Sd:公開鍵暗号アルゴリズムの復号化関数
Dn:n回目のログイン時においてクライアントXがサーバYに送信する認証情報
Dn-1:n回目ログイン時のクライアントXにおける認証情報生成種データ,サーバにおける認証情報検査データ
(注1)
 D0:初期登録値
 Dn:Dn-1をKsで暗号化したもの(ただし,∞>n>1)である.
(注2)
 毎回,認証情報と共にクライアントXの公開鍵証明書をサーバに送るシステムであれば,利用者認証情報検査データファイルにKpおよびCKpを保存する必要はない.
 この方式のサーバ側システム構成イメージを図14に示す.なお,クライアント側のシステム構成については秘密鍵Ksの保管の仕方よって大きく異なるため,それらは5章で述べる.
図 14
図 14 サーバ側のシステム構成イメージ

 この無限ワンタイム認証方式の特徴は,すでに述べた要件を全て満たしていることである.これらの中でも,従来方式に比べ特に強調されるべき点を次節で述べる.

4.3 無限ワンタイム認証方式の特徴
 この無限ワンタイム認証方式によると,認証要求者は認証情報生成種データ(前回ログイン時に使用した認証情報)を自身の秘密鍵で暗号化したものを認証情報として認証者に送り,認証者は認証要求者から受信した認証情報を認証要求者の公開鍵で復号し,それを認証者側で保存してあった認証情報検証データ(前回ログイン時に使用した認証情報)と比較し,両者が同一か否かを検査することにより認証処理が達成される.
 従って,次のような特徴がある.

1) 第三者による「なりすまし」が不可能
 クライアントが自身の秘密鍵を厳密に保管している限り,クライアント側で保存している認証情報生成種データおよびサーバ側で保存している認証情報検査データを第三者が知り得ても認証情報を生成し得ないので,その第三者による「なりすまし」は不可能である.
2) 認証者側のシステム管理者による「なりすまし」が不可能
 1)と同様に,サーバのシステム管理者でさえ次回ログイン時に使用される認証情報を知ることができない.このことにより,サーバ側の内部悪意者による利用者への「なりすまし」による不正行為,即ち内部犯罪をも防ぐことが可能である.
3) 盗聴した認証情報の再利用が不可能
 サーバ側では,クライアントから受信した認証情報を認証要求者の公開鍵で復号し,認証者側で保存してあった認証情報検証データ(前回ログイン時に使用した認証情報)と比較し,それらが同一であれば即時にその認証情報を次回の認証情報検査データとして保存するので,第三者が送信中の認証情報を盗聴し,それをそのまま再利用して正規の認証要求者になりすまそうとしても,サーバ側では既に認証情報検査データが更新されているので「なりすまし」によるログインが可能な時間的隙間が皆無である.
 例えば,既存方式で認証情報の一部にタイムスタンプを用いるような方式では,サーバ側で一定の時間許容範囲を設けているため,認証情報を盗聴後即時にその許容範囲時間内で再使用すれば真のクライアントになりすましてサーバにログインできる(リプレイ攻撃)タイミングが存在し得るが,本方式ではこれが不可能である.
4) 毎回異なる一回限りの認証情報を無限に生成可能
 認証情報は,秘密鍵,公開鍵のペアーを変更しない限り,クライアントは無限に一回限りの認証情報を生成することができる.また,たとえ変更したとしてもクライアントとサーバ間で鍵変更作業の同期がとれていれば,鍵変更前に使用した最後の認証情報を鍵変更後の初期情報(認証情報生成種データ)として使用可能であるので,鍵変更後の初期情報登録作業は不要となる.
 さらに,認証情報と共に公開鍵証明書を送ることによりクライアントの公開鍵をサーバに配送する方式を採用するなら,鍵変更作業の同期は不要であり,クライアントは任意に鍵を変更することが可能となる.
5) 認証処理シーケンスが単純明快
 クライアントーサーバ間の認証処理は対話シーケンスを持たず,従来からある最もシンプルなパスワード方式と同様,ログイン時にサーバ側からの認証情報要求に基づき1メッセージ(認証情報)を送信するのみである.

5. 実装にあたっての留意点

 ここでは,無限ワンタイム認証方式を実装する際に考慮すべき外部環境的留意事項を述べる.

5.1 秘密鍵の保管方法について
 無限ワンタイム認証方式は,図13の例においてクライアントXが自身の秘密鍵Ksを厳密に保管することが前提である.このKsが第三者に知られると次回ログイン時の認証情報がその第三者によって生成することが可能となり,クライアントXになりすますことが可能となる.
 この不正使用を防ぐために以下のような対策を施す必要がある.
5.1.1 Ksをクライアント端末(クライアントXが使用するマシン)のローカル・ディスク上に暗号化して保管
 DESのような適当な共通鍵暗号方式を用い,クライアントXのみが知るパスフレーズを鍵としてKsを暗号化して保管する.ここでの暗号化は,Ksを保管するためだけのものであり,クライアント端末毎に暗号アルゴリズムが異なっても構わない.
 この場合のクライアント側システム構成イメージを図15に示す.

図 15
図 15 クライアント側のシステム構成イメージ(その1)

1) 長  所
・特殊機器を必要とせず暗号ソフトウェアをインストールするだけでKsを秘密に保管できる.
・外部インタフェース機器が不要である.
2) 短  所
・第三者がパスフレーズを推測し,クライアントXのKsを盗む可能性がある.
・ログインに使用するクライアント端末がKsを保管している端末に限定される.
5.1.2 秘密鍵KsをICカードに保管
 Ksをクライアント端末上ではなくICカード上に保管し,クライアントXが常時持ち歩く.
 この場合のクライアント側システム構成イメージを図16に示す.また,ICカードを介したクライアントXとサーバ間の認証シーケンス概要を図17に示す.
図 16
図 16 クライアント側のシステム構成イメージ(その2)
図 17
図 17 クライアントXとサーバ間の認証シーケンス概要

1) 長  所
・KsがICカードに保存されるので,第三者がクライアント端末を使用してクライアントX本人になりすますことは不可能である.
・ICカードとインタフェース可能な端末であれば,どのような端末でも使用可能となる.従って,例えば携帯端末で社外からリモート・ログインなども可能となる.
図13のクライアント端末において,認証情報生成種データなど次回ログイン時の認証情報生成に必要な各種情報もICカード上に保管し,暗号化処理もICカード上で行えば安全性がより向上する.
・ログイン処理実行に先立ち,ICカードがクライアントX(利用者)を暗証番号などで認証するような方式にすれば,ICカードを紛失しても第三取得者がクライアントXになりすますことは困難である.
2) 短  所
・ICカードとクライアント端末間のインタフェース機器が必要となる.しかしICカードおよびその入出力機器は,実用的な価格になりつつある.
5.2 グローバルな相互通信にあたって
5.2.1 初期情報登録と暗号アルゴリズム
 無限ワンタイム認証方式では,認証情報を生成するために用いる公開鍵暗号のアルゴリズムについて規定していない.あるデータを秘密鍵で暗号化し,公開鍵でもとのデータに復号可能な公開鍵暗号アルゴリズム,例えばRSAやElGamalなどであればどのようなアルゴリズムでも適用可能である.
 しかし,本方式を実運用する際には,認証処理に先立って認証者側(サーバ)と被認証者(クライアント)側とで予め使用する暗号アルゴリズムを決めておかなければならない.
 特に企業をまたがるようなグローバルな相互通信においては,利便性の観点から図13における初期情報値D0のクライアントからサーバへの事前通知と使用する暗号アルゴリズムの事前ネゴシエーションをオンラインにより簡単かつ安全に行う方法の確立が必要となる.
5.2.2 統一した公開鍵証明書発行機関(CA:Certification Authority)の必要性
 無限ワンタイム認証方式の原理を述べた4章では,その前提として,クライアントは自身の秘密鍵を,またサーバはそれに対応する公開鍵を保持しているものとしている.
 同一企業内などの比較的狭い範囲であれば,事前にオフラインなどで安全にクライアントの公開鍵をサーバに渡すことが可能であるが,インターネットを介した不特定多数間のグローバルな相互通信においてはこの公開鍵の配送が一般的に困難となる.仮にクライアントの公開鍵が入手できたとしてもそれが真のクライアントの公開鍵である保証が無い.従って2.2.1項で述べた公開鍵証明書を利用することになる.この証明書発行機関(CA)は一般的に,特定の信頼できる第三者組織が運用することになる.公開鍵証明書は,クライアントからの申請によって申請のあった公開鍵にCAの秘密鍵によってデジタル署名を施したものである.サーバはクライアントから得た公開鍵証明書を検査することにより,正当なクライアントの公開鍵が得られる.
 現在では,インターネットソサイティが公認しているIPRA(Internet PCA(Policy Certification Authority)Registration Authority)が実験目的で全世界をカバーするCAを運用しているが,その信頼度は不明である.また商用のCAとしては,VeriSign社などがビジネス単位に行っているものがあるが,流通範囲が極めて限定的でしかも印鑑登録証のような公の権威は無い.
 不特定多数間のグローバルな相互通信にあたっては,世界的に認知されたCAが必要であるが,これについては国際的な環境整備を待たねばならない.
 しかしながら,企業内や同業種企業間などの限定的な相互通信であれば,その範囲内で信頼できる企業がCAを設置し,各クライアントに公開鍵証明書を発行し,無限ワンタイム認証方式と連動させることは容易である.

6. お わ り に

 インターネット時代における情報通信システムのセキュリティ維持上必須とされるエンティティ認証手段として,既存システムの問題点を解決し,しかも仕組みが簡単な「無限ワンタイム認証方式」を考案しその有効性を述べた.
 本方式は単にネットワーク・セキュリティ分野に限らず,およそ認証と名がつくあらゆる分野に応用が可能である.
 実システムへの実装は未実施であるが,情報通信に係わる全てのエンティティが本方式を実装し,且つ単一のCAから公開鍵証明書を受けていれば,インターネットを介したあらゆる分散環境(RPC,CORBAなど),リモート・ログイン環境(Telnet,rloginなど)およびWeb環境(httpなど)において,リプレイ攻撃を不能ならしめる安全で永続性のある相互エンティティ認証が原理的に可能となる.
 今後5章で述べた留意事項を考慮しつつ実システムへの適用を考えてみたい.


*1 UNIXは,X/Openカンパニーリミテッドがライセンスしている米国ならびに他の国における登録商標である.
その他,本稿に記載の会社名,商品名は一般に各社の商標または登録商標である.


参考文献
[ 1 ] D. V. Klein,“Foiling the Cracker':A Survey of,and Implications to,Password Security,” Proceedings of the USENIX UNIX Security Workshop,Aug1990,pp.5-14.
[ 2 ] D. V. Klein,personal communication,1994.
[ 3 ] Bruce Schneier,「APPLIED CRYPTOGRAPHY」 2nd edit,John Wiley&Sons Inc.,1996.
[ 4 ] 池野信一,小山謙二,「現代暗号理論」,電子情報通信学会,1986年9月.
[ 5 ] 辻井重男,笠原正雄,「暗号と情報セキュリティ」,昭晃堂,1990年3月.
[ 6 ] 岡本龍明,太田和夫,「暗号・ゼロ知識証明・数論」,共立出版,1995年6月.


執筆者紹介

八津川 直 伸(Naonobu Yatsukawa)
 1980年福井大学工学部電子工学科卒業.同年日本電信電話公社入社,伝送システムの施設設計を担当.1985年日本ユニシス(株)入社.以来,電気通信の自由化に伴い,コモンキャリアとしての基本電気通信事業およびVAN事業の企画推進,汎用機用通信制御装置のコミュニケーション・ソフトウェアの開発および保守,セキュリティ技術の研究を担当.現在,新事業企画開発部に所属.

  

商標等について
ユニシス技報本誌お申込み  「ユニシス技報」へ戻る お問合せ