1.05k likes | 1.31k Views
Module 3 :密碼分析與實作實習. (Draft). 學習目的. 密碼在人類生活中早已扮演著重要的角色,舉凡銀行帳戶、出入許可及身份辨認等都需要密碼技術的使用。然而惡意的攻擊者利用各種系統漏洞來竊取或是偽造他人密碼,使得人們的各項利益與安全性也隨之被破壞。因此,學習有關密碼安全的知識有著其必然的重要性 本模組共有五個小節包括 (1) 密碼管理 (2) 密碼破解 (3) 密碼分析工具介紹 (4) 密碼分析工具的實務 (5) 密碼分析的專案實作 共須三個鐘點. Module 3 :密碼分析與實作實習. * 初級 (basic) :基礎性教材內容
E N D
Module 3:密碼分析與實作實習 (Draft)
學習目的 • 密碼在人類生活中早已扮演著重要的角色,舉凡銀行帳戶、出入許可及身份辨認等都需要密碼技術的使用。然而惡意的攻擊者利用各種系統漏洞來竊取或是偽造他人密碼,使得人們的各項利益與安全性也隨之被破壞。因此,學習有關密碼安全的知識有著其必然的重要性 • 本模組共有五個小節包括 (1)密碼管理 (2)密碼破解 (3)密碼分析工具介紹 (4)密碼分析工具的實務 (5)密碼分析的專案實作 共須三個鐘點
Module 3:密碼分析與實作實習 * 初級(basic):基礎性教材內容 **中級(moderate):教師依據學生的吸收情況,選擇性介紹本節的內容 ***高級(advanced):適用於深入研究的內容 • Module 3-1:密碼管理(*) • Module 3-2:密碼破解(*) • Module 3-3:密碼分析工具介紹(*) • Module 3-4:密碼分析工具的實務(**) • Module 3-5:密碼分析的專案實作(**)
密碼管理 使用者認證 傳統密碼認證 Token認證 生物特徵認證
使用者認證 • 資訊安全基礎建設 • 基於存取控制及使用者責任制 • 對於系統控管權,需有一套驗證使用者的程序,分為兩個步驟 • 識別:明確的使用者ID • 核實:將個體(使用者)與ID綁定,並確認該ID屬於所屬之使用者
使用者認證 (續) 使用者認證分為四大類 個體所認知,例:密碼、通行片語及PIN碼 個體所擁有,例:智慧卡 個體之特徵,例:指紋、臉及視網膜 個別之行為,例:聲音波型與筆跡 3-7
傳統密碼認證 • 最常被使用的一種認證機制 • 登入 • 使用者輸入ID與Password • 查驗 • 系統自動去資料庫比對ID與Password是否正確配對
Unix帳號雜湊密碼 • 在Unix架構下,每個使用者決定ID後會被要求輸入密碼,而此時Unix會做下列動作 • 隨機產生一個固定長度的亂數(Salt value) • Slow hash • 上各步驟產生的亂數會跟使用者輸入的密碼結合,並經過密碼雜湊函數(Cryptography hash function)的運算,產生的結果稱為雜湊碼(Hash code) • Unix會建立一個Password File,內容會記錄使用者ID/Username,產生的亂數,以及Hash code
Unix帳號雜湊密碼的產生 資料來源:Computer Security Principles and Practice, by Williams Stallings and Lawrie Brown, 2008.
Unix帳號雜湊密碼的認證 資料來源:Computer Security Principles and Practice, by Williams Stallings and Lawrie Brown, 2008.
Unix帳號雜湊密碼的產生及認證 • 早期的系統設計 • 將8個字元長度的字串轉換成一個56-bit的鍵值 • 使用一個12-bit的亂數去修改DES的加密程序,使其成為一個單向雜湊涵數 • 用64-bit的0當做一串輸入資料,經過25次的加密過程後,即可得到一串64-bit的數列 • 而此64-bit的數列將會被轉換成11字元長度的最終數列 • 但現在此方法會被破解 • 例:於超級電腦,破解5000萬筆資料僅需80分鐘
Unix帳號雜湊密碼的產生及認證 (續) • 現在有其他更完善的雜湊涵式和改進的亂數產生,如許多系統都用到MD5演算法 • 使用48-bit的亂數(Salt value) • 密碼長度不再受限制 • 遞迴使用雜湊函數1000次 • 產生128-bit的數列 • 從BSD衍生出的類Unix作業系統--OpenBSD使用所謂的Bcrypt演算法加密 • 使用128-bit salt 去產生192-bit 的雜湊值
MD5演算法 MD5( Message-Digest algorithm 5)雜湊演算法,是電腦常用的一種加密演算法,簡而言之,使用者可將任意長度的資料,以MD5雜湊演算法運算,得到一組固定長度為128位元的結果 MD5為一個單向雜湊演算法,亦即不易以逆向運算得到原始資料,例如:要計算字串“ROCK”的MD5結果很簡單,但是要將MD5計算後的結果逆向運算得到“ROCK”卻相當困難 例:計算 X = MD5("ROCK") = afeb717aa2a101f7f64840e0be38c171非常簡單,但知道 X 逆向運算得到ROCK卻非常困難 3-14
MD5演算法(續) (**) Y0, Y1,…, YL-1 512 Message length (K mod 264) Y0, Y1,…, YL-1 Padding (1~512 bits) K bits message 1000...0 Round 1 :FF(A,B,C,D,M(k),S,T[i]) YL-1 Y0 Y1 Round 2 :GG(A,B,C,D,M(k),S,T[i]) Round 3 :HH(A,B,C,D,M(k),S,T[i]) 512 512 512 Round 4 :II(A,B,C,D,M(k),S,T[i]) ABCD HMD5 HMD5 HMD5 128 128 128 128 + + + + Message Digest Generation Using MD5 Note:addition(+) is mod 2 32 128
UnixPassword File的控管 • 只有特定權限的ID才能對Password File做存取的動作 • 通常會另存一個備份Password File • 雖然如此,但仍有下列幾項弱點 • 駭客可能從作業系統的Bug做文章 • 可能會有使用者把Password File權限開啟,變成可讀的 • 使用者可能在別的作業系統使用同樣的密碼 • 可能被安裝了後門木馬程式 • 從未受保護的網路上竊聽到密碼
Linux系統下的使用者帳號與密碼 在/etc/shadow的路徑下可以找到Linux的密碼檔
Windows系統下的帳號與密碼檔 • 因為Windows會將使用者帳號與密碼的檔案鎖住不能開啟且更動,這邊先展示一個已擷取過後的Windows帳密的簡單頁面,在後面會介紹軟體如何擷取此檔 • 視窗中顯現的User、LM-Password、NT-Password為Windows的帳號與密碼檔 • LM hash即為一個例子,以下為運作方式: • 將密碼中的所有小寫字元轉換成大寫。使用NULL 字元填補密碼,直到密碼的長度正好是14 個字元,分成各7 個字元的兩個區塊,使用上述區塊作為DES 機碼,來加密特定字串。將兩段密碼文字串連成128 位元的字串,並儲存結果
密碼的選擇 • 使用者可能會選擇短密碼以方便記憶 • 例:有人會選擇3個字元或以下的密碼,易被猜測 • 有的系統會拒絕太短的密碼,增加安全性 • 使用者可能會選擇可被猜測的密碼 • 攻擊者可能會列出一系列的可能密碼 • 密碼可能為使用者的名字,預設密碼,帳戶名稱,或其它各種可能的個人相關資料(生日、電話) • 可能是上述資料的相關延伸,例如:John變成John123
使用的密碼長度統計 資料來源:Computer Security Principles and Practice, by Williams Stallings and Lawrie Brown, 2008. 3-20
使用的密碼統計 資料來源:Computer Security Principles and Practice, by Williams Stallings and Lawrie Brown, 2008. 3-21
分析34,000筆自MySpace釣魚網站取得的使用者帳號和密碼資料:(Real-World Passwords,2006/12) 使用的密碼統計 • 28%為小寫字體加上一個數字 • ,其中2/3的數字是“1 ” • 3.8%是一完整單字 • 12%是單字後加一個數字,其 • 中2/3的數字是“1 ”
使用更安全的密碼 • 從前述可知,有意義的密碼易被猜測,但不規律的密碼卻不易被使用者記下 • 因此我們應要使用讓使用者更容易記得,也必須是要不易被猜測的密碼 • 技巧: • 電腦產生的密碼 • 可使用些密碼提示,方便自己記憶 • 前瞻性的密碼檢測
檢測產生的密碼 (**) 資料來源:Computer Security Principles and Practice, by Williams Stallings and Lawrie Brown, 2008. • Markov Model • 產生出可以被猜測的密碼 • 直接對這些產生出來的密碼做回絕的動作
Bloom Filter 用來建置字典上的密碼,經過Hash後的表單 檢測做出來的字串是否在此名單中 檢測產生的密碼 (續) 資料來源:Computer Security Principles and Practice, by Williams Stallings and Lawrie Brown, 2008.
Token認證 - 記憶卡(Memory Card) • 單純儲存資料而不對其做處理 • 磁條卡,如銀行卡與鑰匙卡 • 電子記憶卡 • 單獨用於實體上的存取 • 配合電腦使用則可搭配ID/Password • 不方便的地方 • 需搭配特定的讀卡機 • 使用者的不便
智慧卡內積體電路,包含了處理器(CPU)、唯讀記憶體(ROM)、隨機存取記憶體(RAM)以及電壓消除式可程式化唯讀記憶體(EEPROM)。IC採用環氧化物嵌入,再透過導線連到電子接觸點,以便觸通讀卡機內部的接觸點;或是連到天線,透過無線電波與讀卡機通訊;或是兩者都有智慧卡內積體電路,包含了處理器(CPU)、唯讀記憶體(ROM)、隨機存取記憶體(RAM)以及電壓消除式可程式化唯讀記憶體(EEPROM)。IC採用環氧化物嵌入,再透過導線連到電子接觸點,以便觸通讀卡機內部的接觸點;或是連到天線,透過無線電波與讀卡機通訊;或是兩者都有 Token認證 - 智慧卡(Smart Card) 資料來源:Computer Security Principles and Practice, by Williams Stallings and Lawrie Brown, 2008. 非接觸式智慧卡有RFID及NFC兩種方式
非接觸式智慧卡 台灣現今的非接觸式智慧卡大部分都是使用ISO/IEC 14443 標準,NFC 可提供完全相容ISO/IEC 14443 的非接觸式智慧卡,它可以藉由快速感應及自動辨識功能達到身份驗證目的
Token認證 - 一次密智慧卡(One Time Password, OTP) • 想像每個人手中的信用卡,以後都有顯示的功能,顯示的可能是時刻在改變、安全性高人一等的動態密碼,也可能是信用餘額或累積紅利點數等。每次登入使用時,除詢問使用者PIN密碼外,系統會隨機產生一隨機密碼,使用者依此密碼取得使用權限。因此,每次登入系統密碼均不相同,藉此提高安全性 具顯示功能的IC卡資料來源:智慧光 資料來源:VeriSign OATH 資料來源:www.gemalto.com
內建晶片運算為核心的多功能認證硬體 獨一無二的ESN號碼 隨機產生的4096-bit共用密碼 OTP演算法:AES,SHA-1,HMAC-1 符合FIPS140-2 Level3標準 依循OATH所產生的160-bit OTP Authenex A - key例子 資料來源: http://www.infosource.com.tw
OTP 例子一:E-Banking Solution 資料來源:http://www.gemalto.com
生物特徵認證 - 指紋 指紋辨識認證流程 資料來源:Computer Security Principles and Practice, by Williams Stallings and Lawrie Brown, 2008. • 辨識速度快正確性高 • 相關設備普及容易取得 • 國際標準 • ISO/IEC JTC1 SC37 19794-2 • DIN V 6400.
生物特徵認證 - 指靜脈辨識 資料來源:Junichi Hashimoto, "Finger Vein Authentication Technology and Its Future", Symposium on VLSI Circuits Digest of Technical Papers, 2006. 不需接觸,適用於機場等出入複雜或是疾病易傳播區域 獨一無二,永久性,無法複製性
生物特徵認證 - 人臉辨識與人眼虹膜 • 不需接觸,適用於機場等出入複雜或是疾病易傳播區域 • 國際標準 • ISO/IEC JTC1 SC37 19794-5 • 需要較精準攝影機 • 比對較為複雜 • 隱私性問題 • 可能由虹膜得知相關疾病
生物特徵認證的準確性 資料來源:Computer Security Principles and Practice, by Williams Stallings and Lawrie Brown, 2008. 永遠不會有重複的樣本 目前在false nonmatch/false match 上有爭議
生物特徵認證的準確性 (續) 資料來源:Computer Security Principles and Practice, by Williams Stallings and Lawrie Brown, 2008. 可以繪出特徵曲線 藉由選出適當的臨界值,可降低錯誤率
密碼破解 PopularPassword攻擊法與猜測法 字典攻擊法 暴力法 網路竊聽 社交工程
PopularPassword攻擊法與猜測法 • Popular Password 攻擊法 • 正如字面意義所說,此攻擊法能對多數範圍的ID做密碼猜測。因為Popular Password可能指的是某電影明星、某個樂團、某個偉人,範圍相當廣。而這些可能是大家都耳熟能詳的,所以都有可能拿來做密碼。例如:Taiwan、 The Beatles、 Tom Cruise • 猜測法 • 攻擊者在破解密碼時可以透過使用者個人資訊來猜測。例如生日、身份證號碼、電話號碼、及使用者有關之紀念日等
字典攻擊法(Dictionary attack) • 對於字典攻擊法意指在一組小範圍的字典檔中,攻擊者從中嘗試使用各種可能的密碼,利用這些可能的帳號密碼登入伺服器,直到找到正確的密碼為止 • 例:John the Ripper字典模式,可以指定字典檔,並使用進階指令加入規則,可將字典檔內的資料做有規則的排列或是重組等等,之後再跟密碼檔比對,有效地破解密碼
字典攻擊法 (續) • 線上(Online) - 字典攻擊 • 攻擊者在網路上直接對伺服器做帳號密碼登入驗證,以便檢查猜測的密碼是否可正確登入 • 線上字典攻擊會在伺服器日誌紀錄檔中留下大量的密碼登入錯誤紀錄 • 離線(Offline) - 字典攻擊 • 不需與伺服器做互動帳號密碼驗證,攻擊者透過伺服器中其他系統漏洞盜取伺服器的密碼檔。取得密碼檔後,可讓攻擊者不需透過登入伺服器的程序,來進行破解
字典攻擊法 (續) 伺服器的日誌檔 從伺服器日誌檔,可以察覺惡意第三者嘗試猜測密碼,造成多次的登入失敗。線上的密碼攻擊,會留下蹤跡 資料來源:NDHUWebmail 以Webmail為例,當連續輸入錯誤密碼,會被伺服器記錄下來,內容包括日期、IP、登入狀態等
字典攻擊法 (續) 連續輸入三次錯誤密碼 請仔細回憶您的密碼,如果真的忘記密碼了,請重新註冊!亂試密碼會留下紀錄 資料來源:telnet://ptt.cc (批踢踢實業坊) 以BBS-PTT為例,當連續輸入三次錯誤密碼後,系統判斷可能為攻擊,會中斷使用者連線,並於正常登入時顯示密碼輸入錯誤訊息。讓使用者知道有人在嘗試破解他的密碼
暴力法 將全部的有效鍵盤字符(大概95個)進行隨機的組合,去猜解密碼。此模式效率極低,非常耗時 若密碼使用8個字元,而鍵盤上可以輸入的字元變化全部有95個,若用暴力法破解的話就需要: (95^8+95^7+95^6+95^7+95^6+...+95^1) = 6.7e^15(次) John the Ripper提供的Incremental mode模式,就是一種暴力攻擊法
網路竊聽 最初網路封包擷取軟體是被設計做為網路分析的工具,擷取網路封包再分析封包上的內容,可方便網路工程師除錯、監控網路流量或診斷網路異常等問題 而現今的網路竊聽攻擊法是基於資料經由未加密的通道傳送,每個人都可以拿取這通道上的封包,利用封包擷取軟體來分析所抓取的封包,便可得知此封包中的訊息 如刻意分析含有使用者登入訊息的封包,便可竊聽到使用者的帳號與密碼
網路竊聽 • 網路竊聽是網路攻擊一種簡單但有效的攻擊方式,一般而言,攻擊者能夠藉由竊聽作為攻擊手段,主要是資料在TCP/IP鏈結層(DataLinkLayer)未經加密(即在不安全之通道上)傳送 • 因此若使用者未使用IPSEC、HTTPS、SSH、SFTP等方式加密傳送資料,攻擊者可輕易地使用網路封包擷取軟體,獲得帳號與密碼
如何避免網路竊聽密碼 最基本的就是做好電腦的安全設定,杜絕所有木馬後門程式,安裝防毒軟體是必備的;並且除了隨時更新病毒碼外,也需定時的掃描,如此可維持基本的電腦資訊安全 回到網路封包竊聽這個議題上,我們並不能改變網路封包的傳送路徑,但是我們可以提升傳送的通道的安全性,傳輸機密資料時,以加密軟體進行傳輸,此時就算資料被竊聽程式所擷取,惡意的第三者也只能看到密文,而無法分析所擷取的密文資料
如何避免網路竊聽密碼 (續) HTTPS網頁保護密碼,避免駭客竊聽密碼 登入網頁後,即取消HTTPS,以加速郵件的送收。註:Yahoo電子信箱為免費電子信箱,並無義務提供安全的郵件送收