仲裁式數位簽章

Download Report

Transcript 仲裁式數位簽章

密碼學與網路安全
第13章 數位簽章和認證
協定
數位簽章

訊息認證能保護通訊的雙方防禦第三者,但卻無法防禦對
方


在收發雙方無法完全信任彼此的情況下



光有認證功能還不夠
數位簽章才是解決這個問題的最佳方案
數位簽章的功能和手寫簽章很類似,必須具備以下特性:




傳訊雙方有好幾種爭議
必須能驗證簽章的所有者、日期、和時間
在簽章的同時,必須要能確認文件內容
為了避免紛爭,此簽章必須由第三者驗證
數位簽章的功能包括了認證功能
數位簽章的必備條件
 數位簽章必須根據被簽署的訊息
 數位簽章必須使用傳送者才有的資訊

才能避免偽造或否認
 數位簽章的產生方式必須簡單
 數位簽章的辨識和驗證必須簡單
 數位簽章應該無法以計算的方式偽造

不論是針對既有的簽章來偽造新訊息或由訊息
來偽造簽章
 數位簽章的副本必須實際保留在記憶體
直接式數位簽章






直接式數位簽章只需要傳訊雙方(傳送者、接收
者)參與即可
假設接收者知道傳送者的公開金鑰
數位簽章是以傳送者的私密金鑰加密整個訊息或
傳送者私密金鑰加密訊息的雜湊碼形成
進一步的以接收者的公開金鑰或雙方共有的金鑰
加密整個訊息和數位簽章,就能提供機密性
在發生爭議的情況下,公正的第三者必須同時檢
視訊息和簽章
目前所有直接式簽章的有效性是建立在傳送者私
密金鑰的安全性
仲裁式數位簽章
 仲裁者A



A會測試訊息及簽章,藉以檢查來源和內容
接著訊息會被附上日期並傳送給Y
這才表示訊息已通過仲裁者的檢查
 這類架構的仲裁者扮演了重要且關鍵的角
色,而且所有的參與者都必須信任仲裁架
構能正確的運作
 可利用私密或公開金鑰演算法實作
 仲裁者不一定看得見訊息
認證協定
 這類協定能讓通訊雙方相互識別並交換連
線金鑰
 可以是相互或單向認證
 具認證功能的金鑰交換有兩項考量:


機密性:保護連線金鑰
時效性:防止重送攻擊
 公開的協定經常被找出漏洞而需要修改
重送攻擊
 重送攻擊的例子:
 單純重送
 能被記錄的重送
 無法偵測的重送
 回送未修改的訊息
 對付重送攻擊的方法:



流水號
時戳
盤查/回應
使用對稱式加密
如之前所提,兩個層級的對稱式加密金鑰,能在
分散式環境提供機密性的訊息交換
 通常要利用可信任的金鑰分送中心(KDC)




每個通訊端都有一把與KDC共用的稱為主金鑰
若兩端要傳訊,KDC會負責產生連線金鑰供雙方暫時
使用
為了將連線金鑰安全分送到兩端,KDC在分送之前會
先以主金鑰加密連線金鑰
Needham-Schroeder協定
 原始的第三方金鑰分送協定
 A、B雙方由KDC協調
 這個協定能歸納如下:
1. A->KDC: IDA || IDB || N1
2. KDC -> A: EKa[Ks || IDB || N1 || EKb[Ks||IDA] ]
3. A -> B: EKb[Ks||IDA]
4. B -> A: EKs[N2]
5. A -> B: EKs[f(N2)]
Needham-Schroeder協定
 能讓A、B安全的分送通訊所需的新連線金
鑰
 但若雙方的舊金鑰已遭洩漏就可能遭受攻
擊

攻擊者只要重送步驟3的訊息給B,就能冒充A
而騙B使用舊的連線金鑰
 為了克服這些缺點:


加入時戳( Denning )
使用額外的隨意值(Neuman 93)
使用公開金鑰加密
 利用公開金鑰加密來分送連線金鑰
 這個協定假設雙方都擁有對方的公開金鑰
 在這種情況下,中央系統被稱為認證伺服
器(AS)

因為它並不實際負責分送連線金鑰,而是提供
公開金鑰的憑證
 現有的數種協定使用時戳或隨意值
Denning的AS協定

Denning 81提供了一個利用時戳的協定:
1. A -> AS: IDA || IDB
2. AS -> A: EPRas[IDA||PUa||T] || EPRas[IDB||PUb||T]
3. A -> B: EPRas[IDA||PUa||T] || EPRas[IDB||PUb||T] ||
EPUb[EPRas[Ks||T]]
 連線金鑰是由A選取並加密,因此沒有被
AS洩漏的風險
 時戳能防止外洩金鑰的重送
單向認證
 當傳送端和接收端並非同時通訊(例如電
子郵件)就需要單向認證
 電子郵件訊息的「信封」或檔頭必須夠清
楚,SMTP或是X.400的儲存轉寄協定才能
正確處理郵件
 應該要加密電子郵件訊息,才能讓郵件處
理系統不知道解密金鑰的情況下加密郵件
使用對稱式加密
 經過若干修改的KDC方法,就很適合用在
加密的電子郵件:
1. A->KDC: IDA || IDB || N1
2. KDC -> A: EKa[Ks || IDB || N1 || EKb[Ks||IDA] ]
3. A -> B: EKb[Ks||IDA] || EKs[M]
 此協定無法抵抗重送攻擊

雖然加入時戳能改善這些弱點,但因為電子郵
件在傳送過程可能有所延遲,因此這類時戳的
效用有限
使用公開金鑰加密
已經介紹過適用於電子郵件的公開金鑰加密方法
 如果機密性是主要考量,以下作法或許更有效率:
A->B: EPUb[Ks] || EKs[M]



這個情況會以使用一次即丟的一次秘密金鑰來加密訊息
如果認證是主要考量,可以使用數位簽章:
A->B: M || EPRa[H(M)] || EPRas[T||IDA||PUa]

這個方法保證A無法否認曾經送出的訊息,但卻會製造另
一種詐騙方式
數位簽章標準(DSS)
 DSS是NIST聯邦資訊處理標準(FIPS
PUB
186)
 首先是在1991年由NIST和NSA所發展
 在1993年根據各方回應而發佈修訂版本
 1996年發佈細部修改的新版本
 2000年發佈擴充版FIP 186-2
 最新版本包含了以RSA和橢圓曲線加密法
為基礎的數位簽章演算法
數位簽章演算法(DSA)
 以512~1024位元建立320位元簽章
 比RSA小且快速
 只具有數位簽章架構
 安全性與計算離散對數的困難度有關
 是由ElGamal和Schnorr和架構所衍生
數位簽章演算法(DSA)
產生DSA金鑰
建立DSA簽署
DSA驗證
總結
 數位簽章
 認證協定(相互及單向)
 數位簽章演算法及標準