二者間データ通信を安全に行うプロトコルの自動生成法

日本ソフトウェア科学会第 22 回大会(2005 年度)論文集
1
二者間データ通信を安全に行うプロトコルの自動生成法
Construction method of Security Protocols for Data Exchange
between Two Participants
†
‡
佐藤 直人
‡
萩原 茂樹
Shigeki Hagihara
Naoto Sato
†
米崎 直樹
Naoki Yonezaki
日立製作所システム開発研究所
Hitachi, Ltd., Systems Developemnt Laboratory
[email protected]
‡
東京工業大学大学院情報理工学研究科計算工学専攻
Department of Computer Science, Graduate School of Information Science and Engineering,
Tokyo Institute of Technology
{hagihara,yonezaki}@fmx.cs.titech.ac.jp
近年のインターネット上での重要な取引の増加に伴い、安全なプロトコルが必要不可欠となっている。本稿
では二者間データ通信のためのセキュリティプロトコル自動生成法を提案する。これは、プロトコルの構造
から安全性を導出する推論規則を利用し、安全なプロトコルのみを生成する手法である。また、プロトコル
に対するコスト評価を行うことで、使用環境に適したより良いプロトコルを生成する。さらに、他の自動生
成方式と比較することで、本稿で提案する自動生成法の利点についても議論する。
1
はじめに
個人情報や商取引に関する重要データがネットワー
ける意味に基づいて証明する。最後に、他の自動生
成法との比較も行う。
クを通じて伝達されるようになった現在、これらの
通信上のセキュリティを守るためには、暗号化技術
準備
2
が必須であるが、それだけでは十分ではない。たと
本稿で自動生成の対象としているプロトコルの性
え、暗号化技術が完全であっても、伝送手順である
質や、想定する攻撃者の振る舞い、プロトコルが満
プロトコルに欠陥があればメッセージのすり替えや
たすべき安全性等を定義する。
成り済まし攻撃を受ける可能性がある。よって、プ
ロトコルの安全性を形式的に検証する技術が必要で
ある。しかし、検証のコストを考えると、これまで
は非形式的に行われてきたプロトコルの設計を形式
的に行うアプローチの方が現実的である。
そこで本稿では、二者間でデータ通信を行うため
のセキュリティプロトコルの自動生成法を提案する。
2.1
生成対象プロトコル
• 2 者間でデータをやり取りするためのプロトコ
ルを生成する。データとは、ナンスや参加者の
名前とは異なるメッセージで、これをお互いに
通達することをプロトコルの目的とする。
この生成法では安全性が保証されているメッセージ
• 参加者は受信したデータを返送することはない。
構造を元に、安全なプロトコルのみを生成する。ま
• データは必ず交互にやり取りする。
た、プロトコルに対する静的なコスト評価を行うこ
とで、使用環境に適したセキュリティプロトコルを
選別する。
以下ではまず前提条件を示した後、プロトコルの
構造から安全性を推論するための推論規則を導入す
る。そしてこれを利用した自動生成手続きを示す。さ
らにこの推論規則の健全性をストランド空間 [3] にお
• 1つの送受信メッセージに対して、同じ鍵で二
度以上の暗号化、署名操作は行わない。
• ナンスは必ずセッションに対応付けて使用する。
(自分の作成したナンスとセッションとの対応を、
相手に認識させる)
日本ソフトウェア科学会第 22 回大会(2005 年度)論文集
2
• レスポンダは、ステップ 1 のメッセージからイ
ニシエータの名前を知ることが出来る。
• 秘密にしたいデータ(何番目のデータを秘密に
するか)。
• 正当な参加者がセッションごとに作成するナン
スは新規なものであり、以前に使用されたもの
を使用することはない。(ナンスの新規性)
• イニシエータとレスポンダのどちらからデータ
• 参加者は一度に複数のセッションで通信を行う
ことが出来る。
を送信し始めるか。
自動生成法
3
本節では、プロトコルの自動生成法について述べ
る。初めに自動生成に利用する論理を与え、その後こ
2.2
攻撃者のモデル
本稿では、攻撃者の振る舞いや、その知識を以下
れを利用した自動生成手続きについて述べる。また、
プロトコルに対するコスト評価についても述べる。
のように想定する。
3.1
• 攻撃者は、通信される全てのメッセージを盗聴
することが出来る。
• 攻撃者は、通信される全てのメッセージを他の
メッセージとすり替えることが出来る。
• 攻撃者は対象とするネットワークにおいて、参
加者として通信を行うことが出来る。
• 攻撃者は全ての参加者の公開鍵を知っている。
• セッション開始前に、攻撃者がそのセッション
参加者の秘密鍵を知っていることはない。
論理
本節では、プロトコルの自動生成に用いる論理を
与える。この論理を用いることで、前節であげた安
全性の検証を行うことができる。
3.1.1
用語
A, B: それぞれ、イニシエータ、レスポンダを表す
定数。
Si , Ri : ステップ i での送信者、受信者を表すメタ
変数。
(ステップ i でイニシエータが送信者、レスポ
ンダが受信者であるとき、Si = A, Ri = B となる。
レスポンダが送信者、イニシエータが受信者である
• 攻撃者は、元々知っている知識や攻撃によって とき、Si = B, Ri = A となる。)i が明らかの場合
得た知識を元にメッセージを偽造し、正しいメッ は、i を省略する。
セージとすり替えることが出来る。
X: 参加者を表すメタ変数
NX : X が作成したナンスを表す定数。
2.3
安全性
以下の3つの安全性を満たすプロトコルを生成す
る。
データの秘密性 秘密にすべきデータについて、デー
タ作成者の意図した相手以外にそのデータは知られ
ることのない性質。
KX : X の公開鍵を表す定数。
−1
KX
: X の秘密鍵を表す定数。
Mi : ステップ i で送受信されるメッセージを表す
定数。
Di : ステップ i で送受信されるデータを表す定数。
M : メッセージを表すメタ変数。
ものであることを受信者が確認できる性質。
N : ナンスを表すメタ変数。
K: 鍵を表すメタ変数。
受信確認 セッションで送信した全てのデータが、意
ナンス、データ、参加者の名前をアトミックメッ
データ認証
受信したデータが意図した相手からの
図した相手に正しく受信されたことを送信者が確認
セージと呼ぶ。
できる性質。
3.1.2
2.4
プロトコルの仕様
式
式は、プロトコルの構造を表す式と、性質を表す
生成するプロトコルの仕様は以下の項目からなる。 式に分けることができる。プロトコルの構造を表す
仕様は自動生成器に対する入力として与えられる。 式は、[5] から引用した。
• やり取りするデータの数。
日本ソフトウェア科学会第 22 回大会(2005 年度)論文集
3
プロトコルの構造を表す式
Di is warranted: ステップ i の受信者は、Di は意
M1
M2 : M1 が M2
の部分メッセージであることを表す。ここで、メッ 図した通信相手が意図したステップで送信したもの
セージ中で暗号化や署名に用いられる鍵は部分メッ であることを確認できる。(データ認証)
セージではない。以下のように帰納的に定義される。 Di is secret: データ Di はその作成者の意図する
相手以外に知られることはない。(データの秘密性)
• M M
• M
M ならば、M
{M }K
• M
M1 ならば、M
M1 M2 (M
推論規則
3.1.3
M2 M1 )
プロトコルの構造を表す式を導出する推論規則
プ
ロトコルの構造を表す式は以下の規則により導出さ
M1 N M2 : M1 は M2 の部分メッセージで、かつ、 れる。これらの規則は、[5] で導入された。
N が M2 の部分メッセージであるとき、N は M1 の (DA1)M から M を取り出すことが出来る。
みに出現することを表し、以下のように定義される。
i
• M
N
M
• M
N
M ならば、M
• M
N
M1 かつ N
(M
i
N
N
(DA2)M1 から M2 を取り出すことができ、M2 か
ら M3 を取り出すことが出来るならば、M1 から M3
{M }K
M2 ならば、M
M ↓R M
N
M1 M2
を取り出すことが出来る。
i
M2 M1 )
M1 ↓R M2 : ステップ i で R が M1 を受け取っ
た際、M1 から M2 という情報を取り出せる。
i R knows N : ステップ i 以前のメッセージか
ら、R は N を知ることができる。
M1 ↓R M2 i M2 ↓R M3
i M1 ↓R M3
(DA3)M から M1 と M2 の連接メッセージが取り出
すことが出来るならば、M から M1 を取り出すこと
が出来、かつ M から M2 を取り出すことが出来る。
i
i NS ↔ S: ステップ i で S は、自分の名前 S と
自分が作成したナンス NS を一緒に暗号化するか、S
を NS で暗号化して、相手に送信する。
i
−1
(DA4)R は KR
を知っているため、{M }KR から
M と(情報として)R を取り出すことが出来る。
プロトコルの性質を表す式
i N is not extracted:
イントルーダはステップ i までに送受信されたメッ
セージから N を得られない。
M ↓R M1 M2
M ↓R M j
{M }KR ↓R R ∧ i
i
{M }KR ↓R M
(DA5)R は KS を知っているため、{M }K −1 から
S
i
N is not known: N の作成者がステップ i ま
で実行した時点で、N はイントルーダに知られてお
らず、N の作成者とその意図した相手のみが知って
M と(情報として)S を取り出すことが出来る。
{M }K −1 ↓R S ∧ i
i
S
{M }K −1 ↓R M
S
(DA6)R が N を知っていれば、{M }N から M と
i M is addressed to NR : Mi のサブメッセージ (情報として)N を取り出すことが出来る。
M は、NR の作成者 R への宛先情報を含んでおり、
i R knows N
いる。
かつイントルーダによって偽造されることはない。
i R recognize (NS , NR ): NR を作成した受信者
R は、ナンス NS が意図した通信相手の作成したも
ので、セッションに対応したナンスであることをス
i
{M }N ↓R N ∧ i
{M }N ↓R M
(Knows1) イニシエータ A は NA を初めから知っ
ている。同様にレスポンダ B は NB を初めから知っ
ている。
テップ i で認識する。(R は S を認証する)
i A knows NA ∧ i B knows NB
i M is guaranteed: Mi のサブメッセージ M は、
イントルーダによる攻撃に対して耐性がある。つま (Knows2)i 以前のステップ j のメッセージから、R
i
りステップ i の受信者は、M は意図した通信相手が は N を取り出すことが出来る。
意図したステップで作成したものであることを確認
∃j < i j Mj ↓Ri N
出来る。
i Ri knows N
日本ソフトウェア科学会第 22 回大会(2005 年度)論文集
4
(B1) 送信者 Si は、ナンス NSi と名前 Si をメッセー 含む構造であれば、ステップ i + 1 のメッセージがイ
ジ {M }KRi に含めて相手に送信する。ここで、tagi ントルーダによって偽造されることはない。よって
はタグを表しており、メッセージがステップ i 用であ Ri がステップ i までしか実行しなければ、相手 Si も
るという情報を持つ。仮にプロトコルの中で {M }KRi
ステップ i までしか実行することが出来ない。i まで
という形のメッセージが一意的であるならば、tagi
のメッセージから NRi は漏れないため、Ri がステッ
は必要ない。他の規則でも同様である。
プ i まで実行した時点では NRi は秘密となる。
i
Mi ↓Ri {M }KRi i M ↓Ri NSi
i M ↓Ri Si i M ↓Ri tagi
i
i
NSi ↔ Si
i
(B2) 送信者 Si は、名前 Si を含むメッセージをナ
ンス NSi で暗号化して相手に送信する。
i
Mi ↓Ri {M }NSi i
i M ↓Ri Si i
i
NRi is not extracted i + 1 Mi+1 ↓Ri+1 {M }KRi+1
i + 1 M ↓Ri+1 NRi i + 1 M ↓Ri+1 tagi
NRi is not known
(K2)(K1) と同様
i
{M }NSi ↓Ri NSi
M ↓Ri tagi
Mi+1 ↓Ri+1 {M }K −1
NRi is not extracted i + 1
M ↓Ri+1 NRi i + 1
i+1
i
NSi ↔ Si
M ↓Ri+1 tagi
Si+1
NRi is not known
(K3)(K1) と同様
i
プロトコルの性質を表す式を導出する推論規則
プ
NRi is not extracted i + 1 Mi+1 ↓Ri+1 {M }NRi
i + 1 M ↓Ri+1 NRi i + 1 M ↓Ri+1 tagi
i
ロトコルの性質を表す式は、以下の規則により導出
NRi is not known
される。
(KK) ナンス N が、ステップ i + 1 まで実行した時
(NN) ナンス N がサブメッセージとして含まれなけ 点で秘密ならば、ステップ i の時点でも秘密である。
れば、イントルーダに漏れることはない。
i−1
N is not extracted N
i N is not extracted
i + 1 N is not known
i N is not known
Mi
(NS) ナンス NSi を相手の公開鍵 KRi で暗号化す
れば、相手 Ri 以外に漏れることはない。
i−1
NSi is not extracted {M }KRi
i M ↓Ri tagi
i
NS i
Mi
NRi is not extracted ∃j < i j NRi ↔ Ri
{M }KRi NRi Mi i M ↓Ri tagi
NRi is not extracted
i
i
NRi is not known i Mi ↓Ri {M }KRi
i M ↓Ri NRi i M ↓Ri tagi
NSi is not extracted
(NR) ナンス NRi をその作成者の公開鍵 KRi で暗
号化すれば、Ri 以外に漏れることはない。
i−1
(AD1) 秘密の NRi を含み Ri の公開鍵で暗号化さ
れた M を作成できるのは、通信相手は NRi を作成
した Ri であると信じている Si のみ。
{M }KRi is addressed to NRi
i
(AD2)NRi と Ri を含み Si の署名がなされた M を
作成できるのは、通信相手は NRi を作成した Ri で
あると信じている Si のみ。
Mi ↓Ri {M }K −1 i
i
Si
i
(K0) メッセージを送受信していなければ、ナンス
は漏れない。
0
N is not extracted
M ↓Ri Ri i
N is not extracted k は最終ステップ
k N is not known
M ↓Ri tagi
{M }K −1 is addressed to NRi
i
Si
(AD3)Ri を含み秘密の NRi で暗号化された M を
作成できるのは、通信相手は NRi を作成した Ri で
(KL) 全てのメッセージから N が漏れることがなけ あると信じている Si のみ。
れば、セッションを通して N は秘密である。
i NRi is not known i
k
M ↓Ri NRi
i
i
M ↓Ri Ri i
Mi ↓Ri {M }NRi
M ↓Ri tagi
{M }NRi is addressed to NRi
(K1) ステップ i まで実行した時点で NRi が秘密で
(AD4) 既に Si が NRi とその持ち主の名前 Ri の対
あり、ステップ i + 1 のメッセージが NRi とタグを
応を認識しているのであれば、秘密の NRi で暗号化
日本ソフトウェア科学会第 22 回大会(2005 年度)論文集
された M を作成できるのは、通信相手は NRi を作
成した Ri であると信じている Si のみ。
NRi is not known ∃j < i j NRi ↔ Ri
i Mi ↓Ri {M }NRi i M ↓Ri tagi
i
i
{M }NRi is addressed to NRi
(AD5)M を作成したのは、通信相手は NR1 i を作成
2
した Ri であると信じている Si であり、M に NR
i
が含まれるならば、M を作成できるのは通信相手は
NR2 i を作成した Ri であると信じている Si のみで
ある。
i
1
M is addressed to NR
i
i
i
2
M ↓Ri NR
i
2
M is addressed to NR
i
(REC1)M を作成できるのは、通信相手を NRi を
(GS3) タグを含み、受信者がセッションとの対応
を認識する送信者のナンス NSi で暗号化されたメッ
セージは、意図した通信相手が意図したステップで
送信したものであることを確認できる。i が最終ス
テップの場合は i + 1
NSi is not known i Mi ↓Ri {M }NSi
i M ↓Ri tagi i {M }NSi ↓Ri NSi
Ri recognize (NSi , NRi ) i + 1 M is guaranteed
i
∃j j
i
送信したものであることを確認できる。
i
スであることを認識する。
Ri recognize (NSi , NRi ) ∧ i
M is guaranteed
(REC2)(REC1) によって Si が NRi が意図した相
手のナンスであることを確認した後、NRi を返送す
ることによって、Ri は NSi が Si の作成したナンス
{M }KRi is guaranteed
(GR2) 送信者がセッションとの対応を認識した、受
信者のナンス NRi 、受信者の名前 Ri 、タグを含む署
名メッセージは、意図した通信相手が意図したステッ
プで送信したものであることを確認できる。
i
Mi ↓Ri {M }K −1 i
Si
M ↓Ri NRi
i M ↓Ri tagi i M ↓Ri Ri
∃j < i j Si recognize (NRi , NSi )
i M is addressed to NRi
∃j < i j Si recognize (NRi , NSi )
Ri recognize (NSi , NRi ) ∧ i
NRi is not known i Mi ↓Ri {M }KRi
i M ↓Ri NRi i M ↓Ri tagi
∃j < i j Si recognize (NRi , NSi )
i
であることを確認できる。
i
{M }NSi is guaranteed
(GR1) 送信者がセッションとの対応を認識した、
受信者の秘密のナンス NRi と、タグを含む暗号メッ
セージは、意図した通信相手が意図したステップで
受信者 Ri は、NSi はそのような Si の作成したナン
i
M is guaranteed の条件は必
要ない。
作成した Ri であると信じている Si のみであるため、
(ステップ i 以前に Ri が送信した全ての NRi について)
i M is addressed to NRi i M ↓Ri NSi
5
i
{M }K −1 is guaranteed
Si
M is guaranteed
(GR3) タグを含み、送信者がセッションとの対応
(GS1) 受信者がセッションとの対応を認識する送
を認識した受信者のナンス NRi で暗号化されたメッ
信者の秘密のナンス NSi と、タグを含む暗号化メッ
セージは、意図した通信相手が意図したステップで
セージは、意図した通信相手が意図したステップで
送信したものであることを確認できる。
送信したものであることを確認できる。i が最終ス
i NRi is not known i Mi ↓Ri {M }NRi
テップの場合は i + 1 M is guaranteed の条件は必
i
要ない。
i
M ↓Ri tagi ∃j < i j
i
Si recognize (NRi , NSi )
{M }NRi is guaranteed
NSi is not known ∃j j Ri recognize (NSi , NRi )
i Mi ↓Ri {M }KRi i M ↓Ri NSi
i M ↓Ri tagi i + 1 M is guaranteed
た通信相手が意図したステップで作成したものであ
{M }KRi is guaranteed
ることを確認できるため、Mi に含まれる Di も意図
i
(WAR)Mi のサブメッセージである M は、意図し
(GS2) 受信者がセッションとの対応を認識する送信 した通信相手が意図したステップで作成したデータ
者のナンス N と、タグを含む署名メッセージは、 であることを受信者は確認できる。
Si
i
意図した通信相手が意図したステップで送信したも
のであることを確認できる。
i
i
Mi ↓Ri {M }K −1 i
M ↓Ri tagi ∃j j
i
M ↓Ri NSi
(SEC1)Di は一度しか送受信されないため、相手の
Ri recognize (NSi , NRi )
公開鍵で暗号化すればイントルーダに漏れることは
Si
{M }K −1 is guaranteed
Si
M is guaranteed i M ↓Ri Di
Di is warranted
ない。
日本ソフトウェア科学会第 22 回大会(2005 年度)論文集
6
やり取りされるメッセージの暗号化コストや量的
{M }KRi
Di
コストはプロトコルの評価基準として一般的である
Mi
が、本稿ではこれに加え、攻撃が検出される時期に
Di is secret
対してコスト基準を導入する。
(SEC2)Di が送信者の作成した秘密のナンス NSi
で暗号化されていれば、イントルーダに漏れること
はない。(k は最終ステップ)
NSi is not known
k
本稿で生成するプロトコルは 2.3 節の安全性を満
たしているため、攻撃者によってメッセージすり替
え等の攻撃が行われたとしても、セッション参加者
{M }NSi
Di
Mi
Di is secret
は必ずこれを検出することが出来る。しかし、その
検出時期はプロトコルごとに異なり、全ての攻撃を
即座に検出できるプロトコルもあれば、ある特定の
(SEC3)Di が認証した相手の秘密のナンス NRi で
攻撃に関しては後のステップでしか検出できないプ
暗号化されていれば、イントルーダに漏れることは
ロトコルもある。このような違いをコスト基準とし
ない。(k は最終ステップ)
て導入した。本稿では、より早く攻撃を検出できる
k
NRi is not known {M }NRi Di Mi
∃j < i j Si recognize (NRi , NSi )
Di is secret
プロトコルの方が良いプロトコルであるという立場
をとる。
3.3
自動生成法
本節では 3.1 節で示した論理を利用した、プロト
安全性を表す式
3.1.4
本節では、本論理においてどのように 2.3 節の安
全性を表現しているかを述べる。
コルの自動生成法を示す。まず初めに生成に必要な
入力について述べ、その後プロトコルの生成手続き
を示す。
データの秘密性 Di is secret が導出されればステッ
プ i で送受信されるデータ Di の秘密性が保証され
る。
3.3.1
入力
まず、2.4 節で挙げたプロトコルの仕様を以下のよ
データ認証 やり取りされる全てのデータ Di につい
うに形式化し、入力として与える。やり取りするデー
て Di is warranted が導出されれば、データ認証が満
タの数とデータを送信し始める側が決定されれば、そ
たされる。
のために必要なプロトコルの最小ステップ数が決定
受信確認 受信確認を満たすためには、データのやり
されるため、これをプロトコルのステップ数とする。
取りが終わった後(データを含まない)確認メッセー
これによりデータが送受信されるステップも決定さ
ジを送受信すればよい [4]。よってやり取りしたいデー
れる。
M is guaranteed step, Data, Secret :プロトコルの仕様
が導出されれば受信確認が満たされる。
step: プロトコルのステップ数
タが Dk まで存在する場合、k + 1
Data:
3.2
プロトコルに対するコスト評価
本稿では、以下のコスト評価基準に基づきプロト
コルを評価し、使用環境に適したプロトコルを選別
する。
• メッセージの暗号化コスト
• メッセージの署名操作コスト
• メッセージの量的コスト
• 攻撃の検出時期コスト
Secret:
データを送受信するステップ番号の集合
秘密にしたいデータが送受信されるステップ番
号の集合。Data の部分集合
さらに 3.2 節のコスト基準に対するコスト重みを
入力として与えることで、3.2 の基準のうちどの基準
を重視するかを指定することが出来る。つまり、コ
スト重みによってプロトコルが使用される環境が表
現される。
3.3.2
生成手続き
プロトコルの生成手続きについて述べる。この生
成法では、仕様と安全性を両方とも満たす構造を持
日本ソフトウェア科学会第 22 回大会(2005 年度)論文集
つメッセージを元に、安全なプロトコルのみを生成
する。
7
呼ぶ。
イントルーダストランドは、攻撃者が行える全て
(1) メッセージ生成器によりステップ i のメッセージ の振る舞いを考慮する必要があるため、攻撃者の行
候補をコスト昇順に自動生成する。このメッセージ える基本動作の組み合わせで定義する。基本動作はア
トミックメッセージの生成、メッセージの消失、メッ
候補はプロトコルの仕様を満たしている。
(2) 生成されたメッセージ候補から、ステップ i に関 セージの二重化、連結、分解、鍵使用、暗号化、復
する安全性の式が導出されるかを、推論規則を用い 号化(署名)であり、これらを組み合わせることに
て調べる。候補メッセージをコスト昇順に調べるこ より、2.2 節で定義した攻撃者の可能な行為を全て表
とで、安全性の式が導出される最小コストメッセー 現できる。
生成されるプロトコルのストランド空間について、
ジをステップ i の送受信メッセージとして採用する。
(3) 全てのステップの送受信メッセージを決定し、プ 以下の変数を定義する。
a, b, · · · : 参加者の名前を表す変数
ロトコルが生成される
na , nb , · · · : a, b, · · · の作成したナンスを表す変数
以上の手続きにより、一つの安全なプロトコルが
生成されるが、相手を認証するステップ等、仕様とし
て与えられていない条件を変更することで、一つの
入力から複数の安全なプロトコルが生成される。本
生成法では、得られる可能性のあるプロトコルを全
て生成する。その後プロトコル全体に対するコスト
評価を行い、最小コストプロトコルを出力する。
d1 , d2 , · · · : やり取りされるデータを表す変数
パラメータを利用してストランドを表記すること
も出来る。例えば、イニシエータの名前 a、レスポン
ダの名前 b、イニシエータのナンス na 、レスポンダ
のナンス nb 、やり取りするデータ d1 , d2 であるセッ
ションにおける、高さ i のイニシエータストランド
を INI(a, b, na , nb , d1 , d2 )i 、レスポンダストランドを
RES(a, b, na , nb , d1 , d2 )i と表記する。さらに ∗ を利
用した省略形を定義する。
∪
本節では、本生成法により生成されたプロトコル
INI(a, b, na , ∗) = nb INI(a, b, na , nb )
は、安全性を満たすことを示す。つまり、3.1 節で示 ∗ は任意の値を表しており、どのような値が入っても
した推論規則の健全性をストランド空間 [3] における 構わない。本稿ではしばしば、やり取りするデータ
本生成法の正当性
4
意味に基づき証明する。
を省略したストランド表記を用いるが、その場合も
データの値は任意である。
4.1
ストランド空間
本稿で扱うストランド空間の定義は [3] に従う。ス
トランドとは符号付メッセージの列である。ストラン
4.2
ストランド空間における式の意味
式に対して、ストランド空間における意味を与え
ドはスレッドのようなもので、参加者によって順番に る。プロトコルの構造を表す論理式の持つ意味は、そ
送受信されるメッセージの列を表す。符号付メッセー のような構造を持つプロトコルのストランド空間を
ジは +M と −M のどちらかであり、+M によって
考慮しているという意味でしかないため、ここではプ
メッセージ M の送信を表し、−M によってメッセー
ロトコルの性質を表す式に対してのみ意味を与える。
ジ M の受信を表す。ストランドに現れるこれらの符
号付メッセージをノードと呼ぶ。例えば +M1 , −M2
i
N is not extracted: N がイニシエータのナン
スの場合を考える。高さ i + 1 以上の INI(a, b, na , ∗)
はストランドであり、初めのノードで M1 を送信し、 が存在せず、かつ高さ i + 1 以上の RES(∗, b, na , ∗) も
二番目のノードで M2 を受信する。また、ストランド 存在しなければ、na を知っている可能性のあるレギュ
の持つノードの総数をそのストランドの高さと呼ぶ。 ラーストランドは INI(a, b, na , ∗) と RES(∗, b, na , ∗)
また、攻撃者でない正当な参加者の振る舞いを表
のみであり、かつ +na をノードとして持つイント
すストランドをレギュラーストランド、攻撃者の振
ルーダストランドは存在しない。N がレスポンダの
る舞いを表すストランドをイントルーダストランド
ナンスの場合も同様。
と呼ぶ。また、イニシエータの振る舞いを表すスト
i N is not known: N がイニシエータのナンスの
ランドをイニシエータストランド、レスポンダの振 場合を考える。高さ i + 1 以上の INI(a, b, na , ∗) が存
る舞いを表すストランドをレスポンダストランドと 在しないならば、na を知っている可能性のあるレギュ
日本ソフトウェア科学会第 22 回大会(2005 年度)論文集
ラーストランドは INI(a, b, na , ∗) と RES(∗, b, na , ∗) 4.3
8
推論規則の健全性
のみであり、かつ +na をノードとして持つイント
3.1 節の推論規則が、式に与えられたストランド空
ルーダストランドは存在しない。N がレスポンダの 間における意味を保存することを証明する。これに
ナンスの場合も同様。
より、定理 1 が示され推論規則の健全性が示される。
i
M is addressed to NR : ステップ i ではイニシ
対象プロトコルの条件より、考慮するストランド
エータが受信側とする。i 番目のノードに、M を含む 空間では以下の性質が成立すると仮定する。これは、
メッセージの受信ノードを持つ INI(a, b, na , ∗)i が存 正当な参加者がセッションで作成するナンスは新規
在するならば、i 番目のノードに M を含むメッセージ なもので、以前に使用されたものを使用することは
の送信ノードを持つ、高さ i 以上の RES(a, b, na , ∗) ないという意味である。
が存在する。レスポンダが受信側の場合も同様。
仮定 1 (ナンスの新規性) あるストランド空間にレ
i R recognize (NS , NR ): ステップ i ではイニシ
ギュラーイニシエータストランド INI(a, b, na , nb ,
エータが受信側とする。INI(a, b, na , nb )i が存在する
d1 , · · ·) と、レギュラーイニシエータストランド INI
ならば、高さ i 以上の RES(a, b, na , nb ) が存在する。
(a , b , na , nb , d1 , · · ·) が存在するならば、a = a , b =
レスポンダが受信側の場合も同様。
b , nb = nb , d1 = d1 , · · · が成立する。同様に、ある
i M is guaranteed: ステップ i ではイニシエータ
ストランド空間にレギュラーレスポンダストランド
が受信側とする。i 番目のノードに、M を含むメッ
RES(a, b, na , nb , d1 , · · ·) と、レギュラーレスポンダ
セージの受信ノードを持つ INI(a, b, na , nb )i が存在
ストランド RES(a , b , na , nb , d1 , · · ·) が存在するな
するならば、i 番目のノードに M を含むメッセージ
らば、a = a , b = b , na = na , d1 = d1 , · · · が成立
の送信ノードを持つ、高さ i 以上の RES(a, b, na , nb )
する。
が存在する。
※ただし、a による b の認証が i より後のステップ j (K1) の証明:NRi はイニシエータが作成したナンス
で行われる場合、この式の意味は以下のようになる であるとすると、ステップ i ではイニシエータが受信
ステップ i ではイニシエータが受信側とする。i 番目 側となる。今、INI(a, b, na , ∗)i が存在するとする。仮
のノードに、M を含むメッセージの受信ノードを持 にまだ RES(∗, b, na , ∗) の高さが i 以下であるとする
つ INI(a, b, na , nb )j が存在するならば、i 番目のノー と、i NRi is not extracted より、na を知っている
ドに M を含むメッセージの送信ノードを持つ、高さ 可能性のあるレギュラーストランドは INI(a, b, na , ∗)i
j 以上の RES(a, b, na , nb ) が存在する。レスポンダが と RES(∗, b, na , ∗) のみであり、かつ +na をノードと
受信側の場合も同様。
して持つイントルーダストランドは存在しない。こ
Di is warranted: ステップ i ではイニシエータが受 こで、ステップ i + 1 ではイニシエータが送信側であ
信側とする。i 番目のノードに、di を含むメッセージ り、ステップ i + 1 で送受信されるメッセージにはタ
の受信ノードを持つ INI(a, b, na , nb , di )i が存在する グと秘密の na が含まれるため、イントルーダがこの
ならば、i 番目のノードに di を含むメッセージの送 メッセージの送信ノードを持つことはない。よって
信ノードを持つ、高さ i 以上の RES(a, b, na , nb , di ) RES(∗, b, na , ∗) の高さが i + 1 以上になるためには、
が存在する。加えて、受信者はステップ i の送受信 高さ i + 1 以上の INI(a, b, na , ∗) が存在しなければな
メッセージから di を取り出すことが出来る。レスポ らない。つまり、高さが i+1 以上の INI(a, b, na , ∗) が
ンダが受信側の場合も同様。
存在しないならば、高さ i + 1 以上の RES(∗, b, na , ∗)
Di is secret: ステップ i ではイニシエータが送信 は存在しないことになる。今、INI(a, b, na , ∗) の高さ
側とする。i 番目のノードに di を含むメッセージの は i であることと i NRi is not extracted より、na
送信ノードを持つ INI(a, b, na , nb , di ) が存在するな を知っている可能性のあるレギュラーストランドは
らば、di を知る可能性のあるレギュラーストランド INI(a, b, na , ∗) と RES(∗, b, na , ∗) のみであり、かつ
は RES(∗, b, ∗, ∗, di ) のみで、かつ +di をノードとし +na をノードとして持つイントルーダストランドは
て持つイントルーダストランドは存在しない。レス 存在しない。
ポンダが受信側の場合も同様。
(GR1) の証明:ステップ i ではイニシエータが受
信側とする。i 番目のノードに、{M }Ka を含むメッ
セージの受信ノードを持つ INI(a, b, na , nb )i が存在
日本ソフトウェア科学会第 22 回大会(2005 年度)論文集
9
NRi is not known より 使用する。そして、安全性を満たしたプロトコルの
INI(a, b, na , nb )i 以外に na を知っている可能性があ みを出力する。この生成法では、大量のプロトコル
るのは RES(∗, b, na , ∗) のみであり、i M ↓Ri NRi に対して検証を行う。これに対し本稿で提案した自
より RES(∗, b, na , ∗) が存在する。さらに M が a の 動生成法では、安全性が保証されているメッセージ
公開鍵で暗号化されていることから RES(a, b, na , ∗) 構造を元に設計を行うため、安全なプロトコルのみ
するとする。この時、i
M ↓Ri tagi より高さ i 以上の を効率的に生成することが出来る。
RES(a, b, na , ∗) が存在することになる。ここで j <
i. j Si recognize (NRi , NSi ) より、高さ j 以上の 5.2 束縛関係に基く検証法
INI(a, b, na , ∗) が存在することになるが、ナンスの新
これは [5] にて提案された。推論規則によって、プ
規性より INI(a, b, na , ∗) は INI(a, b, na , nb ) であるた ロトコルの構造から直接的にプロトコルの秘密性や
が存在し、i
め、RES(a, b, na , nb ) が存在しなければならない。以 認証を検証する。束縛関係とは、ナンス等のメッセー
上より i 番目のノードに {M }Ka を含むメッセージ ジ間の対応関係のことである。ある参加者が相手を
の送信ノードを持つ、高さ i 以上の RES(a, b, na , nb ) 認証するということは、相手の名前やナンスを自分
が存在する。これ以外の規則に対する証明は、本稿 の名前やナンスと対応づけることと見なせるため、こ
では省略する。
定理 1 全ての Di について Di is warranted が導出
されるとする。また、やり取りするデータが Dk まで
存在し、ステップ k ではイニシエータが受信側であ
るとする。この時 INI(a, b, na , nb , d1 , d2 , · · · , dk )k が
存在するならば、高さ k 以上の RES(a, b, na , nb , d1 ,
の対応関係に基づいて認証を検証する。束縛関係に
関する推論規則では、本稿で提案した推論規則と同
様、プロトコルの静的な構造から安全性を検証する
ことができる。よって、これを利用してプロトコル
の自動生成を行うことも可能である。しかし束縛関
係に基く推論規則を用いた場合では、生成されない
ようなプロトコルが存在する。束縛関係に基く推論
d2 , · · · , dk ) が 存 在 す る 。逆 に ス テップ k で は レ
規則では、ナンスの秘密性に関する導出を行った後
スポンダが受信側であるとすると、RES(a, b, na ,
にこれを利用して認証を導くことや、ナンスの秘密
nb , d1 , d2 , · · · , dk )k が存在するならば、高さ k 以上
性に対する要件が厳しすぎるという理由から、ナン
の INI(a, b, na , nb , d1 , d2 , · · · , dk ) が存在する。
スを秘密共有しないプロトコルやセッション途中ま
これはストランド空間における agreement プロパ
でしかナンスを秘密保持しないようなプロトコルは
ティである [3]。agreement プロパティは、あるスト
生成されない。本稿の手法でも、生成されないプロ
ランドに対してそのパラメータと高さが一致した相
トコルが存在するが、本手法ではより厳密にナンス
手ストランドの存在を保証するものであり、認証の
の秘密性について調べており、そのようなプロトコ
形式化のひとつである。
ルでも生成出来るものがある。
関連研究との比較
5
6
まとめ
本節では関連研究との比較を行う。関連研究の特
本稿では、二者間データ通信のための安全なプロ
徴に触れながら、本稿で提案した自動生成法の利点
トコルの自動生成法を提案した。これにより、使用環
について言及する。
境に適した安全なプロトコルを効率的に自動生成出
来るようになった。また、関連研究との比較を行い、
5.1
Automatic Protocol Generator
[1] にて提案された自動生成法で、2 者間で認証を
行いセッション鍵を秘密共有するためのプロトコル
を自動生成する。まず、プロトコル生成器により、入
力として与えられた仕様を満たすプロトコルを大量
に生成し出力する。次に、得られたプロトコル群をプ
ロトコル自動検証器にて検証し、安全性を満たすプ
ロトコルを選別する。自動検証器には Athena[2] を
本生成法の特徴について述べた。近年ではインター
ネット上において様々なサービスが行われており、求
められる安全性も様々である。例えば、web サーバに
対して過剰に接続し、サーバを動作不能にするサー
ビス拒否攻撃と呼ばれる攻撃も多く報告されており、
このような攻撃に対する耐性も求められている。こ
のような、秘密性、認証以外の安全性も取り入れる
ことが今後の課題である。
日本ソフトウェア科学会第 22 回大会(2005 年度)論文集
参考文献
[1] Adrian Perrig Dawn Song. Looking for diamonds in
the dessert — extending automatic protocol generation to three-party authentication and key distribution. In Proc. of IEEE Computer Security Foundation Workshop, 2000.
[2] S.Berezin D.Song and A.Perrig. Athena: a novel approach to efficient automatic security protocol analysis. Journal of Computer Security, Vol. 9, No. 1,
pp. 47–74, 2001.
[3] F. Javier Thayer F´
abrega, Jonathan C. Herzog, and
Joshua D. Guttman. Strand spaces: Proving security protocols correct. Journal of Computer Security, Vol. 7, pp. 191–230, 1999.
[4] 根岸和義, 米崎直樹. セキュリティプロトコルの一貫性
および正常終了一致の同一参加者による複数セッショ
ンを考慮した検証法. 情報処理学会論文誌, Vol. 41,
No. 8, pp. 2281–2290, 2000.
[5] 萩谷昌己, 竹村亮, 高橋孝一, 斉藤孝道. 束縛関係に基
づく認証プロトコルの検証. コンピュータソフトウェ
ア, Vol. 20, No. 3, pp. 17–29, 2003.
10