國(guó)際標(biāo)準(zhǔn)化組織ISO對(duì)計(jì)算機(jī)網(wǎng)絡(luò)安全的定義
為數(shù)據(jù)處理系統(tǒng)建立和采用的安全防范技術(shù)当纱,以保護(hù)計(jì)算機(jī)硬件抽兆、軟件和數(shù)據(jù)不因偶然和惡意的原因遭到破壞、更改和泄露
網(wǎng)絡(luò)安全威脅主要表現(xiàn)在
? 非授權(quán)訪問(wèn)
? 信息泄露或丟失
? 破壞數(shù)據(jù)完整性
? 拒絕服務(wù)攻擊DoS
? 利用網(wǎng)絡(luò)傳播病毒等
網(wǎng)絡(luò)安全包括五個(gè)基本要素
? 機(jī)密性
? 完整性
? 可用性
? 可控性
? 可審查性
網(wǎng)絡(luò)安全的分類
根據(jù)安全需求將其分為以下幾個(gè)部分
? 數(shù)據(jù)保密
? 數(shù)據(jù)完整性
? 身份驗(yàn)證
? 授權(quán)
? 不可抵賴和不可否認(rèn)
例如A給B發(fā)過(guò)數(shù)據(jù),因此A不能抵賴和否認(rèn)曾經(jīng)給B發(fā)過(guò)數(shù)據(jù)
根據(jù)解決手段可以分為以下幾個(gè)
? 病毒防范
? 防火墻
? 存取控制(用戶是可以進(jìn)行讀功能送淆、寫功能還是兼?zhèn)渥x寫功能)
? 身份鑒別
? 安全綜合解決方案
? 根據(jù)威脅來(lái)源將其分為網(wǎng)絡(luò)攻擊行為、安全漏洞及惡意代碼等類別
密碼學(xué)
密碼學(xué)包括密碼編碼學(xué)和密碼分析學(xué)
? 密碼編碼學(xué):密碼體制的設(shè)計(jì)學(xué)
? 密碼分析學(xué):在未知密碼的情況下從密文推演出明文的技術(shù)
相關(guān)術(shù)語(yǔ)
明文:信息的原始形式(plianttext怕轿,記為P)
密文:明文加密后的形式(ciphertext偷崩,記為C)
加密:明文變成密文的過(guò)程(encrypt,記為E)撞羽,加密通常是由加密算法實(shí)現(xiàn)的
解密:密文還原成明文的過(guò)程(decrypt阐斜,記為D),解密通常是由解密算法來(lái)實(shí)現(xiàn)的
密鑰:為了有效地控制加密和解密算法的實(shí)現(xiàn)诀紊,在其處理過(guò)程中要有通信雙方掌握的專門信息參與谒出,這種專門信息稱為密鑰(key,記為K)
根據(jù)密鑰的特點(diǎn)邻奠,密碼體制分為
非對(duì)稱密鑰體制和對(duì)稱密鑰體制兩種
1.對(duì)稱密鑰
又稱為傳統(tǒng)密鑰笤喳、秘密密鑰、私鑰加密(由加密和解密雙方秘密保管碌宴,不能讓第三方得到)杀狡、單鑰密鑰加密算法。即信息的發(fā)送方和接收方用一個(gè)密鑰去加密和解密數(shù)據(jù)贰镣。它的最大優(yōu)勢(shì)是加/解密速度快呜象,適合于對(duì)大數(shù)據(jù)量進(jìn)行加密,對(duì)稱加密的一大缺點(diǎn)是密鑰的管理與分配八孝,換句話說(shuō)董朝,如何把密鑰發(fā)送到需要解密你的消息的人的手里是一個(gè)問(wèn)題。在發(fā)送密鑰的過(guò)程中干跛,密鑰有很大的風(fēng)險(xiǎn)會(huì)被黑客們攔截∽咏現(xiàn)實(shí)中通常的做法是將對(duì)稱加密的密鑰進(jìn)行非對(duì)稱加密,然后傳送給需要它的人楼入。對(duì)稱密鑰體制的核心是加密和解密采用相同的密鑰哥捕。保密性僅取決于對(duì)密鑰的保密,而算法是公開的
對(duì)稱密鑰加密算法的執(zhí)行過(guò)程
?只有在發(fā)送方和接收方處才能得到明文嘉熊,在網(wǎng)絡(luò)傳輸?shù)倪^(guò)程中一直是密文的狀態(tài)
替代密碼
將字母a,b,c,d,......,w,x,y,z的自然順序保持不變遥赚,但使之與D,E,F,G,......,X,A,B,C分別對(duì)應(yīng):
密鑰為3
例如:明文caesar cipher對(duì)應(yīng)的密文為FDHVDU FLSKHU
置換密碼
按照某一規(guī)則重新排列消息中的比特或字符的順序,密鑰的目的是對(duì)列編號(hào)
密鑰:CIPHER
順序:145326
舉例:
明文
attack
begins
at two
密文 abaaitcnw tgtetkso
對(duì)稱密鑰加密算法分為兩類:
? 一次只對(duì)明文中的單個(gè)位(或字節(jié))運(yùn)算的算法阐肤,稱為序列算法凫佛、序列密碼或流密碼(stream cipher)
? 對(duì)明文的一組位進(jìn)行運(yùn)算(這些位組稱為分組)讲坎,稱為塊密碼或分組密碼(block cipher)
分組密碼體制
數(shù)據(jù)加密標(biāo)準(zhǔn)DES
DES是世界上第一個(gè)公認(rèn)的實(shí)用密碼算法標(biāo)準(zhǔn),是一種典型的分組加密算法愧薛。加密前晨炕,先對(duì)整個(gè)的明文進(jìn)行分組,每一個(gè)組長(zhǎng)64位毫炉;使用密鑰64位瓮栗,對(duì)每一個(gè)64位分組進(jìn)行加密處理。最后將各組密文串接瞄勾,得出整個(gè)的密文
DES經(jīng)過(guò)總共16輪的替代和換位的變換后费奸,使得密碼分析者無(wú)法獲得該算法一般特性以外更多的信息
新一代加密標(biāo)準(zhǔn)AES
AES是一個(gè)迭代的、對(duì)稱密鑰分組的密碼进陡。算法可以使用128愿阐、192和256位密鑰,并且用128位分組加密和解密數(shù)據(jù)四濒,算法迭代次數(shù)由分組長(zhǎng)度和密鑰長(zhǎng)度共同決定
AES算法在每一輪都采用置換和代替并行地處理整個(gè)數(shù)據(jù)分組换况,這個(gè)分組被編排為一個(gè)稱作狀態(tài)陣列的4x4字節(jié)矩陣。AES算法的加密實(shí)際上就是對(duì)輸入狀態(tài)陣列進(jìn)行一系列運(yùn)算纏身輸出的過(guò)程
2.非對(duì)稱加密算法
公開密鑰體制的方法也叫做非對(duì)稱加密算法盗蟆,需要公開密鑰(public key)和私有密鑰(private key)兩個(gè)密鑰。非對(duì)稱加密為數(shù)據(jù)的加密與解密提供了一個(gè)非常安全的方法舒裤,它使用了一對(duì)密鑰喳资,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管腾供,不能外泄仆邓,而公鑰則可以發(fā)給任何請(qǐng)求它的人。非對(duì)稱加密使用這對(duì)密鑰中的一個(gè)進(jìn)行加密伴鳖,而解密則需要另一個(gè)密鑰节值。公開密鑰(加密密鑰)和非對(duì)稱加密解密算法是公開的,但私有密鑰(解密密鑰)是保密的搞疗,由密鑰的主人妥善保管豌汇。公開密鑰體制中最著名的是RSA算法
比如佛嬉,你向銀行請(qǐng)求公鑰号枕,銀行將公鑰發(fā)給你钝腺,你使用公鑰對(duì)消息加密皿桑,那么只有私鑰的持有人--銀行才能對(duì)你的消息解密沟绪。與對(duì)稱加密不同的是,銀行不需要將私鑰通過(guò)網(wǎng)絡(luò)發(fā)送出去钝凶,因此安全性大大提高。 目前最常用的非對(duì)稱加密算法是RSA算法。公鑰機(jī)制靈活掏湾,但加密和解密速度卻比對(duì)稱密鑰加密慢得多
公開密鑰密碼體制
公開密鑰算法的特點(diǎn):
? 發(fā)送者用加密密鑰PK對(duì)明文X加密后雳窟,在接受者用解密密鑰SK解密誉结,即可恢復(fù)出明文以舒,
或?qū)憺镈SK(EPK(X))= X
? 加密密鑰是公開的,但不能用它來(lái)解密艰赞,即
DPK(EPK(X))≠ X
? 在計(jì)算機(jī)上可容易地產(chǎn)生成對(duì)的PK和SK
? 從已知的PK實(shí)際上不可能推導(dǎo)出SK
? 加密和解密算法都是公開的
雖然非對(duì)稱加密很安全雌澄,但是和對(duì)稱加密比起來(lái)魁莉,它非常的慢睬涧,所以我們還是要用對(duì)稱加密來(lái)傳送消息募胃,但對(duì)稱加密所使用的密鑰我們可以通過(guò)非對(duì)稱加密的方式發(fā)送出去。為了解釋這個(gè)過(guò)程畦浓,請(qǐng)看下面的例子:
(1) Alice需要在銀行的網(wǎng)站做一筆交易痹束,她的瀏覽器首先生成了一個(gè)隨機(jī)數(shù)作為對(duì)稱密鑰。
(2) Alice的瀏覽器向銀行的網(wǎng)站請(qǐng)求公鑰讶请。
(3) 銀行將公鑰發(fā)送給Alice祷嘶。
(4) Alice的瀏覽器使用銀行的公鑰將自己的對(duì)稱密鑰加密。
(5) Alice的瀏覽器將加密后的對(duì)稱密鑰發(fā)送給銀行夺溢。
(6) 銀行使用私鑰解密得到Alice瀏覽器的對(duì)稱密鑰论巍。
(7) Alice與銀行可以使用對(duì)稱密鑰來(lái)對(duì)溝通的內(nèi)容進(jìn)行加密與解密了
數(shù)字簽名和消息認(rèn)證
除了信息的保密之外,如何保證信息的來(lái)源方是真實(shí)的企垦,保證收到的信息的可靠的而沒(méi)有被非法篡改也是非常重要的缚甩。認(rèn)證包括對(duì)用戶身份的認(rèn)證和對(duì)消息正確性的認(rèn)證兩種方式
用戶認(rèn)證用于鑒別用戶的身份是否是合法用戶,可以利用數(shù)字簽名技術(shù)來(lái)實(shí)現(xiàn)的
消息認(rèn)證(又稱報(bào)文鑒別)主要用于驗(yàn)證所受到的消息確實(shí)是來(lái)自真正的發(fā)送方且未被修改的消息肛度,也可以驗(yàn)證消息的順序和及時(shí)性
消息認(rèn)證
用于消息認(rèn)證最常用的是消息認(rèn)證碼(MAC)和散列函數(shù)
消息認(rèn)證碼是在一個(gè)密鑰的控制下將任意長(zhǎng)的消息映射到一個(gè)簡(jiǎn)短的定長(zhǎng)數(shù)據(jù)分組夕春,將它附加在消息后。接受者通過(guò)重新計(jì)算MAC來(lái)對(duì)消息進(jìn)行認(rèn)證
數(shù)字簽名
又稱公鑰數(shù)字簽名荧降,是只有信息的發(fā)送者才能產(chǎn)生的別人無(wú)法偽造的一段數(shù)字串接箫,這段數(shù)字串同時(shí)也是對(duì)信息的發(fā)送者發(fā)送信息真實(shí)性的一個(gè)有效證明。它是一種類似寫在紙上的普通的物理簽名朵诫,但是使用了公鑰加密領(lǐng)域的技術(shù)來(lái)實(shí)現(xiàn)的辛友,用于鑒別數(shù)字信息的方法。一套數(shù)字簽名通常定義兩種互補(bǔ)的運(yùn)算剪返,一個(gè)用于簽名废累,另一個(gè)用于驗(yàn)證。數(shù)字簽名是非對(duì)稱密鑰加密技術(shù)與數(shù)字摘要技術(shù)的應(yīng)用
當(dāng)通信雙方發(fā)生了下列情況時(shí)脱盲,數(shù)字簽名技術(shù)能夠解決引發(fā)的爭(zhēng)端:
否認(rèn):發(fā)送方不承認(rèn)自己發(fā)送過(guò)某一報(bào)文
偽造:接收方自己偽造一份報(bào)文邑滨,并聲稱它來(lái)自發(fā)送方
冒充:網(wǎng)絡(luò)上的某個(gè)用戶冒充另一個(gè)用戶接收或發(fā)送報(bào)文
篡改:接收方對(duì)收到的信息進(jìn)行篡改
每個(gè)人都有一對(duì)“鑰匙”(數(shù)字身份),其中一個(gè)只有她/他本人知道(密鑰)钱反,另一個(gè)公開的(公鑰)掖看。簽名的時(shí)候用密鑰,驗(yàn)證簽名的時(shí)候用公鑰面哥。又因?yàn)槿魏稳硕伎梢月淇盥暦Q她/他就是你哎壳,因此公鑰必須向接受者信任的人(身份認(rèn)證機(jī)構(gòu))來(lái)注冊(cè)。注冊(cè)后身份認(rèn)證機(jī)構(gòu)給你發(fā)一數(shù)字證書尚卫。對(duì)文件簽名后归榕,你把此數(shù)字證書連同文件及簽名一起發(fā)給接受者,接受者向身份認(rèn)證機(jī)構(gòu)求證是否真地是用你的密鑰簽發(fā)的文件
目前應(yīng)用最廣泛的數(shù)字簽名包括
? Hash簽名
? DSS簽名
? RSA簽名
? ELGamal數(shù)字簽名
采用公鑰的數(shù)字簽名
若Alice要抵賴曾發(fā)送報(bào)文給Bob焕毫,Bob可將P及DA(P)出示給第三者蹲坷。第三者很容易證實(shí)Alice確實(shí)發(fā)送X給Bob
如何解決兩個(gè)實(shí)體通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)稱密鑰的共享驶乾?
具有公信力的密鑰分發(fā)中心KDC(Key distribution center)來(lái)作為諸多實(shí)體間的中介
密鑰分發(fā)中心KDC
Alice、Bob需要共享對(duì)稱密鑰
KDC:為每個(gè)注冊(cè)的用戶提供不同的密鑰服務(wù)
Alice循签,Bob在KDC注冊(cè)后獲取了自己的對(duì)稱密鑰级乐,KA-KDC KB-KDC
當(dāng)Alice獲取Bob的公鑰時(shí)(可以從網(wǎng)站、E-mail县匠,甚至軟盤)风科,如何能夠使她相信這就是Bob的公鑰,而不是Trudy的乞旦?
具有公信力的認(rèn)證機(jī)構(gòu)CA(Certification authority)
認(rèn)證機(jī)構(gòu)CA為特定的實(shí)體管理公開密鑰贼穆。實(shí)體(個(gè)人或路由器)可以在CA注冊(cè)公開密鑰
實(shí)體提供“身份證明”給CA,CA創(chuàng)建信任狀給實(shí)體與公開密鑰進(jìn)行綁定兰粉,由CA對(duì)信任狀進(jìn)行數(shù)字簽名
當(dāng)Alice需要Bob的公開密鑰時(shí):
獲取Bob信任狀(從Bob或其他什么地方)故痊,把CA提供的公開密鑰對(duì)Bob的信任狀進(jìn)行認(rèn)證和解碼,從而得到Bob的公開密鑰
?既然是加密玖姑,那肯定是不希望別人知道我的消息愕秫,所以只有我才能解密,所以可得出公鑰負(fù)責(zé)加密焰络,私鑰負(fù)責(zé)解密戴甩;同理,既然是簽名闪彼,那肯定是不希望有人冒充我發(fā)消息甜孤,只有我才能發(fā)布這個(gè)簽名,所以可得出私鑰負(fù)責(zé)簽名畏腕,公鑰負(fù)責(zé)驗(yàn)證
整體過(guò)程
1.鮑勃有兩把鑰匙缴川,一把是公鑰,另一把是私鑰
2.鮑勃把公鑰送給他的朋友們----帕蒂描馅、道格二跋、蘇珊----每人一把
3.蘇珊要給鮑勃寫一封保密的信。她寫完后用鮑勃的公鑰加密流昏,就可以達(dá)到保密的效果
4.鮑勃收信后,用私鑰解密吞获,就看到了信件內(nèi)容况凉。這里要強(qiáng)調(diào)的是,只要鮑勃的私鑰不泄露各拷,這封信就是安全的刁绒,即使落在別人手里,也無(wú)法解密
5.鮑勃給蘇珊回信烤黍,決定采用"數(shù)字簽名"知市。他寫完后先用Hash函數(shù)傻盟,生成信件的摘要(digest)
6.然后,鮑勃使用私鑰嫂丙,對(duì)這個(gè)摘要加密娘赴,生成"數(shù)字簽名"(signature)
7.鮑勃將這個(gè)簽名,附在信件下面跟啤,一起發(fā)給蘇珊
8.蘇珊收信后诽表,取下數(shù)字簽名,用鮑勃的公鑰解密隅肥,得到信件的摘要竿奏。由此證明,這封信確實(shí)是鮑勃發(fā)出的
9.蘇珊再對(duì)信件本身使用Hash函數(shù)腥放,將得到的結(jié)果泛啸,與上一步得到的摘要進(jìn)行對(duì)比。如果兩者一致秃症,就證明這封信未被修改過(guò)
摘要是不能反推出內(nèi)容的候址,但是有些不懷好意的人可能根本不想知道信件的內(nèi)容,他就是想讓你相信內(nèi)容是他發(fā)送的而已伍纫。但是如果摘要需要進(jìn)行加密宗雇,不懷好意的人用他自己的私鑰進(jìn)行加密后,你用真實(shí)發(fā)送方的公鑰是解不開的莹规。所以數(shù)字簽名可以保證內(nèi)容確實(shí)是由發(fā)送方發(fā)送的赔蒲,而且內(nèi)容沒(méi)有被篡改
10.復(fù)雜的情況出現(xiàn)了。道格想欺騙蘇珊良漱,他偷偷使用了蘇珊的電腦舞虱,用自己的公鑰換走了鮑勃的公鑰。此時(shí)母市,蘇珊實(shí)際擁有的是道格的公鑰矾兜,但是還以為這是鮑勃的公鑰。因此患久,道格就可以冒充鮑勃椅寺,用自己的私鑰做成"數(shù)字簽名",寫信給蘇珊蒋失,讓蘇珊用假的鮑勃公鑰進(jìn)行解密
11.后來(lái)返帕,蘇珊感覺(jué)不對(duì)勁,發(fā)現(xiàn)自己無(wú)法確定公鑰是否真的屬于鮑勃篙挽。她想到了一個(gè)辦法荆萤,要求鮑勃去找"證書中心"(certificate authority,簡(jiǎn)稱CA),為公鑰做認(rèn)證链韭。證書中心用自己的私鑰偏竟,對(duì)鮑勃的公鑰和一些相關(guān)信息一起加密,生成"數(shù)字證書"(Digital Certificate)
12.鮑勃拿到數(shù)字證書以后敞峭,就可以放心了踊谋。以后再給蘇珊寫信,只要在簽名的同時(shí)儡陨,再附上數(shù)字證書就行了
13.蘇珊收信后褪子,用CA的公鑰解開數(shù)字證書,就可以拿到鮑勃真實(shí)的公鑰了骗村,然后就能證明"數(shù)字簽名"是否真的是鮑勃簽的
"數(shù)字證書"的實(shí)例
1.首先嫌褪,客戶端向服務(wù)器發(fā)出加密請(qǐng)求
2.服務(wù)器用自己的私鑰加密網(wǎng)頁(yè)以后,連同本身的數(shù)字證書胚股,一起發(fā)送給客戶端
3.客戶端(瀏覽器)的"證書管理器"笼痛,有"受信任的根證書頒發(fā)機(jī)構(gòu)"列表±虐瑁客戶端會(huì)根據(jù)這張列表缨伊,查看解開數(shù)字證書的公鑰是否在列表之內(nèi)
4.如果數(shù)字證書記載的網(wǎng)址,與你正在瀏覽的網(wǎng)址不一致进宝,就說(shuō)明這張證書可能被冒用刻坊,瀏覽器會(huì)發(fā)出警告
5.如果這張數(shù)字證書不是由受信任的機(jī)構(gòu)頒發(fā)的,瀏覽器會(huì)發(fā)出另一種警告
6.如果數(shù)字證書是可靠的党晋,客戶端就可以使用證書中的服務(wù)器公鑰谭胚,對(duì)信息進(jìn)行加密,然后與服務(wù)器交換加密信息