[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(\text{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回傳 \(\text{Response=}f(\) \(\text{key}\)\(\text{, challenge)}\)
    • Alice向Bob證明自己有secret key,而不用直接傳送secret key
    • Example: Lamport’s One-Time Passwords
      • \(h\) 是hash function
      • Alice選擇一個隨機seed \(S\),並計算
        \(h(S)=S_1,\\h(S_1)=h^2(S)=S_2,...,\\h(S_{n-1})=h^n(S)=S_n\)
      • Alice提供 \(P_0=S_n\) 給Bob

        則接下來的使用順序是 \(P_1=S_{n-1},P_2=S_{n-2}\)

      • 若Bob傳送 Challenge \(k\)
        則Alice回傳 \(P_k\)
      • Bob驗證是否 \(h(P_k)=P_{k-1}\)
    • Small \(k\) attack:
      • 因為Bob傳送的 \(k\) 沒有被授權(authenticated)
      • 攻擊者偽造一個 \(m\)\(, m>k\),傳給Alice
      • Alice回傳 \(P_m\)
        攻擊者再回傳 \(P_k\)
      • 因為 \(h^{m-k}(P_m)=P_k\)


    • Building Blocks for Unilateral(單方面) Authentication
      1. \(E_k(\text{timestamp,ID}_A)\)
      2. \(E_k(\text{RAND})\) (\(\text{RAND}\)是Alice給的)
      3. \(MAC_k(\text{timestamp,ID}_A),\text{timestamp}\)
      4. \(MAC_k(\text{RAND})\) (\(\text{RAND}\)是Alice給的)
      • Bob的資訊包含在訊息中(key)
      • Bob指定收件人(用Alice的對稱式或非對稱式key)


    • Building Blocks for Mutual(雙方) Authentication
      • \(R_B\) 是另一個random number
      1. Alice傳送\(R_A\)給Bob
        Bob傳回 \(E_K(R_A,R_B)\)給Alice
        Alice傳回 \(E_K(R_B,R_A)\)給Bob
      2. Alice傳送\(R_A\)給Bob
        Bob傳回 \(MAC_K(R_A,R_B),\) \(R_B\)給Alice
        Alice傳回 \(MAC_K(R_B,R_A)\)給Bob
      • 將 \(R_A,R_B\) 一起加密/計算\(MAC\) 以避免chosen plain text攻擊



    • Using Public Key Encryption
      • 單方面authenticate
        • Alice傳送 \(h(R)\)\(,ID_B,E_B(h(R),ID_B)\)
          假設Bob知道\(h(R)\)且不會破解此\(h(R)\)
        • Bob回傳 \(R\)


      • 互相authenticate
        • (假設雙方還不知道彼此public key)
        • Bob傳送 \(R_B\) 給Alice
        • Alice回傳 \(Cert_A,R_A,B,Sign_A(R_A,R_B,B)\)
        • Bob回傳 \(Cert_B,A,Sign_B(R_B,R_A,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 \(N_B\) 給A
          • A回傳\(E_K(SK,N_A,N_B)\)

Key transport

    1. First attempt
      • server \(S\) 有跟 \(A,B\) 的key \(k_{SA},k_{SB}\)
      • 若 \(A\) 想要建立與 \(B\) 的溝通通道 (即取得\(k_{AB}\))
      • 步驟:
        1. \(A\) 對 \(S\) 請求 \(A,B\) 的key
        2. \(S\) 給 \(A\) \(E_{K_{AS}}(K_{AB})\) 及 \(E_{K_{BS}}(K_{AB})\)
        3. \(A\) 再把 \((E_{K_{BS}}(K_{AB}),A)\) 傳給 \(B\)
        4. \(B\) 用自己的 \(K_{BS}\) 解密得到 \(K_{AB}\)


      • Probelm:
        • 攻擊者對調 \((E_{K_{BS}}(K_{AB}),A)\) with \((E_{K_{BS}}(K_{AB}),\) \(T\) \()\)
        • \(B\) 原本想給 \(T\) 訊息但是會給到 \(A\)
        • 攻擊者可以從 \(A\) 方獲得訊息而非從 \(T\) 

          可能從 \(A\) 方更能取得訊息

           
        • 假設攻擊者 \(E\) 和 \(S\) 也有key \(k_{SE}\)
        • 則攻擊者可以攔截步驟1,再把 \(E_{K_{AS}}(K_{AE})\) 及 \(E_{K_{ES}}(K_{AE})\) 傳給 \(A\)
        • \(A\) 變成跟 \(E\) 溝通




    1. Second attempt
      • 步驟:
        2. \(S\) 給 \(A\) \(E_{K_{AS}}(K_{AB},B)\) 及 \(E_{K_{BS}}(K_{AB},A)\) (加入 \(A,B\) 的identity)


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


    1. Third attempt(Needham-Schroeder Protocol)
      • 用 Nonce 對抗replay攻擊
      • 步驟:
        1. \(A\) 對 \(S\) 請求 \(A,B\) 的key,並給一個 Nonce \(N_A\)
        2. \(S\) 回傳 \(E_{k_{AS}}(k_{AB},B,N_A,\)\(E_{k_{BS}}(k_{AB},A)\)\()\)
        3. \(A\) 將 \(E_{k_{BS}}(k_{AB},A)\) 傳給 \(B\)
        4. \(B\) 傳 \(E_{AB}(N_B)\) 給 \(A\)
        5. \(A\) 回傳 \(E_{AB}(N_B-1)\)


      • Probelm:
        • 若攻擊者知道old session key
        • 可以破解步驟3,並且用 \(k_{AB}'\) 與\(B\)溝通


    1. Fourth attempt
      • 步驟:
        3. \(B\) 傳 Nonce \(N_B\) 給 \(A\)
        4. \(A\) 回傳 \(E_{k_{BS}}(k_{AB},A,\)\(N_B\)\()\)


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

留言

這個網誌中的熱門文章