適用於多重伺服器環境之點對點可鑑別金鑰交換協定
許建隆1、畢仕誠2、呂崇富3*
1,2長庚大學 資訊管理學系、3致理科技大學 資訊管理學系
1[email protected]、2[email protected]、3[email protected]
摘要
隨著網路服務的快速發展及多元化,使用者可以透過網際網路向多重不同的網路應 用服務提供者取得資源及服務。為了確保經授權的使用者才能存取資源及服務,網路應 用服務提供者通常會提供使用者身分鑑別協定,甚至網路通訊安全保護。對於使用者而 言,其通常透過使用者通行碼來進行身分鑑別動作。然而,當使用者面對多重伺服器時,
雖然仍可透過各別原有的使用者鑑別協定來達到所宣稱的安全性,但卻可能引發潛在的 安全性及通行碼管理的問題。我們提出一個適用於多重伺服器環境下,結合智慧卡與通 行碼的雙因子身分鑑別協定,除了可以滿足鑑別金鑰交換協定特性(人性化需求、雙因 子身份鑑別、雙向鑑別、低計算與通訊成本、建立交談金鑰、前推安全性、防止智慧卡 遺失遭冒用、可動態修改通行碼、抵擋所有現存的攻擊法攻擊)外,並允許使用者使用 單一且具可記憶之通行碼註冊並登錄不同伺服器,以達到跨網域(inter-domain)的四方 通訊。
關鍵詞:多重伺服器、通行碼、雙因子鑑別、雙向鑑別、金鑰交換協定
End-to-End Authenticated Key Exchange Protocols in Multi-Server Environments
Chien-Lung Hsu1, Shih-Cheng Pi,2, Chung-Fu Lu3*
1,2 Department of Information Management, Chang Gung University
3Department of Information Management, Chihlee University of Technology
1[email protected]、2[email protected]、3[email protected]
Abstract
With rapid development of varied internet services, users can access resources and services from different internet service providers via internet. Such internet service providers
* 通訊作者 (Corresponding author.)
11
generally provide user authentication protocols to ensure only the authorized users can access resources and services, and further provide secure communication protocols. Hence, users generally use their passwords to login servers for authenticating their legitimacy. However, such solutions might face password management problems and some potential attacks. For multi-server environments, we propose a password-based authentication protocol using smart cards for the cross domains. The proposed protocol not only solve password management problems, but also withstand some potential passive and active attacks, and achieve three-party and four party end-to-end user authentication and key agreement for the same domain and the cross domains without the assistance of a trusted registration center.
Keywords:Multi-server、Password、Two-factor authentication、Mutual authentication、
Key exchange protocol
壹、前言
綜觀近年來電信業者的蓬勃發展,從原本的有線電話演進到無線電話,進而發展到 行動通訊;從原本單一電信業者的網內聯繫,進展到跨越不同的電信公司的網外通話,
僅僅單憑一組門號,不需其他繁雜的手續即可與所有電信公司的使用者達成通話,這種 簡單跨越其他電信公司的作法,在現今發展快速的網際網路上卻未能如預期中達到相同 的功能。截至目前為止,網際網路上大部份的ISP(Internet Service Provider)僅提供使 用者個別申請使用,例如:YAHOO、Google等知名ISP都有提供相同類以的服務功能,
讓使用者依據自己的需求及喜好申請,但只能使用個別申請的帳號、密碼登入,才能與 相同伺服器中的其他使用者溝通,如果使用者需要跨越使用其他伺服器時,就必須重新 申請其他伺服器的帳號、密碼,才能登入使用,而無法像行動通訊一樣,僅憑一組帳號、
密碼即可登入不同的伺服器,當使用者申請愈多,所必須記憶的帳號、密碼將愈多,造 成使用者在使用上的困擾及不便。
因此,要安全的在網路上傳遞各種訊息,就必須運用諸多適當的保護機制來達成,
而訊息傳遞時常見的安全保護機制包括加密金鑰交換協定(encryption key exchange protocol)、KDC金鑰分配協定(key distribution center key distribution protocol)、通行碼 驗證金鑰交換協定(password-based authentication key agreement)、多重伺服器的通行碼 鑑別機制等不同方法。而現今的三方金鑰交換協定都必須透過單一具信任的遠端伺服器 來驗證,如此就出現下列幾個問題:
假設使用者要登入多個伺服器時,就必須記住多個通行碼,對使用者而言是相當不 方便的。
僅能透過單一且具信任性的遠端伺服器來做驗證,無法進行不同伺服器的四方通訊。
另在具驗證者(verifier)的金鑰交換協定中,雖然已提出適用於多重伺服器環境的機制,
但是僅適用於單一使用者,並無法進行三方或四方通訊。
為有效解決上述所面臨的問題,我們設計出一個可適用於多重伺服器環境之點對點 可鑑別金鑰交換協定,在多重伺服器環境下,並結合智慧卡與單一且具可記憶之通行碼 的雙因子身分鑑別技術,以達到同網域(intra-domain)及跨網域(inter-domain)的三方 及四方驗證之目的。我們提出的方法除了滿足一般鑑別金鑰交換協定之特性外(抵擋現 存攻擊法攻擊、人性化需求、雙因子身份鑑別、雙向鑑別、低計算與通訊成本、建立交 談金鑰、前推安全性、防止重送攻擊、防止智慧卡遺失遭冒用、可動態修改通行碼、提 供明確金鑰鑑別等),亦可允許使用者使用單一且具可記憶之通行碼註冊並登錄不同伺服 器,以達成同網域(intra-domain)的三方通訊及跨網域(inter-domain)的四方通訊,當 其中一台伺服器遭受攻擊、破解時,並不會因為被攻擊者得知其相關參數資訊,而影響 其他伺服器或使用者的正常運作,大幅降低整體的損失。我們的方法除了能抵擋目前現 有的相關攻擊外,並可滿足下列的特性:
1. 多重伺服器環境驗證,不用透過RC向伺服器註冊。
2. 遠端伺服器不用儲存鑑別表(no password table)。 3. 建立雙方的交談金鑰,以達到私密通訊的目的。
4. 雙向鑑別機制,可分別確認雙方身分。
5. 雙因子鑑別技術,可以選擇簡單、容易記憶的通行碼。
6. 通行碼可依照使用者需求任意選擇或變更。
7. 使用者可以在遠端伺服器上動態新增註冊或註銷服務。
8. 允許使用者點對點傳送訊息。
貳、文獻探討
一、加密金鑰交換協定(encryption key exchange protocol)
為維護訊息在傳遞過程中的安全性與私密性,最常見的方式就是利用金鑰交換技術 使欲通訊的使用者雙方產生共同的金鑰,或是 運用公開金鑰密碼系統(public key cryptosystem)來解決訊息傳遞時的金鑰交換問題。
Diffie-Hellman [4] 於1976年首先提出的金鑰交換協定(key exchange protocol),其 是運用模指數的運算來建立雙方相同的交談金鑰(session key)。但如果欲通訊的使 用者雙方沒有針對彼此所交換的訊息進行鑑別時,攻擊者可以很容易從中間假冒雙 方 的 身 分 , 再 分 別 與 雙 方 建 立 交 談 金 鑰 , 此 攻 擊 法 稱 為 中 間 者 攻 擊 法
(man-in-the-middle attack)。
13
另一種方式是先運用接收者的公鑰將金鑰加密成為密文後再傳送給接收者,然後接 收者運用自己的私鑰解密所接收的密文後,即可獲得雙方可以共用的秘密金鑰。但 是 如 果 接 收 者 無 法 對 所 接 收 的 密 文 進 行 鑑 別 時 , 則 很 容 易 遭 受 到 假 冒 攻 擊
(impersonation attack)。
二、 KDC金鑰分配協定(key distribution center key distribution protocol)
雖然金鑰交換技術可以讓任意兩方建立秘密的通訊,但如果有攻擊者假冒欲通訊的 使用者雙方身分時,任何一方的使用者很難驗證判斷,而解決此問題的方式可以在使用 者雙方進行訊息傳遞時,先經由一個公正可信任的第三方實施驗證,該第三方一般稱為 憑證中心CA(certificate authority)或金鑰配發中心KDC(key distribution center)。Popek
與Kline[16]於1979提出KDC金鑰分配協定的觀念,就是讓欲通訊的使用者雙方能夠透
過金鑰中心的分配協定,產生雙方可秘密通訊的交談金鑰,但前提必須是雙方必須經由 金鑰中心註冊認證,才能確保訊息傳遞時的安全。當欲通訊的使用者雙方進行秘密通訊 時,傳送者必須先向金鑰中心取得接收者的相關資訊,在過程中是以秘密通訊方式進行,
以免遭受其他攻擊者攔截或阻斷。要達成此一目的,欲通訊的使用者雙方在與金鑰中心 完成請求與認證後,金鑰中心就會將接收者的相關資訊提供給傳送者,而通訊雙方即可 分享短暫性的私密金鑰(secret key),傳送者就可以與接收者進行通訊。假設欲通訊的使 用者任何一方遺失相關資訊或金鑰中心伺服器遭攻擊者破解時,則將成為攻擊者入侵的 最佳時機。
三、通行碼驗證金鑰交換協定(password-based authentication key agreement)
如果以三方通訊而言,要達成通訊傳遞時的安全並非不可能,首先必須保證欲通訊 的使用者雙方與金鑰中心伺服器進行通訊時的安全,其次,與金鑰伺服器的通訊內容必 須愈簡單愈好,因為在真實的網路環境中,雙方的通訊次數或通訊量愈多,愈容易成為 攻擊者覬覦鎖定的對象。因此,Bellovin 與 Merritt[1]於 1992 年提出以通行碼為基底
(password-based)的概念,稱為通行碼驗證金鑰交換協定(password-based authentication
key agreement),就是透過欲通訊的使用者雙方以簡易的共享密碼,進行金鑰交換及驗證
的程序,簡化傳遞時的通訊量及金鑰儲存問題。而此概念真正延伸運用到三方通訊則是
由Steiner等人[21]於1995年提出植基於通行碼基礎的三方通訊金鑰共同協定(three-party
protocol for password-based key agreement),但Ding與Horster [5]即於1995年指出上述 協定容易受到不可探測的線上密碼猜測攻擊(undetectable on-line password guessing attack),雖然有諸多專家學者陸續針對此協定會面臨到的各項攻擊問題提出可能的改善 方案 [12][14],但是仍以Sun等人[17]於2003年提出以通行碼為基礎的三方通訊金鑰交 換方法最具代表性,他們運用不同的網路架構,提出讓欲通訊的使用者雙方使用金鑰伺
服器的公鑰加密訊息,然後金鑰伺服器分別計算雙方不同的短暫金鑰,讓雙方分別計算 出同一把交談金鑰,並利用此金鑰進行秘密通訊,但是Nam等人[15] 於2004年指出此 方法仍然容易受到中間攻擊法攻擊,於是Lee等人[11]於2005年時提出不使用金鑰伺服 器的公鑰加密方法,此方法能增強原有通行碼的基礎,改用驗證值基礎(verifier-based)
的三方通訊金鑰交換協定。
通行碼驗證金鑰交換協定的主要作用是為了讓欲通訊的使用者雙方能擁有相同的交 談金鑰,然後讓雙方達到身分驗證(mutual authentication)的目的,而進行通訊的對象 通常可以分為兩類:
1. 使用者與伺服器:使用者向伺服器註冊時必須提供一組自選的通行碼,而伺服器則 必須儲存每位使用者註冊的通行碼,然後,使用者與伺服器運用通行碼驗證金鑰交 換協定進行交談金鑰的分配與身分驗證。由於在此階段參與通行碼驗證金鑰交換協 定的對象僅有使用者與伺服器兩方,因此,稱為二方通訊(two-party)通行碼驗證 金鑰交換協定。
2. 使用者與使用者:當使用者彼此之間進行通訊時,都必須分享一組秘密的通行碼,
如果對象數量過多時,則會讓使用者記憶過多的通行碼,因此,在此模式中,每位 使用者只和同一個被信任的伺服器秘密分享通行碼,當使用者雙方需要進行通訊 時,則透過此一伺服器的通行碼驗證交換協定,來進行雙方的交談金鑰分配及身分 驗證。由於在此階段參與通行碼驗證金鑰交換協定的對象有兩個使用者與一個伺服 器,因此,稱為三方通訊(three-party)通行碼驗證金鑰交換協定。
通行碼鑑別機制中,當使用者(user)向遠端任一伺服器(server)註冊後,即可成 為此伺服器的合法用戶,並依據使用者申請的需求,給予可識別使用者身分的識別碼
(identifier,簡稱ID)以及通行碼(password,簡稱PW)。遠端伺服器的鑑別表(verification table)中同時也儲存相同資訊,所以,當合法用戶想要向已註冊的遠端伺服器取用資源 或服務時,必須先輸入給予的 ID和PW,透過網路將ID和PW傳至遠端伺服器,伺服 器先確認傳送的ID是否已存在於鑑別表內,此一過程稱為身分識別(identification);當 ID確認後,會將傳送的 PW比對鑑別表內ID所對應的PW是否相同,此一過程稱為身 分鑑別(authentication)。看似簡單的架構卻有許多安全上的問題存在,例如:透過網路
傳輸ID和PW,如果遭受攻擊者竊聽,則可以假冒合法用戶取得伺服器的資源或服務。
[30]
Lamport[10]於 1981 年提出以單向雜湊函數為基礎的身分鑑別機制來解決上述問
題,他將使用者的PW先利用一次雜湊函數運算後,再儲存於鑑別表中,以避免PW 被 攻擊者得知。Shimizu[18]於1990年提出動態通行碼(dynamic password/one-time password)
概念,他將通行碼分為二個部份,一個提供使用者記憶的通行碼稱作使用者通行碼,另 一個則是儲存在鑑別表內的通行碼稱為鑑別通行碼,使用者可運用使用者通行碼產生鑑 別通行碼後登入遠端伺服器。但是上述的這些機制均使用弱通行碼(weak password)[20]
[25] [26][27],無法抵擋離線通行碼的猜測攻擊(off-line password guessing attack)。因此,
15
Sandirigama–Shimizu–Noda [19]於2000年提出使用強通行碼(strong password)的身分鑑 別機制後,陸續有許多專家學者指出此類機制仍有安全上的漏洞[2][9][13][23][24],並進 而提出相關改進機制。
而上述的機制仍然需要在伺服器上建立及維護鑑別表,依然會有安全上的威脅,因 此,Sun[22]於2000年提出無鑑別表的通行碼鑑別機制,他是將使用者ID與遠端伺服器 的秘密參數當成身分鑑別的方式,但此機制的缺點是不讓使用者有選擇通行碼的權利。
而以人性化的角度,機制本身應符合使用者個人的需求任意選擇或變更通行碼,所以,
文獻[6]將針對此方向做深入的研究,並提出改進機制。
另外,在國內研究方面,2006年張國義曾提出可驗證的三方通訊金鑰交換協定[28],
使用者雙方分別預先與伺服器建立秘密分享的通行碼,使用者雙方不需儲存伺服器的相 關資訊,然後再利用公鑰加密的方法,將使用者的ID與計算後的通行碼加密成為秘密資 訊。而當使用者雙方向伺服器請求通訊時,伺服器可利用本身的儲存資料,進行驗證並 計算雙方需交換的訊息,以扼制其他惡意的各種攻擊。但此方法不適用於多重伺服器環 境,使用者也無法動態加入或註銷伺服器,且伺服器可以得知通訊雙方的交談金鑰。
四、多重伺服器的通行碼鑑別機制
以往的通行碼鑑別機制通常只運用於單一的遠端伺服器,但近年來,網路發展愈來 愈迅速普及,單一伺服器已無法滿足使用者的需求,因此,使用者紛紛向其他伺服器進 行註冊,以取得所需要的服務與功能,然而,當註冊的伺服器愈多,使用者就會必須去 記憶愈多的ID與PW來登錄使用不同的伺服器,相對的,就會產生使用者的不方便性。
假設使用者以相同的通行碼去註冊不同的伺服器時,則會面臨伺服器內部的不法管理者 利用使用者的通行碼,假冒使用者身分去登錄其他伺服器。
為考量使用者的便利性及通行碼的安全性,陸續有專家學者提出適用於多重伺服器 架構的研究機制[3][7][8],探討多重伺服器的使用者身份鑑別機制,讓使用者能運用單一 通行碼來登錄不同的伺服器,例如 Juang[8]運用對稱式加解密技術來保護認證資訊,
Chang與Kuo[3]則是利用中國的餘數定理來鑑別資訊及保護存取控制權限,還有Hwang
與Sheng[7]也運用對稱式加解密技術來保護鑑別資訊並改進Juang [8]所提出的機制。而
以上的鑑別機制仍然存在著需要儲存鑑別碼、無法動態加入或退出伺服器、鑑別機制必 須經過註冊中心完成及系統執行效能較差等問題,這些都是目前多重伺服器架構中身分 鑑別機制所會遇到的困難。
但是,通行碼鑑別機制還是有其他多樣化的設計方式,除了探討遠端伺服器可以鑑 別合法使用者的身分,同時也必須讓使用者能鑑別合法的遠端伺服器,確實達到雙向鑑 別的目的。因此,除了身分鑑別可以確保資料傳輸時的機密性與完整性,還必須同時產 生一把交談金鑰來驗證所收到的訊息是否確實為對方所傳送,以防止他人偽冒,上述這 種機制稱為「通行碼鑑別與金鑰交換協定」[30]。
另外,在2008年陳建仁提出適用於多重伺服器環境之可鑑別金鑰交換協定[29],目 的在於確保使用者與數個遠端伺服器能夠相互鑑別彼此身分的合法性,同時建立共享金 鑰,作為確保後續的秘密通訊。其方法是使用者可運用單一通行碼登錄數個伺服器,假 設其中一台伺服器遭到破解、駭客入侵或監守自盜等情事,依然不會危害使用者登錄其 他伺服器的安全性,但此方法伺服器仍可以得知通訊雙方的交談金鑰。
參、一個適用於多重伺服器環境之點對點可鑑別金鑰交換協定
為了在多重伺服器環境下進行多方秘密通訊時,可以有效解決原本註冊中心(RC)
在多重伺服器架構中讓使用者和遠端伺服器面臨安全威脅的問題,並使遠端伺服器不須 儲存鑑別表以減少管理風險,而使用者也可隨時動態加入伺服器得到所提供服務,並能 隨時修改密碼,也能讓使用者間建立交談金鑰以達到三方或四方的私密通訊目的,我們 提出一個適用於多重伺服器環境下之點對點可鑑別金鑰交換協定,不但可以結合多方通 訊與多重伺服器的優點,亦能解決兩者所面臨的問題,以提供使用者安全且便利的網路 環境。
在系統初始階段,先任選兩台經 CA合法驗證的遠端伺服器,使用者雙方各自領取 智慧卡後,個別輸入身分碼與通行碼並分別登入,然後被登入的伺服器會個別產生系統
參數p, q和g。在註冊階段時,使用者雙方和不同的兩台遠端伺服器建立彼此共享的秘
密,並將這個秘密加以保護後分別儲存在使用者雙方的隨身碟中。在登入暨金鑰交換階 段,使用者雙方首先透過各自隨身碟上的秘密值,啟動智慧卡,並輸入本身的通行碼,
智慧卡透過加密金鑰交換技術計算建立使用者雙方與兩台遠端伺服器彼此的共享金 鑰,,兩台遠端伺服器個別確認使用者雙方身份後,利用電子商務認證授權機構(certificate
authority,簡稱CA)所提供的簽章對共享金鑰加密後,兩台遠端伺服器互相傳送,經驗證
正確後,兩台遠端伺服器利用傳送的共享金鑰再重新計算共享金鑰後,傳送給個別的使 用者計算屬於使用者雙方各自的私有金鑰。最後,如果使用者雙方擁有相同的私有金鑰 時,就可以建立僅屬於雙方的私有通道,以達到四方通訊。有關我們提出協定中所使用 的符號意義如表一所示。
一、系統初始階段
在系統初始階段,使用者親自到智慧卡的發卡中心領取智慧卡後,並於現場立即輸 入身分碼與通行碼。在此一階段,預設兩台遠端伺服器依據數位簽章演算法DSA (Digital Signature Algorithm,簡稱DSA)產生值p、q和g,其參數的定義如下:
p:一個很大的質數。
q:一個很大的質數,q|(p1)。
g:一個秩(order)為q的生成數(generator)g,即g滿足(gq 1modp)且g1。
17
我們設定兩台遠端伺服器均向電子商務認證授權機構(certificate authority,簡稱CA)
註冊,並取得各自的憑證、簽章及公私鑰對,且兩台遠端伺服器不可為同一台(mn),
表一:符號意義表
符號 說明
m
Ui
ID , 使用者Ui登入遠端伺服器Sm的ID
n
Uj
ID , 使用者Uj登入遠端伺服器Sn的ID
Sm
ID 遠端伺服器Sm的ID
Sn
ID 遠端伺服器Sn的ID
m
Ui
PW , 使用者Ui登入遠端伺服器Sm通行碼
n
Uj
PW , 使用者Uj登入遠端伺服器Sn通行碼
m
ri, 智慧卡對使用者Ui登入遠端伺服器Sm產生的隨機亂數
n
rj, 智慧卡對使用者Uj登入遠端伺服器Sn產生的隨機亂數 xm 遠端伺服器Sm的秘密值
xn 遠端伺服器Sn的秘密值
m
ai, 使用者Ui,m智慧卡產生的隨機亂數
n
aj, 使用者Uj,n智慧卡產生的隨機亂數 bm 遠端伺服器Sm產生的隨機亂數 bn 遠端伺服器Sn產生的隨機亂數
m
Ri, 使用者Ui,m的加解密金鑰
n
Rj, 使用者Uj,n的加解密金鑰 )
,m(
Ri
E 使用者Ui,m運用加解密金鑰Ri,m的對稱式加密演算法 )
,m(
Ri
D 使用者Ui,m運用加解密金鑰Ri,m的對稱式解密演算法 )
,n(
Rj
E 使用者Uj,n運用加解密金鑰Rj,n的對稱式加密演算法 )
,n(
Rj
D 使用者Uj,n運用加解密金鑰Rj,n的對稱式解密演算法
m
Ti, 使用者Ui登入遠端伺服器Sm註冊時的時間戳記
n
Tj, 使用者Uj登入遠端伺服器Sn註冊時的時間戳記
互斥或運算元 )
(
H 單向雜湊函數
Certm 遠端伺服器Sm取得的CA憑證 Certn 遠端伺服器Sn取得的CA憑證
Sigm 遠端伺服器Sm取得的CA簽章 Sign 遠端伺服器Sn取得的CA簽章
g q
p, , 數位簽章演算法DSA所需之參數
其參數的定義如下:
i:為Ui所註冊的server集合
j:為Ui所註冊的server集合
i:其中mi
n
Uj, :其中nj
Sm
Cert 、
Sm
Sig :為CA發送給遠端伺服器Sm的憑證及簽章
Sn
Cert 、
Sn
Sig :為CA發送給遠端伺服器Sn的憑證及簽章
二、註冊階段
在註冊階段時,使用者雙方與兩台遠端伺服器共同執行下列步驟,讓使用者雙方至 兩台遠端伺服器完成註冊程序。
步驟1:使用者Ui,m將註冊資訊傳送給遠端的伺服器Sm,使用者Ui,m執行下列步驟:
步驟1-1:輸入身分碼
m
Ui
ID , 和通行碼
m
Ui
PW , 。 步驟1-2:智慧卡產生隨機亂數ri,m。
步驟1-3:智慧卡計算 , ( ) ( , || )
,m m
i im S
U m
i H PW H r ID
A 。
步驟1-4:將身分碼
m
Ui
ID , 和計算出的值Ai,m傳給遠端伺服器Sm。
步驟2:使用者Uj,n將註冊資訊傳送給遠端的伺服器Sn,使用者Uj,n執行下列步驟:
步驟2-1:輸入身分碼
n
Uj
ID , 和通行碼
n
Uj
PW , 。 步驟2-2:智慧卡產生隨機亂數rj,n。
步驟2-3:智慧卡計算 , ( ) ( , || )
,n n
j jn S
U n
j H PW H r ID
A 。
步驟2-4:將身分碼
n
Uj
ID , 和計算出的值Aj,n傳給遠端伺服器Sn。
步驟3:遠端伺服器Sm計算與使用者Ui,m共同的秘密,遠端伺服器Sm執行下列步驟:
步驟3-1:計算 ( || )
,i U, m
m H ID x
u im 。 步驟3-2:計算Bm,i um,iAi,k。
步驟3-3:將計算出的值Bm,i回傳給使用者Ui,m。
步驟4:遠端伺服器Sn計算與使用者Uj,n共同的秘密,遠端伺服器Sn執行下列步驟:
步驟4-1:計算 ( || )
,j U, n
n H ID x
u jn 。 步驟4-2:計算Bn,j un,jAi,m。
}
mn19
步驟4-3:將計算出的值Bn,j回傳給使用者Uj,n。
步驟5:使用者Ui,m及Uj,n在收到遠端伺服器Sm和Sn分別傳送的值Bm,i和Bn,j後,將值分 別儲存在個別的隨身碟內。
三、登錄暨金鑰交換階段
登錄暨金鑰交換階段中,使用者雙方與二台遠端伺服器共同執行下列步驟,讓使用 者雙方可以分別向各自的遠端伺服器登錄取得服務。
步驟1:使用者Ui,m登錄到遠端的伺服器Sm,使用者、智慧卡和遠端伺服器會共同執行
下列步驟:
步驟1-1:使用者Ui,m註冊完畢後,當插入智慧卡,輸入通行
m
Ui
PW , 時,智慧卡中所儲 存的亂數ri,m與伺服器Sm身分碼
Sm
ID 及使用者Ui,m輸入通行碼
m
Ui
PW , 進行 運算得到值Ai,m。
步驟1-2:使用者Ui,m插入隨身碟,會將隨身碟內的秘密值Bm,i和智慧卡中所計算出的
值Ai,k進行互斥或運算得到共享的秘密值ui,m。 步驟1-3:使用者Ui,m的智慧卡計算Vi,mgui,m modp。 步驟1-4:使用者Ui,m的智慧卡選取隨機亂數ai,mR Z*p。 步驟1-5:使用者Ui,m的智慧卡計算Ri,mgai,m modp。 步驟1-6:使用者Ui,m的智慧卡計算
m
Ui
m i m
i R ID
M, , || , 。 步驟1-7:使用者Ui,m的智慧卡計算MACi,m H(Mi,m||Ti,m)。 步驟1-8:使用者Ui,m的智慧卡計算Xi,m (Ri,m||MACi,m)Vi,m。 步驟1-9:使用者Ui,m將Xi,m、
m
Ui
ID , 和Ti,m傳送給遠端的伺服器Sm。
步驟2:使用者Uj,n登錄到遠端的伺服器Sn,使用者、智慧卡和遠端伺服器會共同執行
下列步驟:
步驟2-1:使用者Uj,n註冊完畢後,當插入智慧卡,輸入通行
n
Uj
PW , 時,智慧卡中所儲 存的亂數rj,n與伺服器Sn身分碼
Sn
ID 及使用者Uj,n輸入通行碼
n
Uj
PW , 進行運 算得到值Aj,n。
步驟2-2:使用者Uj,n插入隨身碟,會將隨身碟內的秘密值Bn,j和智慧卡中所計算出的
值Aj,n進行互斥或運算得到共享的秘密值uj,n。 步驟2-3:使用者Uj,n的智慧卡計算Vj,n guj,nmodp。 步驟2-4:使用者Uj,n的智慧卡選取隨機亂數aj,nR Z*p。
步驟2-5:使用者Uj,n的智慧卡計算Rj,n gaj,nmodp。 步驟2-6:使用者Uj,n的智慧卡計算
n
Uj
n j n
j R ID
M , , || , 。 步驟2-7:使用者Uj,n的智慧卡計算MACj,n H(Mj,n ||Tj,n)。 步驟2-8:使用者Uj,n的智慧卡計算Xj,n (Rj,n||MACj,n)Vj,n。 步驟2-9:使用者Uj,n將Xj,n、
n
Uj
ID , 和Tj,n傳送給遠端的伺服器Sn
步驟3:遠端伺服器Sm鑑別使用者Ui,m身分的合法性,此時遠端伺服器Sm會執行下列步
驟:
步驟3-1:先利用um,i計算Vm,i gum,i mod p。
步驟3-2:利用Vm,i將傳送的Xi,m做互斥或運算後得到Ri,m||MACi,m Xi,mVm,i。 步驟3-3:將Ri,m擷取出來與使用者Ui,m所傳送過來的
m
Ui
ID , 計算
m
Ui
m i i
m R ID
M , , || , 。 步驟3-4:將Ri,m擷取出來與Mm,i計算MACm,i H(Mm,i||Ti,m)。
步驟3-5:比對計算值MACm,i和所接收擷取出來的值MACi,m是否相等,若相等則可以
確認使用者Ui,m身分的合法性。
步驟4:遠端伺服器Sn鑑別使用者Uj,n身分的合法性,此時遠端伺服器Sn會執行下列步
驟:
步驟4-1:先利用un,j計算Vn,j gun,j modp。
步驟4-2:利用Vn,j將傳送的Xj,n做互斥或運算後得到Rj,n ||MACj,n Xj,nVn,j。 步驟4-3:將Rj,n擷取出來與使用者Uj,n所傳送過來的
n
Uj
ID , 計算
n
Uj
n j j
n R ID
M , , || , 。 步驟4-4:將Rj,n擷取出來與Mn,j計算MACn,j H(Mn,j||Tj,n)。
步驟4-5:比對計算值MACn,j和所接收擷取出來的值MACj,n是否相等,若相等則可以
確認使用者Uj,n身分的合法性。
步驟5:遠端伺服器Sm確認使用者Ui,m身分的合法性後,會產生對使用者Ui,m的共享金
鑰,此時遠端伺服器Sm會執行下列步驟:
步驟5-1:選取隨機亂數bm,iR Z*p。 步驟5-2:計算Vm,i gbm,i modp。
步驟5-3:對使用者Ui,m計算共享金鑰Km,i (Ri,m)bm,i (gai,m modp)bm,i gai,mbm,i modp 步驟5-4:利用CA給遠端伺服器Sm的簽章計算 m SigS (Km,i)
m
步驟5-5:將m和
Sm
Cert 傳送給遠端伺服器Sn進行驗證。
步驟6:遠端伺服器Sn確認使用者Uj,n身分的合法性後,會產生對使用者Uj,n的共享金
鑰,此時遠端伺服器Sn會執行下列步驟 步驟6-1:選取隨機亂數bn,jR Z*p。
步驟6-2:計算Vn,j gbn,j modp。
21
步驟6-3:對使用者Uj,n計算共享金鑰Kn,j (Rj,n)bn,j (gaj,nmodp)bn,j gaj,nbn,jmodp 步驟6-4:利用CA給遠端伺服器Sn的簽章計算 n SigS (Kn,j)
n
步驟6-5:將n和
Sn
Cert 傳送給遠端伺服器Sm進行驗證。
步驟7:遠端伺服器Sm先驗證遠端伺服器Sn所傳送的n和
Sn
Cert ,確認遠端伺服器Sn身 分後,利用所傳送的值計算共享金鑰,此時遠端伺服器Sm會執行下列步驟:
步驟7-1:遠端伺服器Sm利用CA的公開金鑰驗證遠端伺服器Sn所傳送的n和
Sn
Cert ,以確認遠端伺服器Sn的身分。
步驟7-2:利用遠端伺服器Sn傳送的值對使用者Ui,m計算公開金鑰
p g
p g
K
Ym,i ( n,j)bm,i ( aj,nbn,jmod )bm,i aj,nbm,ibn,j mod
步驟7-3:對使用者Ui,m計算: ( || || || )
, ,
,
,i mi mi Uim Sm
m H K Y ID ID
步驟7-4:對使用者Ui,m計算: , ( ,, ,, ,)
, mi mi mi
R i
m E V Y
m
i
步驟7-5:將值m,i傳送給使用者Ui,m。
步驟8:遠端伺服器Sn先驗證遠端伺服器Sm所傳送的m和
Sm
Cert ,確認遠端伺服器Sm身 分後,利用所傳送的值計算共享金鑰,此時遠端伺服器Sn會執行下列步驟:
步驟8-1:遠端伺服器Sn利用CA的公開金鑰驗證遠端伺服器Sm所傳送的m和
Sm
Cert ,以確認遠端伺服器Sm的身分。
步驟8-2:利用遠端伺服器Sm傳送的值對使用者Uj,n計算公開金鑰:
p g
p g
K
Yn,j ( m,i)bn,j ( ai,mbm,i mod )bn,j ai,mbm,ibn,jmod
步驟8-3:對使用者Uj,n計算: ( || || || )
, ,
,
,j n j nj Ujn Sn
n H K Y ID ID
步驟8-4:對使用者Uj,n計算: , ( , , , , , )
, nj nj nj
R j
n E V Y
n
j
步驟8-5:將值n,j傳送給使用者Uj,n。
步驟9:使用者Ui,m鑑別遠端伺服器Sm的身分並驗證彼此的共享金鑰,此時智慧卡會執
行下列步驟:
步驟9-1:使用者Ui,m的智慧卡在收到遠端伺服器Sm回傳的值m,i後,以Ri,m解密得到 值(Vm,i,Ym,i,m,i)。
步驟9-2:使用者Ui,m的智慧卡計算與遠端伺服器Sm的共享金鑰
p g
p g
V
Ki,m ( m,i)ai,m ( bm,i mod )ai,m ai,mbm,i mod 。
步驟9-3:使用者Ui,k的智慧卡計算 ( || || || )
, ,
,
,m im mi Uim Sm
i H K Y ID ID
步驟9-4:使用者Ui,m的智慧卡驗證計算值i,m和所接收擷取出來的值m,i是否相等,
若相等則可以確認使用者Ui,m和遠端伺服器Sm擁有相同的共享金鑰。