第二章 文獻探討
2.6 預先分享金鑰(Pre-Shared Key)推導演算法
WPA-PSK 或 WPA2 PSK 是特別為家庭用戶使用的加密保護方法,不需使用認證伺服器。
PSK 會同時以用戶端與存取器的密碼或識別碼(亦稱為通關密語)來確認使用者。假如用戶端 的密碼符合存取器的密碼,即可存取網路。PSK 也提供 TKIP 或 AES 為各個封包的傳輸資料 產出加密碼的密鑰素材。PSK 比靜態 WEP 更安全,但兩者都儲存於用戶端,一旦用戶端設備 失竊,PSK 同樣會被破解。建議使用混合字母、數字與非字元符號的複雜化 PSK 通關密語。
若使用者選用 Pre-Shared Key 進行認證動作時,特別是 passphrase based PSK,將有可能遭受駭 客利用字典攻擊法猜中 PSK。由於 PSK 為一個 256bits 的隨機數字或 8 到 63bytes 的 passphrase(通關密碼),雖然使用者擁有自己的 PSK,但目前製造商的做法都是整個 ESS 使用同 一個 PSK,和 WEP 做法一樣,一旦駭客猜中 PSK,駭客即成為 ESS 的一員,整個 ESS 即被
鑰交換機制為基礎,分析與討論可行之演算法設計。
WPS PIN 為一八位之數字組,前 7 個數字為隨機之數字,最後一個位數必須為符合如下公 式:(定義於 WPS Spec)
int ComputeChecksum(unsigned long int PIN) {
unsigned long int accum = 0;
PIN *= 10;
為了防止這種情況,1992 年 Diffie 和其它人一起開發了經認證的 Diffie-Hellman 金鑰協 定。在這個協定中,必須使用現有的私密金鑰⁄公開金鑰對以及與公開金鑰元素的相關數位簽章,
由數位簽章驗證交換的初始公共值。
(2) 橢圓曲線加密(Elliptic Curve Crypto, ECC)
橢圓曲線密碼系統是由Neil Koblitz和Victor Miller兩位學者分別於1985 年首先提出,大多 數的橢圓曲線密碼系統是在模p 或2n F 下運算。此密碼系統仍是存有RSA或ElGamal常見的弱點 point),k(k<n,n為基點G的階)稱為私有密鑰(private key),K稱為公開密鑰(public key)。
y A選定一條橢圓曲線Eq( ba, ),並取橢圓曲線上一點,作為基點G。
目前常用的單向湊函數有 MD5、SHA-1 等。MD5 訊息摘要(Message Digest)演算法,其輸 入是任意長度的訊息,輸出則是一個 128 位元的訊息摘要。輸入的訊息會被分成好幾個 512 位 元的區段來處理。SHA1 安全雜湊(Secure Hash Algorithm)演算法以 MD4 為基礎,其輸入的訊息 長度不得超過2 位元,而輸出則是一個 160 位元的訊息摘要。輸入的訊息會被分成好幾個 51264 位元的區段來處理。MD5 與 SHA-1 兩者之區段長度相同,雜湊碼與串接變數長度也都是 160 位元。但一般認為 SHA1 比 MD5 更能抗拒窮舉式生日攻擊法之攻擊。
MD5 原理:
1. 填入附加位元(Padding bits):使其位元長度在取 512 的同餘之後會等餘 448,換言之,附加 過後的長度會比 512 位元倍數少 64 位元。
2. 附加長度
3. 將輸入分割成 512 位元區塊 4. 初始化鏈結變數
5. 處理區塊
– 5.1:複製鏈結變數到四個符合的變數中 – 5.2:將目前的 512 位元分割成 16 個子區塊
– 5.3:現在有四個回合。在每一個回合中,我們處理屬於每一個區塊的所有 16 個子 區塊
SHA-1 原理:
1. 填入 2. 附加長度
3. 將輸入分割成 512 位元區塊 4. 初始化鏈結變數
5. 處理區塊
– 5.1:複製鏈結變數 A-E 到變數 a-e 中
– 5.2:目前的 512 位元區塊分割成 16 個子區塊,每一個包含 32 位元 – 5.3:SHA 有四個回合,每一個回合包含 20 個步驟
– 5.4:SHA 包含四個回合,每一個回合包含 20 個疊代,總共有 80 個疊代