スライド 1

Similar documents
ProVerifによる暗号プロトコルの形式的検証

reduc forall k: key, x: bitstring; HMAC_SHA1(k, x) = hmac(k, x). reduc forall k: key, r: nonce; f1(k, r) = hmac(k, nonce_to_bitstring(r)). reduc foral

type nonce. type host. consts const request_id: bitstring [data]. const response_id: bitstring [data]. const start_ttls: bitstring [data]. const succe

cpvp_EAP-TTLS_ProVerif

Symmetric-Key encryption (AES) fun sencrypt(bitstring, symkey): bitstring. reduc forall x: bitstring, k: symkey; sdecrypt(sencrypt(x, k), k) = x. Key

fun H(bitstring): bitstring. (* SHA1 *) fun P_hash(bitstring, bitstring): bitstring. (* P_SHA1 *) reduc forall secret: bitstring, label: bitstring, se

cpvp_Kerberos-preauth_ProVerif

cpvp_PKM_ProVerif

IPsec徹底入門

cpvp_PKMv2_ProVerif

fun sign(bitstring, skey): bitstring. reduc forall m: bitstring, k: skey; getmess(sign(m, k)) = m. reduc forall m: bitstring, k: skey; checksign(sign(

暗号プロトコル評価結果 独立行政法人情報通信研究機構 1. プロトコル名 :PKM 2. 関連する標準 IEEE Std e 使用したツール :S

情報セキュリティ 第 9 回 :2007 年 6 月 15 日 ( 金 )

Microsoft PowerPoint - sakurada3.pptx

Microsoft PowerPoint ppt

cpvp_Kerberos-preauth_Scyther

Microsoft PowerPoint - kyoto

目次 1. 既存ワンタイムパスワード方式の課題 2.IOTP の特徴 3.IOTP の仕様 4. 安全性 可用性評価 5. 実施例 6. 知的所有権情報 7. まとめ 1 All Rights Reserved,Copyright 日本ユニシス株式会社

日本内科学会雑誌第98巻第4号

日本内科学会雑誌第97巻第7号

PowerPoint プレゼンテーション

Untitled

Microsoft PowerPoint pptx


スライド 1

暗号方式委員会報告(CRYPTRECシンポジウム2012)

PANA-Msg-Code; protocol pana-auth-aka(i, R) { role I { fresh rand, sqn: Nonce; fresh msgnum: Nonce; fresh PANA-msgnum, PAA-nonce: Nonce; var PaC-nonce

21 Key Exchange method for portable terminal with direct input by user

暗号プロトコル評価結果 独立行政法人情報通信研究機構 1. プロトコル名 :PKMv2 2. 関連する標準 IEEE Std e 使用したツール

Copyright 2014 Symantec Corporation. All rights reserved. Symantec と Symantec ロゴは Symantec Corporation または関連会社の米国およびその他の国における登録商標です その他の会社名 製品名は各社の登録商

25 About what prevent spoofing of misusing a session information

FIDO技術のさらなる広がり

ログを活用したActive Directoryに対する攻撃の検知と対策

Microsoft PowerPoint - DNSSECとは.ppt

2.SSL/TLS と暗号プロトコルの安全性 恒久的に噴出する脆弱性との戦い クライアント ClientKeyExchange Verify ServerKeyExchange Request Done Request サーバ X Master Secret CCS MAC 図 -1 図

AirStationPro初期設定

Microsoft PowerPoint - IPsec徹底入門.ppt

Microsoft PowerPoint pptx

Plone Web Plone OpenID 1.4 Gracie Gracie OpenID Python Plone GNU GPL Plone Gracie Password Authentication Module (PAM) UNIX OpenID 1. OpenID 2 OpenID

cpvp_IKE-PSK_Scyther

Ł\”ƒ-2005

第90回日本感染症学会学術講演会抄録(I)

日本内科学会雑誌第102巻第4号

第5回_ネットワークの基本的な構成、ネットワークの脆弱性とリスク_pptx

An Automated Proof of Equivalence on Quantum Cryptographic Protocols

Web ( ) [1] Web Shibboleth SSO Web SSO Web Web Shibboleth SAML IdP(Identity Provider) Web Web (SP:ServiceProvider) ( ) IdP Web Web MRA(Mail Retrieval

O1-1 O1-2 O1-3 O1-4 O1-5 O1-6

企業ネットワークにおける 認証基盤の構築に関する研究

放射線専門医認定試験(2009・20回)/HOHS‐05(基礎二次)

プログラム

Anonymous IPsec with Plug and Play

パスワード暗号化の設定


正誤表(FPT0417)

小特集暗号と社会の素敵な出会い 1. マイナンバーと電子署名 電子認証 基応専般 手塚悟 ( 東京工科大学 ) マイナンバーとは IC 図 -1 電子署名 電子認証とは 電子署名と電子認証の違い 1058 情報処理 Vol.56

i

スライド 1

侵入挙動の反復性によるボット検知方式

Microsoft PowerPoint pptx

スライド 1

今後の予定 第 10 回 :6 月 22 日 暗号化ソフトウェア :SSL,SSH 第 11 回 :6 月 29 日 サーバセキュリティ 第 12 回 :7 月 6 日 理論 : 計算論, 暗号プロトコル 第 13 回 :7 月 13 日 企業 組織のセキュリティ :ISMS, 個人情報保護法 第

Template Word Document

Untitled

C02.pdf

Apache Axis2 におけるXML署名検証不備

Wi-Fi Wi-Fi Wi-Fi Wi-Fi SAS SAS-2 Wi-Fi i

プログラム

日歯雑誌(H19・5月号)済/P6‐16 クリニカル  柿木 5

Microsoft PowerPoint pptx

SeciossLink クイックスタートガイド

PowerPoint プレゼンテーション

02

DNSSEC の仕組みと現状 平成 22 年 11 月 DNSSEC ジャパン

パスワード暗号化の設定

本文/目次(裏白)

Microsoft PowerPoint - w5.pptx

インターネットVPN_IPoE_IPv6_fqdn

AXシリーズとSafeNetの相互接続評価

UCSセキュリティ資料_Ver3.5

CodeGear Developer Camp

本講演では 以下の 3 点の説明を う 1. FIDO の仕組みの解説 2. FIDO をインターネット バンキングに活 した場合の安全性評価 3. FIDO をインターネット バンキングに活 する際の留意点 ( 注 ) 本講演では FIDO の UAF(Universal Authenticati

<4D F736F F F696E74202D2088C38D86979D985F82D682CC8FB591D22E >

Microsoft Word - クライアントのインストールと接続設定

Microsoft IISのWebDAV認証回避の脆弱性に関する検証レポート

Kerberos の設定

研究室LANの設定方法

JavaプログラミングⅠ

untitled

21 VoIP An encrypted VoIP communication system for mobile telephones

p_network-management_old-access_ras_faq_radius2.xlsx

<326E E D836A B2E666D>

OSSTechプレゼンテーション

Clearswift PPT Template

抄録/抄録1    (1)V

(Requirements in communication) (efficiently) (Information Theory) (certainly) (Coding Theory) (safely) (Cryptography) I 1

RADIUS 無効な認証者およびメッセージ認証者のトラブルシューティング ガイド

構造化プログラミングと データ抽象

今日の内容 認証について 2013/6/24 2

SAML認証

コンバージドファブリック仕様一覧

Transcription:

ProVerif によるワンタイム パスワード認証方式に対する 形式的な安全性検証 2014 年 3 月 19 日 荒井研一 *, 岩本智裕, 金子敏信 * * 東京理科大学 東京理科大学大学院理工学研究科 1

はじめに 本研究 ワンタイムパスワード認証方式について Proverif を用いて形式的に記述し, 安全性検証を行う ワンタイムパスワード認証方式に対する ProVerif の有用性を示す 本発表の検証対象 :ROSI,SAS-X(2) 2

ワンタイムパスワード認証方式 ワンタイムパスワード (OTP) 認証方式 セッション毎にパスワードを変更することにより, 通信路が盗聴されたとしても安全性を保つことのできる認証方式 OTP 認証方式の満たすべき安全性 サーバに保存されている情報が流出したとしてもなりすましができない 通信データが改ざんされたとしてもサーバが改ざんデータを受理しない ことが求められる 3

ProVerif 形式モデル (Dolev-Yao モデル ) での暗号プロトコルの自動検証ツール Blanchet らが開発 ( 自身のサイトで公開 ) ホーン節によるプロトコル表現 秘匿, 認証などの安全性特性を検証可能 さまざまな暗号プロトコルの安全性が検証されている 4

Dolev-Yao モデル 完全な暗号 (perfect encryption) を仮定 ( 例 ) 共通鍵暗号方式 : E(M, K) 鍵 Kにおける平文 Mの暗号化 D(C, K) 鍵 Kにおける暗号文 Cの復号 M = D(E(M, K), K) 鍵 K を知らなければ, 平文 M に関する情報はまったく得られない 5

ProVerif による検証 Blanchet らのプロセス計算 暗号プリミティブ ( 関数 ) 定義域, 値域, 性質 etc 安全性特性 秘匿, 認証 etc 検証対象のプロトコル ホーン節 ProVerif (Resolution アルゴリズム ) 攻撃なし (true) 攻撃あり (false) 6

Blanchet らのプロセス計算の 構文規則について 拡張 π 計算 暗号プロトコルの記述 7

Constructor 及び Destructor の例 ( 例 ) 共通鍵暗号方式 : Constructor: 暗号化 encrypt(m,k) Destructor: 復号 decrypt(c,k) decrypt(encrypt(m,k),k) m fun reduc or equation ProVerif のコード fun encrypt(bitstring,key): bitstring. reduc forall x: bitstring, y: key; decrypt(encrypt(x,y),y) = x. 公開鍵暗号, 署名, MAC, ハッシュ, Diffie-Hellman 鍵交換,etc 8

プロトコル表現 ( ホーン節 ) メッセージ = terms M = x f M 1,, M n k M 1,, M n encrypt(m, sk) 特性 ( 性質 ) = facts F = attacker(m) プロトコル, 攻撃者 = Horn clauses F 1 F n F attacker(m) attacker(sk) attacker(encrypt(m,sk)) 9

ProVerif におけるホーン節について ProVerifにおけるホーン節の例 ( 例 ) 共通鍵暗号 : 暗号化 encrypt(m, k) attacker(m) attacker(k) attacker(encrypt(m, k)) 復号 decrypt encrypt(m, k), k m attacker(encrypt(m, k)) attacker(k) attacker(m) 10 10

ProVerif におけるホーン節について (2) ProVerif におけるホーン節の例 ( 例 ) プロトコル表現 参加者 B は pencrypt(sign(y, SK A ), PK B ) を受信したときに, encrypt(s, y) を返信する attacker(pencrypt(sign(y, SK A ), PK B )) attacker(encrypt(s, y)) 攻撃者は B に対して pencrypt(sign(y, SK A ), PK B ) を送信し, B の返信である encrypt(s, y) をインターセプトする 攻撃者視点 11

ProVerif による検証 ホーン節への自動変換 Free selection( 単一化 ) ProVerif Phase1:Saturation 後向き深さ優先探索 Phase2:Derivation Search 攻撃なし (true) 攻撃あり (false) 12

ProVerif での認証について 対応表明 通信のプロセス中で情報が生成された時を 事前 event, 確認した時を 事後 event 事後 event が出現した際に それに対応する事前 event が必ず存在しているか否かを検証 存在していない場合 なりすましが可能 存在している場合 認証 true 13

OTP 認証方式に求められる安全性 ある時点でサーバに保存されている情報が流出したとしても 攻撃者はユーザになりすませない Stolen-Verifier(SV)attack に対する耐性 SV attack: 攻撃者が ある時点でサーバが保存している情報 過去のセッションの通信データを入手しユーザになりすます攻撃 14

OTP 認証方式に求められる安全性 (2) 通信データが改ざんされたとしてもサーバが改ざんデータを受理しない Denial-of-Service (DoS) attack に対する耐性 DoS attack: 攻撃者が 過去のセッションの通信データを入手し ある時点の通信データを改ざんして誤った情報をサーバに受理させ 次のセッションにおいてユーザからの接続要求を拒否させる攻撃 ユーザ i 回目 i+1 回目 攻撃者改ざん 受理 拒否 サーバ 15

ProVerif による OTP 認証方式の形式化 ProVerif は,i 回目認証時にサーバ ( ユーザ ) が保持した値を i+1 回目認証時に利用するという概念が扱えない let processs(uid:id,x:sskey,h2sn1:bitstring)= in(c,(uid2':id,c12':bitstring,c22':bitstring)); let h1xuid2=hash((x,uid)) in let c12''=hash(xor(h1xuid2,h2sn1)) in let h2sn2''=xor(c12',c12'') in let h3sn2'=hash(h2sn2'') in let h1sn1'=xor(c22',h3sn2') in if hash(h1sn1')=h2sn1 then if h2sn2'' <> h2sn2 then out(c,xor(h2sn1,h3sn2')); ( 例 )ROSI プロトコルのサーバ処理 サーバの処理を逐次的に記述 i 回目認証時に保持した h2sn2'' = i+1 回目認証時の h2sn1 h2sn2'' の値を i+1 回目に渡せない 16

ProVerif による OTP 認証方式の形式化 (2) 対応方法 : サーバ ( ユーザ ) の処理を複数回分まとめて記述 ( 複数回分を 1 単位とする ) let processs(uid:id,x:sskey,h2sn1:bitstring)= in(c,(uid2':id,c12':bitstring,c22':bitstring)); let h1xuid2=hash((x,uid)) in let c12''=hash(xor(h1xuid2,h2sn1)) in let h2sn2''=xor(c12',c12'') in let h3sn2'=hash(h2sn2'') in let h1sn1'=xor(c22',h3sn2') in if hash(h1sn1')=h2sn1 then if h2sn2'' <> h2sn2 then out(c,xor(h2sn1,h3sn2')); in(c,(uid3':id,c13':bitstring,c23':bitstring)); let h1xuid3=hash((x,uid)) in let c13''=hash(xor(h1xuid3,h2sn2'')) in let h2sn3''=xor(c13',c13'') in let h3sn3'=hash(h2sn3'') in let h1sn2'=xor(c23',h3sn3') in if hash(h1sn2')=h2sn2'' then out(c,xor(h2sn2'', h2sn3'')). ( 例 )ROSI プロトコルのサーバ処理 (2 回分をまとめて記述 ver.) 17

ProVerif による OTP 認証方式の形式化 (3) SV attack の検証 i 回目認証時に SV attack を試みる場合, その直前 (i-1 回目認証終了時 ) にサーバに保存されている情報を故意に通信路に流出 この条件下で, 攻撃者がサーバに対して正規ユーザになりすますことができるかを検証 i 回目認証及び i+1 回目認証を続けてパスできるかを検証 DoS attack の検証 ProVerif における ( 通常の ) 認証の検証法を利用 i 回目認証時に Dos attack を試みる場合, 攻撃者が i 回目認証時の通信データを改ざんして誤った情報をサーバに受理させることができるかを検証 i 回目認証をパスできる Dos attack 成功 (i 回目認証はパスできるが i+1 回目認証はパスできない ) 18

ROSI プロトコル Chienらによって提案されたOTP 認証プロトコル [1] 辻らによりSV attackに対するぜい弱性の発見 [2] DoS attackに対して耐性を持つ 登録フェーズ, 認証フェーズが存在 相互認証 [1] H.Y.Chien and J.K.Jan, Robust and Simple Authentication Protocol, Computer Journal, vol.46, no.2, pp.193 201, 2003. [2] T. Tsuji, and A. Shimizu, One-Time Password Authentication Protocol aganist Theft Attacks, IEICE Trans. Commun., vol.e87-b, no.3, pp.523 529,2004. 19

ROSI プロトコル : 準備 ID : ユーザID P : ユーザパスワード x : サーバ秘密鍵 h : ハッシュ関数 i : セッション番号 N i : i 回目セッションの乱数 : 結合 : 排他的論理和 VR j i: h j ( P N i ), 例. VR 2 3 = h 2 ( P N 3 ) = h( h( P N 3 ) ) 20

ROSI プロトコル : 登録フェーズ ユーザ サーバ Inputs ID,P,N 1 ID,P,N 1 VR 2 1 = h( h( P N 1 ) ) を計算 (ID, x, VR 2 1 を保持 ) h( x ID ) P, VR 1 1=h(P N1) を計算 h( x ID ) P, VR 1 1 Stores h( x ID ) P, VR 1 1 Stores ID, x, VR 2 1 * 登録フェーズはセキュアな通信路を用いて最初に一回だけ行われる 21

ROSI プロトコル :i 回目認証フェーズ ユーザ サーバ Stored :h( x ID ) P, VR 1 i Inputs ID,P N i+1 を生成 VR 2 i,vr 2 i+1,vr 3 i+1 を計算 ID α i =h( h( x ID) VR 2 i ) VR 2 i+1 β i = VR 3 i+1 VR 1 i Stored : ID, x, VR 2 i VR 2 i VR 3 i+1 : 認証処理 VR 2 i VR 3 i+1 h( x ID ) を計算 VR 2 i+1 α i h( h( x ID ) VR 2 i ) VR 1 i β i h(vr 2 i+1 ) (α i,β i から VR 2 i+1,vr 1 i を取り出す ) VR 2? i = h(vr 1 i ) : 認証処理 Stored: VR 1 i VR 1 i+1 Stored: VR 2 i VR 2 i+1 22

ROSI プロトコルに対する辻らの攻撃法 ユーザ 攻撃者 サーバ サーバから ID, x, VR 2 i を盗む Stored :ID, x, VR 2 i ID α i =h( h( x ID ) VR 2 i ) VR 2 i+1 β i = VR 3 i+1 VR 1 i ID, α i, β i をインターセプト h( h( x ID) VR 2 i ) を計算 VR 2 i+1 α i h( h( x ID) VR 2 i ) VR 1 i β i h(vr 2 i+1 ) α i,β i から VR 2 i+1,vr 1 i を取り出す 23

ROSI プロトコルに対する辻らの攻撃法 (2) ユーザ 攻撃者 サーバ y (Atacker s key) を生成 N i+1 を生成 (VR 2 i+1 ) = h( h( y N i+1 ) ) (VR 3 i+1 ) = h( (VR 2 i+1 ) ) Stored : ID, x, VR 2 i ID α i =h( h( x ID) VR 2 i ) (VR 2 i+1 ) β i = (VR 3 i+1 ) VR 1 i VR 2 i = h(vr 1 i ) : 認証処理 VR 2 i VR 3 i+1 : 認証処理 VR 2 i VR 3 i+1 VR 3 i+1 (VR 3 i+1 ) VR 2 i (VR 3 i+1 ) Stored: VR 1 i VR 1 i+1 Stored: VR 2 i (VR 2 i+1 ) なりすましが可能で 以降サーバは攻撃者を正規ユーザとして認証し続ける 24

ProVerif によって導出された攻撃法について ProVerif による検証 既存の攻撃法とは異なる攻撃法 辻らによる攻撃法 サーバの処理に条件文を加える 25

ProVerif によって導出された攻撃法 攻撃者 サーバ サーバから ID, x, VR 2 i を盗む Stored : ID, x, VR 2 i ID α i =h( h( x ID) VR 2 i ) VR 2 i β i = VR 3 i VR 1 i h( x ID) を計算 同一の ID, α i, β i を送り続けることでなりすましが可能 VR 2 i α i h( h( x ID ) VR 2 i ) VR 1 i β i h(vr 2 i ) (α i,β i から VR 2 i, VR 1 i を取り出す ) VR 2? i = h(vr 1 i ) : 認証処理 VR 2 i VR 3 i+1 VR 3 i+1 VR 3 i VR 2 i VR 3 i Stored: VR 2 i VR 2 i 26

ProVerif による ROSI の形式的な検証 既存攻撃法とは異なる SV attack を検出 同一の認証用情報を送り続けることでなりすましが可能 既存攻撃法も検出可能 DoS Attack は不可能 ProVerif による検証結果と既知の研究結果が一致 27

SAS-X(2) プロトコル 辻らによって提案されたOTP 認証プロトコル [3] 鵜尾らによりDoS attackに対するぜい弱性の発見 [4] SV attackに対しては耐性を持つ 登録フェーズ, 認証フェーズが存在 一方向認証 [3] T. Tsuji, T. Nakahara, and A. Shimizu, A one time password authentication method, IEICE Technical Report, OIS2005-83, vol.105, no.529, pp.23 28, 2006. [4] 鵜尾健司, 白石善明, 森井昌克, Stolen Verifier attack に耐性のあるワンタイムパスワード方式の評価と提案, IPSJ Symposium Series,vol.2006,no.11, pp.543 548,2006. 28

SAS-X(2) プロトコル : 準備 ID : ユーザID P : ユーザパスワード h : ハッシュ関数 i : セッション番号 N i : i 回目セッションの乱数 : 結合 + : 算術加算 : 排他的論理和 E F (M): 共通鍵暗号方式の暗号化関数, F i を鍵としてMを暗号化 i D F (C): 共通鍵暗号方式の復号関数, F i を鍵としてCを復号 i 29

SAS-X(2) プロトコル : 登録フェーズ ユーザ サーバ Inputs ID,P N 1, N 2, K を生成 A 1 = h( ID P N 1 ) F 1 = h( ID A 1 ) A 2 = h( ID P N 2 ) F 2 = h( ID A 2 ) γ 1 = E F ( A 1 ) を計算 2 ID, K, F 1, γ 1 Stores A 1, F 1, A 2, F 2, K, N 2 Stores ID, K, F 1, γ 1 * 登録フェーズはセキュアな通信路を用いて最初に一回だけ行われる 30

SAS-X(2) プロトコル :i 回目認証フェーズ ユーザ サーバ Stored: A i, F i, A i+1, F i+1, K, N i+1 Input : ID, P N i+2 を生成 A i+2 = h( ID P N i+2 ) F i+2 = h( ID A i+2 ) α i = F i+1 F i β i = ( F i+1 + K ) A i γ i+1 = E F ( A i+1 ) を計算 i+2 ID, α i, β i, γ i+1 Stored: ID, K, F i, γ i F i+1 α i F i A i β i ( F i+1 + K ) を計算? F i = h( ID A i )? A i = D F ( γ i ) により認証処理 i+1 Store: A i A i+1, F i F i+1, N i+1 N i+2, A i+1 A i+2, F i+1 F i+2 Store: F i F i+1, γ i γ i+1 31

SAS-X(2) プロトコルに対する鵜尾らの攻撃法 ユーザ 攻撃者 サーバ Stored: A i, F i, A i+1, F i+1, K, N i+1 Input : ID, P N i+2 を生成 A i+2 = h( ID P N i+2 ) F i+2 = h( ID A i+2 ) α i = F i+1 F i β i = ( F i+1 + K ) A i γ i+1 = E F i+2 ( A i+1 ) を計算 送信された γ i+1 を乱数 γ i+1 に改ざん ID, α i, β i, γ i+1 Stored: ID, K, F i, γ i F i+1 α i F i A i β i ( F i+1 + K ) を計算? F i = h( ID A i )? A i = D F ( γ i ) により認証処理 i+1 Store: A i A i+1, F i F i+1, N i+1 N i+2, A i+1 A i+2, F i+1 F i+2 Store: F i F i+1, γ i γ i+1 32

ProVerif による SAS-X(2) の形式的な検証 ProVerif による検証 鵜尾らによる攻撃法と同一の DoS attack が検出 SV Attack は不可能 ProVerif による検証結果と既知の研究結果が一致 33

まとめと今後の課題 ProVerif による SAS-X(2) と ROSI の安全性検証 検証結果と既知の耐性評価が一致 プロトコル SV attack 耐性 DoS attack 耐性 SAS-X(2) ROSI 表 1 各プロトコルの既知の攻撃耐性評価 プロトコル SV attack 耐性 DoS attack 耐性 SAS-X(2) ROSI 表 2 ProVerif により導出された攻撃耐性評価 ProVerif は DoS attack SV attack を検出可能 OTP 認証方式に対して有用 今後の課題 : さまざまな OTP 認証プロトコルの検証 34