[IT-Security-1] 授權機制 Authentication and Key Agreement
Authentication and Key Agreement
Notes from RWTH Aachen University course
“IT security 1” Wintersemester 2019/20
professor: Meyer, Ulrike Michaela
- Authentication protocol的目標
- 正確性(Correctness): A可以向B成功認證他的身份
- 不可轉移性(Resistance against transferability): B不能重複使用A的身份向C證明自己
- 不可偽造(Resistance against impersonation): C執行protocol後向B證明自己是A的機率很小
- Password-Based Authentication
- 用hash儲存使用者的password
使用者輸入password後找hash值
hash需要有pre-image resistant - Dictionary Attack
- Offline attack
- 先預計算字典裡所有的字的hash
- 若拿到password file則比對所有的hash得到preimage
- Online attack
- 無法取得password file
- 攻擊者要一個一個測字典裡的字
攻擊有可能都存在,針對個人或所有用戶
- Dictionary Attack的解法
- 使用salt( h(salt,pwd) ),並在password file中儲存salt
- 使用相同密碼的使用者會有不同的hash值
- offline attack需要更多空間或無法precompute
- Default password attack
- Mirai(日文「未來」) Botnet
- 對使用預設帳號密碼的物聯網裝置植入病毒,植入之後繼續搜尋其他IP位址
- Challenge-response authentication
- 流程:
- Bob向Alice傳送一 Challenge value (a random value)
- Alice回傳 Response=f( key, challenge)
- Alice向Bob證明自己有secret key,而不用直接傳送secret key
- Example: Lamport’s One-Time Passwords
- h 是hash function
- Alice選擇一個隨機seed S,並計算
h(S)=S1,h(S1)=h2(S)=S2,...,h(Sn−1)=hn(S)=Sn - Alice提供 P0=Sn 給Bob
則接下來的使用順序是 P1=Sn−1,P2=Sn−2
- 若Bob傳送 Challenge k
則Alice回傳 Pk - Bob驗證是否 h(Pk)=Pk−1
- Small k attack:
- 因為Bob傳送的 k 沒有被授權(authenticated)
- 攻擊者偽造一個 m,m>k,傳給Alice
- Alice回傳 Pm
攻擊者再回傳 Pk - 因為 hm−k(Pm)=Pk
- Building Blocks for Unilateral(單方面) Authentication
- Ek(timestamp,IDA)
- Ek(RAND) (RAND是Alice給的)
- MACk(timestamp,IDA),timestamp
- MACk(RAND) (RAND是Alice給的)
- Bob的資訊包含在訊息中(key)
- Bob指定收件人(用Alice的對稱式或非對稱式key)
- Building Blocks for Mutual(雙方) Authentication
- RB 是另一個random number
- Alice傳送RA給Bob
Bob傳回 EK(RA,RB)給Alice
Alice傳回 EK(RB,RA)給Bob - Alice傳送RA給Bob
Bob傳回 MACK(RA,RB), RB給Alice
Alice傳回 MACK(RB,RA)給Bob
- 將 RA,RB 一起加密/計算MAC 以避免chosen plain text攻擊
- Using Public Key Encryption
- 單方面authenticate
- Alice傳送 h(R),IDB,EB(h(R),IDB)
假設Bob知道h(R)且不會破解此h(R) - Bob回傳 R
- 互相authenticate
- (假設雙方還不知道彼此public key)
- Bob傳送 RB 給Alice
- Alice回傳 CertA,RA,B,SignA(RA,RB,B)
- Bob回傳 CertB,A,SignB(RB,RA,A)
B,A是Alice跟Bob的public key(!?)
留言
- 正確性(Correctness): A可以向B成功認證他的身份
- 不可轉移性(Resistance against transferability): B不能重複使用A的身份向C證明自己
- 不可偽造(Resistance against impersonation): C執行protocol後向B證明自己是A的機率很小
- 用hash儲存使用者的password
使用者輸入password後找hash值
hash需要有pre-image resistant - Dictionary Attack
- Offline attack
- 先預計算字典裡所有的字的hash
- 若拿到password file則比對所有的hash得到preimage
- Online attack
- 無法取得password file
- 攻擊者要一個一個測字典裡的字
攻擊有可能都存在,針對個人或所有用戶
- Dictionary Attack的解法
- 使用salt( h(salt,pwd) ),並在password file中儲存salt
- 使用相同密碼的使用者會有不同的hash值
- offline attack需要更多空間或無法precompute
- Offline attack
- Default password attack
- Mirai(日文「未來」) Botnet
- 對使用預設帳號密碼的物聯網裝置植入病毒,植入之後繼續搜尋其他IP位址
- Mirai(日文「未來」) Botnet
- 流程:
- Bob向Alice傳送一 Challenge value (a random value)
- Alice回傳 Response=f( key, challenge)
- Alice向Bob證明自己有secret key,而不用直接傳送secret key
- Example: Lamport’s One-Time Passwords
- h 是hash function
- Alice選擇一個隨機seed S,並計算
h(S)=S1,h(S1)=h2(S)=S2,...,h(Sn−1)=hn(S)=Sn - Alice提供 P0=Sn 給Bob
則接下來的使用順序是 P1=Sn−1,P2=Sn−2
- 若Bob傳送 Challenge k
則Alice回傳 Pk - Bob驗證是否 h(Pk)=Pk−1
- Small k attack:
- 因為Bob傳送的 k 沒有被授權(authenticated)
- 攻擊者偽造一個 m,m>k,傳給Alice
- Alice回傳 Pm
攻擊者再回傳 Pk - 因為 hm−k(Pm)=Pk
- Building Blocks for Unilateral(單方面) Authentication
- Ek(timestamp,IDA)
- Ek(RAND) (RAND是Alice給的)
- MACk(timestamp,IDA),timestamp
- MACk(RAND) (RAND是Alice給的)
- Bob的資訊包含在訊息中(key)
- Bob指定收件人(用Alice的對稱式或非對稱式key)
- Building Blocks for Mutual(雙方) Authentication
- RB 是另一個random number
- Alice傳送RA給Bob
Bob傳回 EK(RA,RB)給Alice
Alice傳回 EK(RB,RA)給Bob - Alice傳送RA給Bob
Bob傳回 MACK(RA,RB), RB給Alice
Alice傳回 MACK(RB,RA)給Bob
- 將 RA,RB 一起加密/計算MAC 以避免chosen plain text攻擊
- Using Public Key Encryption
- 單方面authenticate
- Alice傳送 h(R),IDB,EB(h(R),IDB)
假設Bob知道h(R)且不會破解此h(R) - Bob回傳 R
- 互相authenticate
- (假設雙方還不知道彼此public key)
- Bob傳送 RB 給Alice
- Alice回傳 CertA,RA,B,SignA(RA,RB,B)
- Bob回傳 CertB,A,SignB(RB,RA,A)
B,A是Alice跟Bob的public key(!?)
留言
Key Establishment
- 如果沒有session key,則上述的building block都無效
- 可以保障兩個授權的雙方仍在communicating
- Key Establishment Protocols
- 先建立一個shared secret key
- 可分為
- Key transport protocols
- 被建立的key可以被安全的傳送
- Key agreement protocols
- example: Diffie-Hellman
- Motivation
- 給定一定key,如果不被攻擊的話密文有限
- 減少暴露時間及資訊量
- 避免長期儲存大量secret key
- 建立使用者的獨立通道
- Key Establishment該有的特質
- key freshness
- Key control
- Efficiency
- Third party requirements
- perfect forward secrecy
如果long-term signature keys被破解不會影響到以前的session key - vulnerable to a known-key attack
若過去的session key被破解,會影響到未來的session key或有辦法假冒他人 - Key Establishment Protocols的性質
- Implicit key authentication
一方知道除了被授權的另一方之外可以取得特定secret key - Key confirmation
一方知道有另一個人(不一定被授權)可以擁有特定secret key - Explicit key authentication
implicit key authentication+key confirmation - Authenticated key establishment
一protocol提供implicit key authentication
- Key Transport
- A和B用對稱式加密,加密session key SK
- 若需要key freshness,可以用Nonce
- B傳遞Nonce NB 給A
- A回傳EK(SK,NA,NB)
- 如果沒有session key,則上述的building block都無效
- 可以保障兩個授權的雙方仍在communicating
- Key Establishment Protocols
- 先建立一個shared secret key
- 可分為
- Key transport protocols
- 被建立的key可以被安全的傳送
- Key agreement protocols
- example: Diffie-Hellman
- Key transport protocols
- Motivation
- 給定一定key,如果不被攻擊的話密文有限
- 減少暴露時間及資訊量
- 避免長期儲存大量secret key
- 建立使用者的獨立通道
- Key Establishment該有的特質
- key freshness
- Key control
- Efficiency
- Third party requirements
- perfect forward secrecy
如果long-term signature keys被破解不會影響到以前的session key - vulnerable to a known-key attack
若過去的session key被破解,會影響到未來的session key或有辦法假冒他人 - Key Establishment Protocols的性質
- Implicit key authentication
一方知道除了被授權的另一方之外可以取得特定secret key - Key confirmation
一方知道有另一個人(不一定被授權)可以擁有特定secret key - Explicit key authentication
implicit key authentication+key confirmation - Authenticated key establishment
一protocol提供implicit key authentication
- Implicit key authentication
- Key Transport
- A和B用對稱式加密,加密session key SK
- 若需要key freshness,可以用Nonce
- B傳遞Nonce NB 給A
- A回傳EK(SK,NA,NB)
Key transport
- First attempt
- server S 有跟 A,B 的key kSA,kSB
- 若 A 想要建立與 B 的溝通通道 (即取得kAB)
- 步驟:
- A 對 S 請求 A,B 的key
- S 給 A EKAS(KAB) 及 EKBS(KAB)
- A 再把 (EKBS(KAB),A) 傳給 B
- B 用自己的 KBS 解密得到 KAB
- Second attempt
- 步驟:
2. S 給 A EKAS(KAB,B) 及 EKBS(KAB,A) (加入 A,B 的identity)
- Probelm:
- 攻擊者如果獲得以前的session key k′AB
- 並且記錄以前的訊息
- 攻擊者可以使 A,B 再用同一把broken session key
- 此protocol易受replay攻擊
- Third attempt(Needham-Schroeder Protocol)
- 用 Nonce 對抗replay攻擊
- 步驟:
- A 對 S 請求 A,B 的key,並給一個 Nonce NA
- S 回傳 EkAS(kAB,B,NA,EkBS(kAB,A))
- A 將 EkBS(kAB,A) 傳給 B
- B 傳 EAB(NB) 給 A
- A 回傳 EAB(NB−1)
- Probelm:
- 若攻擊者知道old session key
- 可以破解步驟3,並且用 k′AB 與B溝通
- Fourth attempt
- 步驟:
3. B 傳 Nonce NB 給 A
4. A 回傳 EkBS(kAB,A,NB)
- First attempt
- server S 有跟 A,B 的key kSA,kSB
- 若 A 想要建立與 B 的溝通通道 (即取得kAB)
- 步驟:
- A 對 S 請求 A,B 的key
- S 給 A EKAS(KAB) 及 EKBS(KAB)
- A 再把 (EKBS(KAB),A) 傳給 B
- B 用自己的 KBS 解密得到 KAB
- Second attempt
- 步驟:
2. S 給 A EKAS(KAB,B) 及 EKBS(KAB,A) (加入 A,B 的identity)
- Probelm:
- 攻擊者如果獲得以前的session key k′AB
- 並且記錄以前的訊息
- 攻擊者可以使 A,B 再用同一把broken session key
- 此protocol易受replay攻擊
- Third attempt(Needham-Schroeder Protocol)
- 用 Nonce 對抗replay攻擊
- 步驟:
- A 對 S 請求 A,B 的key,並給一個 Nonce NA
- S 回傳 EkAS(kAB,B,NA,EkBS(kAB,A))
- A 將 EkBS(kAB,A) 傳給 B
- B 傳 EAB(NB) 給 A
- A 回傳 EAB(NB−1)
- Probelm:
- 若攻擊者知道old session key
- 可以破解步驟3,並且用 k′AB 與B溝通
- Fourth attempt
- 步驟:
3. B 傳 Nonce NB 給 A
4. A 回傳 EkBS(kAB,A,NB)
Key Agreement
- Based on public key cryptography
- Diffie-Hellman Key Agreement
- 可用對稱式鑰匙或公鑰對公開變數授權
- Based on symmetric keys
- 對Nonce授權
- 用Nonce或long term shared secret進行Hash產生session key
ReadingsKaufman Chapters 9, 10, and 11The basic challenge response protocols are standardized inISO/IEC 9798D. Florencio, C. Herley: “A LargeScale Study of Web Password Habits”, 2007A. Rabkin: “Personal knowledge questions for fallback authentication: Security questions in the era of Facebook”, 2008Boyd, Mathuria: Protocols for Authentication and Key Establishment, 2003
- Based on public key cryptography
- Diffie-Hellman Key Agreement
- 可用對稱式鑰匙或公鑰對公開變數授權
- Diffie-Hellman Key Agreement
- Based on symmetric keys
- 對Nonce授權
- 用Nonce或long term shared secret進行Hash產生session key
Kaufman Chapters 9, 10, and 11
The basic challenge response protocols are standardized in
ISO/IEC 9798
D. Florencio, C. Herley: “A LargeScale Study of Web Password Habits”, 2007
A. Rabkin: “Personal knowledge questions for fallback authentication: Security questions in the era of Facebook”, 2008
Boyd, Mathuria: Protocols for Authentication and Key Establishment, 2003
留言
張貼留言