[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的解法
        • 使用salth(salt,pwd) ),並在password file中儲存salt
        • 使用相同密碼的使用者會有不同的hash值
        • offline attack需要更多空間或無法precompute
    • Default password attack
      • Mirai(日文「未來」) Botnet
        • 對使用預設帳號密碼的物聯網裝置植入病毒,植入之後繼續搜尋其他IP位址
  • Challenge-response authentication
    • 流程:
      1. Bob向Alice傳送一 Challenge value (a random value)
      2. 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(Sn1)=hn(S)=Sn
      • Alice提供 P0=Sn 給Bob

        則接下來的使用順序是 P1=Sn1,P2=Sn2

      • 若Bob傳送 Challenge k
        則Alice回傳 Pk
      • Bob驗證是否 h(Pk)=Pk1
    • Small k attack:
      • 因為Bob傳送的 k 沒有被授權(authenticated)
      • 攻擊者偽造一個 m,m>k,傳給Alice
      • Alice回傳 Pm
        攻擊者再回傳 Pk
      • 因為 hmk(Pm)=Pk


    • Building Blocks for Unilateral(單方面) Authentication
      1. Ek(timestamp,IDA)
      2. Ek(RAND) (RAND是Alice給的)
      3. MACk(timestamp,IDA),timestamp
      4. MACk(RAND) (RAND是Alice給的)
      • Bob的資訊包含在訊息中(key)
      • Bob指定收件人(用Alice的對稱式或非對稱式key)


    • Building Blocks for Mutual(雙方) Authentication
      • RB 是另一個random number
      1. Alice傳送RA給Bob
        Bob傳回 EK(RA,RB)給Alice
        Alice傳回 EK(RB,RA)給Bob
      2. 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)

Key transport

    1. First attempt
      • server S 有跟 A,B 的key kSA,kSB
      • 若 A 想要建立與 B 的溝通通道 (即取得kAB)
      • 步驟:
        1. A 對 S 請求 A,B 的key
        2. S 給 A EKAS(KAB) 及 EKBS(KAB)
        3. A 再把 (EKBS(KAB),A) 傳給 B
        4. B 用自己的 KBS 解密得到 KAB


      • Probelm:
        • 攻擊者對調 (EKBS(KAB),A) with (EKBS(KAB), T )
        • B 原本想給 T 訊息但是會給到 A
        • 攻擊者可以從 A 方獲得訊息而非從 T 

          可能從 A 方更能取得訊息

           
        • 假設攻擊者 E 和 S 也有key kSE
        • 則攻擊者可以攔截步驟1,再把 EKAS(KAE) 及 EKES(KAE) 傳給 A
        • A 變成跟 E 溝通




    1. Second attempt
      • 步驟:
        2. S 給 A EKAS(KAB,B) 及 EKBS(KAB,A) (加入 A,B 的identity)


      • Probelm:
        • 攻擊者如果獲得以前的session key kAB
        • 並且記錄以前的訊息
        • 攻擊者可以使 A,B 再用同一把broken session key
        • 此protocol易受replay攻擊


    1. Third attempt(Needham-Schroeder Protocol)
      • 用 Nonce 對抗replay攻擊
      • 步驟:
        1. A 對 S 請求 A,B 的key,並給一個 Nonce NA
        2. S 回傳 EkAS(kAB,B,NA,EkBS(kAB,A))
        3. A 將 EkBS(kAB,A) 傳給 B
        4. B 傳 EAB(NB) 給 A
        5. A 回傳 EAB(NB1)


      • Probelm:
        • 若攻擊者知道old session key
        • 可以破解步驟3,並且用 kAB 與B溝通


    1. 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
Readings
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

留言

這個網誌中的熱門文章