計(jì)算機(jī)安全的核心 :CIA
1.機(jī)密性[防止信息泄露]C
數(shù)據(jù)機(jī)密性
隱私性
2.完整性[防止信息被篡改]I
數(shù)據(jù)完整性
系統(tǒng)完整性
3.可用性[確保資源可用]A
兩個(gè)概念:認(rèn)證性,責(zé)任可追蹤性
OSI安全框架雅任,X.800
1.為了有效評(píng)價(jià)一個(gè)機(jī)構(gòu)的安全需求,并對(duì)各種安全產(chǎn)品和策略進(jìn)行評(píng)估和選擇疑务,負(fù)責(zé)安全的管理員需要以某種系統(tǒng)的方法來(lái)定義安全需求并描述滿(mǎn)足這些需求的措施
2.ITU-T X.800 “Security Architecture for OSI”即OSI安全框架;
提供了一個(gè)定義和提供安全需求的系統(tǒng)化方法;
提供了一個(gè)有用的學(xué)習(xí)研究的概貌。
3.OSI安全框架主要關(guān)注信息安全的三個(gè)方面:
-安全攻擊将宪,security attack
任何危及系統(tǒng)信息安全的活動(dòng)绘闷。
-安全機(jī)制橡庞,security mechanism
用來(lái)保護(hù)系統(tǒng)免受偵聽(tīng)、阻止安全攻擊及恢復(fù)系統(tǒng)的機(jī)制印蔗。
-安全服務(wù)扒最,security service
加強(qiáng)數(shù)據(jù)處理系統(tǒng)和信息傳輸?shù)陌踩缘囊环N服務(wù)。
X.800:為系統(tǒng)協(xié)議層提供的服務(wù)华嘹,用來(lái)保證系統(tǒng)或數(shù)據(jù)的傳輸有足夠的安全性吧趣。
三種主要概念
1.安全攻擊,security attack
任何危及系統(tǒng)信息安全的活動(dòng)耙厚。
2.安全機(jī)制强挫,security mechanism
用來(lái)保護(hù)系統(tǒng)免受偵聽(tīng)、阻止安全攻擊及恢復(fù)系統(tǒng)的機(jī)制薛躬。
3.安全服務(wù)俯渤,security service
加強(qiáng)數(shù)據(jù)處理系統(tǒng)和信息傳輸?shù)陌踩缘囊环N服務(wù)。
三種基本安全服務(wù)
X.800:
為系統(tǒng)協(xié)議層提供的服務(wù)型宝,用來(lái)保證系統(tǒng)或數(shù)據(jù)的傳輸有足夠的安全性八匠。
RFC 2828[Internet Security Glossary ]:
定義:一種由系統(tǒng)提供的對(duì)系統(tǒng)資源進(jìn)行特殊保護(hù)的處理或通信服務(wù);安全服務(wù)通過(guò)安全機(jī)制來(lái)實(shí)現(xiàn)安全策略趴酣。
攻擊認(rèn)證的定義
威脅:威脅是利用脆弱性的潛在危險(xiǎn)
攻擊:有意違反安全服務(wù)和侵犯系統(tǒng)安全策略的智能行為
攻擊的類(lèi)型(X.800和RFC 2828)
?被動(dòng)攻擊:試圖了解或利用系統(tǒng)的信息但不影響系統(tǒng)資源梨树。
?主動(dòng)攻擊:試圖改變系統(tǒng)資源或影響系統(tǒng)運(yùn)作。
兩種不同的認(rèn)證: 實(shí)體認(rèn)證和數(shù)據(jù)源認(rèn)證
密碼體制分兩大類(lèi): (重點(diǎn))
單鑰體制(對(duì)稱(chēng)算法)
K1=K2
雙鑰體制(公鑰算法)
K1?K2
對(duì)稱(chēng)密碼的要求:
一般要求:
1岖寞、加密解密用相同的密鑰
2抡四、收發(fā)雙方必須共享密鑰
安全性要求:
1、密鑰必須保密
2仗谆、沒(méi)有密鑰指巡,解密不可行
3跨释、知道算法和若干密文不足以確定密鑰
密碼學(xué)分組:分組密碼
1.對(duì)稱(chēng)密碼(Symmetric Cipher)
明文
密文
密鑰
加密算法 解密算法 (互逆)
明文按組(含多個(gè)字符)加密。(也稱(chēng)為分組密碼厌处,Block Cipher)
?分組密碼鳖谈,就是一個(gè)明文分組被當(dāng)作一個(gè)整體來(lái)產(chǎn)生一個(gè)等長(zhǎng)(通常)的密文分組的密碼,通常使用的是128位分組大小阔涉。
?分組密碼的實(shí)質(zhì)是缆娃,設(shè)計(jì)一種算法,能在密鑰控制下瑰排,把n比特明文簡(jiǎn)單而又迅速地置換成唯一n比特密文贯要,并且這種變換具可逆性(解密)。
分組密碼設(shè)計(jì)的基本原則:擴(kuò)散混淆
1.擴(kuò)散(diffusion)
將明文及密 鑰的影響盡可能迅速地散布到較多個(gè)輸出的密文中(將明文冗余度分散到密文中)椭住。產(chǎn)生擴(kuò)散的最簡(jiǎn)單方法是通過(guò)“置換(Permutation)”(比如:重新排列字符)崇渗。
2.混淆(confusion)
其目的在于使作用于明文的密鑰和密文之間的關(guān)系復(fù)雜化,是明文和密文之間京郑、密文和密鑰之間的統(tǒng)計(jì)相關(guān)特性極小化宅广,從而使統(tǒng)計(jì)分析攻擊不能奏效。通常的方法是“代換(Substitution)”(回憶愷撒密碼)些举。
AES算法的基本參數(shù):迭代次數(shù)跟狱,密鑰,分組的長(zhǎng)度
1.核心思想:迭代交替地使用代換(S)户魏、置換(P)
2.SPN—代換置換網(wǎng)絡(luò)
3.Feistel
?分組長(zhǎng)度足夠大(128-256比特)
?密鑰量要足夠大(128)
?迭代輪次(16)
?子密鑰產(chǎn)生算法要足夠復(fù)雜
?輪函數(shù)
?快速軟驶臊、硬件實(shí)現(xiàn)
?簡(jiǎn)化分析難度(破譯是困難的,但算法卻簡(jiǎn)潔清晰)
AES算法的基本過(guò)程:四個(gè)步驟
字節(jié)代換
行移位
列混淆
輪密鑰加
分組密碼的工作模式
分組密碼加密固定長(zhǎng)度的數(shù)據(jù)分組,需要使用一些實(shí)際的方法來(lái)加密任意數(shù)量的明文
分組密碼算法是基本構(gòu)件叼丑,如何實(shí)際應(yīng)用需要更多的考慮
五種工作模式:
?電碼本模式(ECB)
相同的明文對(duì)于相同的密文
結(jié)構(gòu)化明文
消息有重復(fù)部分
主要用于發(fā)送少數(shù)量的分組數(shù)據(jù)
?密碼分組鏈接模式(CBC)
?密碼反饋模式(CFB)
?輸出反饋模式(OFB)
?計(jì)數(shù)器模式(CTR)
效率
可并行加密
預(yù)處理
吞吐量?jī)H受可使用并行數(shù)量的限制
加密數(shù)據(jù)塊的隨機(jī)訪問(wèn)
可證明安全
簡(jiǎn)單性(只要求實(shí)現(xiàn)加密算法)
密碼學(xué):公鑰
使用兩個(gè)密鑰:公密鑰关翎、私密鑰
加解密的非對(duì)稱(chēng)性
利用數(shù)論的方法
是對(duì)對(duì)稱(chēng)密碼的重要補(bǔ)充
解決了密鑰交換和數(shù)字簽名基本問(wèn)題
公鑰密碼組成部分
六個(gè)組成部分:
明文,密文:
公鑰鸠信,密鑰纵寝;
加密,解密算法症副;
公鑰密碼體制應(yīng)該滿(mǎn)足哪些要求
一般要求:
1店雅、加密解密算法相同,但使用不同的密鑰
2贞铣、發(fā)送方擁有加密或解密密鑰闹啦,而接收方擁有另一個(gè)密鑰
安全性要求:
1、兩個(gè)密鑰之一必須保密
2辕坝、無(wú)解密密鑰窍奋,解密不可行
3、知道算法和其中一個(gè)密鑰以及若干密文不能確定另一個(gè)密鑰
RSA
加密: C≡Me mod N, where 1<M<N
解密: M≡Cd mod N
公鑰為(e,N)琳袄, 私鑰為(d江场,N)
必須滿(mǎn)足以下條件:
Med ≡ M mod N
計(jì)算Me和Cd是比較容易的
由e和n確定d是不可行的
[(a mod n) × (b mod n)] mod n = (a × b) mod n
RSA算法的密鑰生成過(guò)程
隨機(jī)選擇兩個(gè)不等的大素?cái)?shù) p, q
計(jì)算 N=p.q
注意 ?(N)=(p-1)(q-1)
選擇 e使得1<e<?(N),且gcd(e,?(N))=1
解下列方程求出 d
e.d≡1 mod ?(N) 且 0≤d≤N
公布公鑰: KU={e,N}
保存私鑰: KR={d,N}
RSA算法的基本運(yùn)算方法
RSA的使用
發(fā)送方要加密明文M:
獲得接收方的公鑰 KU={e,N}
計(jì)算: C≡Me mod N, where 0≤M<N
接收方解密密文C:
使用自己的私鑰 KR={d,N}
計(jì)算: M=Cd mod N
注意:M必須比N小
RSA公鑰體制的安全性建立在哪種事實(shí)之上
Diffie-Hellman密鑰交換的安全性建立在如下事實(shí)之上:求關(guān)于素?cái)?shù)的模冪運(yùn)算相對(duì)容易,而計(jì)算離散對(duì)數(shù)問(wèn)題卻非常困難窖逗;對(duì)于大素?cái)?shù)址否,求離散對(duì)數(shù)問(wèn)題被認(rèn)為是計(jì)算不可行的。
EGCD
Hash 與MAC 部分
Hash不是加密解密函數(shù)
Hash 函數(shù)當(dāng)用來(lái)提供消息認(rèn)證功能時(shí)碎紊,hash 函數(shù)值通常被稱(chēng)為消息摘要
HASH 的功能佑附,安全定義
Hash 函數(shù)的定義:
Hash函數(shù)是將任意長(zhǎng)度的報(bào)文映射成一個(gè)較短的定長(zhǎng)輸出報(bào)文的函數(shù).
如下形式: h = H(M), M是變長(zhǎng)的報(bào)文,h是定長(zhǎng)的Hash值.
Hash函數(shù)的目的是為文件、報(bào)文或其它的分組數(shù)據(jù)產(chǎn)生“數(shù)字指紋”.
要求:
單向性
弱抗碰撞性
強(qiáng)抗碰撞性
報(bào)文認(rèn)證碼(MAC)的標(biāo)準(zhǔn)構(gòu)造方法:CMAC,HMAC
認(rèn)證(Authentication)是防止主動(dòng)攻擊的重要技術(shù),對(duì)開(kāi)放系統(tǒng)安全性起到重要作用.
認(rèn)證的主要目的
實(shí)體認(rèn)證(發(fā)送者非冒充)
報(bào)文認(rèn)證(驗(yàn)證信息的完整性)
CMAC—基于分組加密的MAC
CMAC即CBC-MAC
計(jì)算方法:M=M1+M2+…+Mn
C1=E(K,M1)
C2=E(K,[M2+C1])
C3=E(K,[M3+C2])
……
Cn=E(K,[Mn+Cn-1])
Output: T=MSBtlen(Cn)
HMAC--基于hsah函數(shù)的消息認(rèn)證碼
HMAC (RFC 2104)
HMACK = H[(K+ + opad) ||
H[(K+ + ipad)|| M]]
報(bào)文認(rèn)證碼的應(yīng)用
SHA-3的基本操作仗考,基本迭代結(jié)構(gòu)
密鑰交換
數(shù)字簽名的基本概念
數(shù)字簽名是認(rèn)證的重要工具
為什么需要數(shù)字簽名:
報(bào)文認(rèn)證用以保護(hù)雙方之間的數(shù)據(jù)交換不被第三方侵犯音同;但它并不保證雙方自身的相互欺騙。
http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
目標(biāo):防止報(bào)文被偽造秃嗜,用于保證數(shù)據(jù)的完整性
操作:簽名者對(duì)改報(bào)文產(chǎn)生一串公開(kāi)且他人無(wú)法偽造的數(shù)據(jù)串
方法:PKC+Hash
密鑰交換協(xié)議:Diffie-Helfman協(xié)議权均,基本過(guò)程
簡(jiǎn)稱(chēng)DH密鑰交換
DH方法針對(duì)的是以下困難的局面:Alice和Bob 想共有一個(gè)密鑰,用于對(duì)稱(chēng)加密锅锨。但是他們之間的通信渠道是不安全的叽赊。所有經(jīng)過(guò)此渠道的信息均會(huì)被敵對(duì)方:Eve看到。哪他們要如何交換信息橡类,才能不讓Eve知道這個(gè)密鑰呢蛇尚?
以下是DH協(xié)議的方案:
Alice和Bob先對(duì)p 和g達(dá)成一致芽唇,而且公開(kāi)出來(lái)顾画。Eve也就知道它們的值了。
Alice取一個(gè)私密的整數(shù)a匆笤,不讓任何人知道研侣,發(fā)給Bob 計(jì)算結(jié)果:A=ga modp. Eve 也看到了A的值。
類(lèi)似,Bob 取一私密的整數(shù)b,發(fā)給Alice計(jì)算結(jié)果B=gb mod p.同樣Eve也會(huì)看見(jiàn)傳遞的B是什么炮捧。
Alice 計(jì)算出S=B a mod p=(gb)a modp=gabmod p.
Bob 也能計(jì)算出S=Ab mod p=(ga)bmodp=gabmod p.
Alice 和 Bob 現(xiàn)在就擁有了一個(gè)共用的密鑰S.
雖然Eve看見(jiàn)了p,g, A and B, 但是鑒于計(jì)算離散對(duì)數(shù)的困難性庶诡,她無(wú)法知道a和b 的具體值。所以Eve就無(wú)從知曉密鑰S 是什么了咆课。
認(rèn)證系統(tǒng)
證書(shū)的定義末誓,功能,證書(shū)鏈
認(rèn)證中心CA:頒發(fā)和撤銷(xiāo)證書(shū)
PKI的基本概念與功能
PKI=Public Key Infrastructure
公鑰基礎(chǔ)設(shè)施
Public Key Infrastructure:用來(lái)提供可靠易用的公鑰密碼操作的系統(tǒng)的總稱(chēng)书蚪。
主要目標(biāo):保障大型開(kāi)放式網(wǎng)絡(luò)環(huán)境下網(wǎng)絡(luò)和信息系統(tǒng)安全喇澡。
所采用技術(shù):用非對(duì)稱(chēng)密碼學(xué)原理和技術(shù)實(shí)現(xiàn)并提供安全服務(wù)、具有通用性殊校,并遵循國(guó)際標(biāo)準(zhǔn)晴玖。
(kerberos,FIM不考)
認(rèn)證協(xié)議(重點(diǎn))
弱認(rèn)證(基于口令的認(rèn)證)
口令弱
強(qiáng)認(rèn)證(質(zhì)詢(xún)-應(yīng)答協(xié)議)
密鑰強(qiáng)
弱認(rèn)證
口令
用戶(hù)提供一個(gè)口令,計(jì)算機(jī)驗(yàn)證該口令。如果輸入的口令是和該用戶(hù)相對(duì)應(yīng)的口令呕屎,則用戶(hù)的身份得到認(rèn)證让簿,否則,拒絕該口令秀睛,同時(shí)認(rèn)證失敗 尔当。
口令認(rèn)證協(xié)議
Alice:g^x. M^pw
Bob: g^y. N^pw
g, M,N是 Z_q 的生成元
x蹂安,y是隨機(jī)數(shù)居凶,pw是口令,映射成群Z_q上的元
最后雙方得到 g^(xy)
什么是離線(xiàn)字典攻擊
攻擊者可通過(guò)窮舉字典中的口令藤抡,從而猜測(cè)出特定用戶(hù)的口令侠碧。兩個(gè)條件:
1、口令在字典中缠黍;
2弄兜、可以判斷選用的口令是否正確;
強(qiáng)認(rèn)證(以公鑰體制的協(xié)議為主)
密鑰
假設(shè)用戶(hù)U想向系統(tǒng)S認(rèn)證自己瓷式。設(shè)U和S有個(gè)協(xié)商好的秘密函數(shù)f替饿。質(zhì)詢(xún)-應(yīng)答認(rèn)證系統(tǒng)就是這樣一個(gè)系統(tǒng):S發(fā)送一個(gè)隨機(jī)消息m(Challenge)給U,用戶(hù)U回應(yīng)以m的變形r=f(m)(Response)贸典。S通過(guò)獨(dú)立計(jì)算r來(lái)驗(yàn)證r视卢。
(本次以公鑰體制的協(xié)議為主)
如何求乘法逆元(待解決)
Zn 中的任一整數(shù)有乘法逆元,當(dāng)且僅當(dāng)該整數(shù)與n 互素廊驼。
最大公約數(shù)
gcd [a(x), b(x)] = gcd [b(x), a(x)mod b(x)]