身份認證(Authentication)的定義:
宣稱者向驗證方出示證據(jù),證明其身份的交互過程 至少涉及兩個參與者,是一種協(xié)議 分為雙向認證和單向認證
身份認證并不是一種靜態(tài)的加密,而是一個協(xié)議過程
區(qū)分兩個概念
身份認證和報文鑒別
區(qū)別:
①報文鑒別是靜態(tài)附加在報文之上;身份認證是動態(tài)的協(xié)議交互的過程;報文鑒別可以作為基本方法,用于設(shè)計身份認證協(xié)議
②身份認證一般和時間相關(guān),具有實時性;
-Message authentication has no timeliness
-Entity authentication happens in real time
重大區(qū)別就是: 要保證用于身份認證的報文的鮮活性
最早是由毛文波提出的,鮮活性在身份認證里指用于身份認證的憑證每次都不一樣;
對身份認證最大的威脅是重放攻擊(Replay Attack)
理解身份認證討論的問題本質(zhì)
報文鑒別是要對報文加密;
我們在討論身份認證協(xié)議時總是假設(shè)底層的密碼算法是安全的,研究身份認證協(xié)議時是在挑協(xié)議的漏洞,也就是說在協(xié)議交互過程中替換一個報文,或者刪除一個報文,或者增加一條報文,然后看看是否造成協(xié)議出錯,針對身份認證最大攻擊就是重放攻擊。
身份認證基本方法(基于一個憑證)
宣稱者所知道的(秘密)-passwords、PINs、keys…
宣稱者擁有的(設(shè)備或信物)-cards、handhelds…
宣稱者繼承的生物特征(每個人獨有的)-biometrics
PINs與Keys的關(guān)系
用短的PIN碼鎖住長的密鑰Key,提供兩級安全保護
基于口令的身份認證
基于口令身份認證的一般模式
基于口令認證的一般過程 分為兩個階段:
初始化階段
①用戶選擇口令
②口令經(jīng)哈希后把哈希值存儲在口令文件里
身份認證階段
①用戶登錄系統(tǒng),輸入口令
②系統(tǒng)同樣方向計算哈希值,和之前存放在口令文件里的哈希值比較
基于口令的身份認證-弱的認證方法
口令在相當(dāng)長一段時間內(nèi)固定
明文存放或哈希之后存放
通過設(shè)置規(guī)則(如要求字母、數(shù)字、長度等),
避免設(shè)置弱口令
Salt(鹽值)提高字典攻擊的窮舉空間
有大量的應(yīng)用實例
- Unix口令
- 動態(tài)口令
對基于口令認證的攻擊
重放攻擊(因口令一般一段時間內(nèi)固定)
窮舉攻擊 8個字符相當(dāng)于40-50bits的窮舉空間
字典攻擊-數(shù)量化討論
什么是口令字典?
典型的口令詞典:
容易被采用作為口令的詞條
– 人們的名字、寵物名字、生日或生日的組合、普通單詞
窮舉攻擊和字典攻擊哪個效率更高
在線字典攻擊(本質(zhì)就是挨個口令試)
在線字典攻擊:攻擊者從字典文件里的詞條拿出來一個一個去匹配口令
怎么防御在線字典攻擊?
①隨機口令設(shè)置
②或者通過一些規(guī)則避免設(shè)置弱的口令,增加窮舉者攻擊空間的目的
離線字典攻擊原理
建立離線字典文件 字典文件包含兩列:
①口令
②口令對應(yīng)的哈希值
口令列表,與攻擊目標(biāo)系統(tǒng)采用同樣哈希算法,
計算生成口令的哈希值
獲取password文件 password文件里的哈希值與字典文件里的哈希值進行比對
離線字典攻擊原理小結(jié)(本質(zhì)就是比較hash)
所謂離線字典攻擊就是攻擊者前提能拿到口令文件,倒算哈希值變成查表,查表這個運算對計算機來說處理速度非???,這個攻擊如果成功的話危害非常大,這意味著一旦口令文件丟失,所有用戶的口令都發(fā)生了泄露; 如果沒有離線字典文件的話,攻擊者竊取了口令文件,它想從哈希值倒算口令它是做不到的,但有了離線字典文件后,針對口令文件攻擊者直接查表,一旦哈希值匹配成功了,那么可以得到口令明文,甚至口令值不一定一樣,但是哈希值相同,這個時候也等價于找到口令了,這就是離線字典攻擊的原理
防范離線字典攻擊的方法
防范離線字典攻擊典型方法: 撒點鹽的方法,通過撒點鹽的方法來提高離線字典攻擊的窮舉空間
以UNIX口令系統(tǒng)為例—撒鹽方法
UNIX標(biāo)準(zhǔn)口令Hash函數(shù)(使用改造的DES算法) 將DES改造成Hash函數(shù),改造方法:
①明文全部變成常量,64bit0;
②Salt值從系統(tǒng)的時鐘提取,取值范圍[a-z,A-Z,0-9,./],對時鐘做一個簡單變換變成ASCII字符,這個時鐘有效比特數(shù)量是12bit
③用對稱密鑰key對其進行加密,key包括兩個部分:口令明文+Salt(12bit)
④迭代25次;修改DES擴展函數(shù);
⑤加密完成之后,獲得一個11個ASCII字符的密文輸出作為哈希值,把哈希值存放到口令文件里password字段的后面一部分,前面兩位放置Salt的兩個字符[from Red Hat Linux 6.2]
基于口令的認證方式總結(jié)
一種弱的認證方法 竊取A的password,將在很長一段時間擁有A的權(quán)限,直到A發(fā)現(xiàn)
特別的,網(wǎng)絡(luò)環(huán)境下遠程認證 遠程登錄,password傳遞形式?加密還是明文
早期的互聯(lián)網(wǎng)協(xié)議,telnet、http、ftp都是明文傳遞 網(wǎng)絡(luò)環(huán)境下口令認證又會帶來新的問題
可以通過設(shè)置一些規(guī)則避免簡單的口令 一種普遍的身份認證方式 因為容易部署、易使用 如何管理passwords
基于口令的身份認證:動態(tài)口令
動態(tài)口令又叫One-time passwords(OTP)
解決的問題:基于口令的身份認證易受重放攻擊,如何避免口令固定被重放?
需要事先共享口令序列,每次認證后更新,當(dāng)前期待的口令與前一個的口令不一樣 如何共享?
要解決這個問題最早的方案是Lamport動態(tài)口令方案
小結(jié)
總結(jié)lamport方案:就是利用哈希函數(shù)的單向性,首先用哈希算法生成一系列的口令共享串,然后把最后一個口令哈希值告訴B,攻擊者即便得到之前的口令,想知道下一次口令不可行,因為哈希函數(shù)的單向性不可行 這個方案比較簡單后面有些系統(tǒng)基于Lamport方案的,但是沒有大規(guī)模使用
動態(tài)口令的安全性分析
安全性: 不能防御預(yù)先播放攻擊(pre-play attack)
在口令更新的時間窗口(常見1分鐘、30秒)還是可以遭受重放攻擊
缺點 使用500-1000次需要reinitialization 開銷不小 不支持雙向認證,無法確認口令提交給了合法的Bob Server
身份認證協(xié)議的分類
弱的身份認證 基于口令、PIN碼等
動態(tài)口令(one time passwords)半強的
強的(基于密碼技術(shù)的)身份認證 質(zhì)詢與應(yīng)答技術(shù)
基于可信第三方的身份認證(不但實現(xiàn)身份認證、還解決密鑰分發(fā)問題)
Needham-Schroeder協(xié)議
Kerberos協(xié)議
身份認證協(xié)議的第二類
強的(基于密碼技術(shù)的)身份認證
質(zhì)詢與應(yīng)答認證技術(shù)
對稱密鑰實現(xiàn)質(zhì)詢與應(yīng)答
公開密鑰實現(xiàn)質(zhì)詢與應(yīng)答
質(zhì)詢與應(yīng)答(Challenge-Response)的基本邏輯
設(shè)B要完成對A的身份認證
身份認證基于A所知道的某個秘密(例如密鑰) 首先B發(fā)給A一個隨機數(shù)(Challenge) A收到這個隨機數(shù)后,對它做某種變換,得到Response報文,并發(fā)送回去 Response同時依賴于隨機數(shù)和A所知道的這個秘密 B收到Response,可以驗證A是知道這個秘密的
在有的協(xié)議中,這個Challenge也稱為Nonce(Number used ONCE)
質(zhì)詢與應(yīng)答** 可能明文傳輸也可能密文傳輸** A生成Response報文的典型變換有: A用密鑰加密,說明A知道這個密鑰 有時會對Challenge簡單運算,比如增一,再做加密處理
質(zhì)詢與應(yīng)答的意義在哪里? 是構(gòu)造更復(fù)雜的交互式認證協(xié)議的基本組件
質(zhì)詢與應(yīng)答的實現(xiàn)方式
使用對稱密鑰秘密體制
①對稱密鑰加密
②報文鑒別碼
使用公開密鑰密碼體制
①數(shù)字簽名
Needham-Schroeder協(xié)議文章來源:http://www.zghlxwxcb.cn/news/detail-431568.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-431568.html
到了這里,關(guān)于信息安全概論復(fù)習(xí)筆記 第九章 身份認證(不是重點,做了解吧)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!