數(shù)字簽名及身份認(rèn)證課件_第1頁
數(shù)字簽名及身份認(rèn)證課件_第2頁
數(shù)字簽名及身份認(rèn)證課件_第3頁
數(shù)字簽名及身份認(rèn)證課件_第4頁
數(shù)字簽名及身份認(rèn)證課件_第5頁
已閱讀5頁,還剩111頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第3章數(shù)字簽名和認(rèn)證技術(shù)3.1報文鑒別3.2散列函數(shù)3.3數(shù)字簽名體制3.4身份認(rèn)證技術(shù)3.5身份認(rèn)證的實(shí)現(xiàn)第3章數(shù)字簽名和認(rèn)證技術(shù)3.1報文鑒別13.1報文鑒別信息網(wǎng)絡(luò)安全的威脅來自兩個方面:一方面是被動攻擊,對手通過偵聽和截取等手段獲取數(shù)據(jù);另一方面是主動攻擊,對手通過偽造、重放、篡改、亂序等手段改變數(shù)據(jù)。報文鑒別的方式主要有:1)報文加密函數(shù)。加密整個報文,以報文的密文作為鑒別。2)報文鑒別碼。依賴公開的函數(shù)對報文處理,生成定長的鑒別標(biāo)簽。3)散列函數(shù)。將任意長度的報文變換為定長的報文摘要,并加以鑒別。3.1報文鑒別信息網(wǎng)絡(luò)安全的威脅來自兩個方面23.1.1報文鑒別概述鑒別是驗(yàn)證通信對象是原定的發(fā)送者而不是冒名頂替者的技術(shù)。既,通信的接收方能夠鑒別驗(yàn)證所收到的報文的真?zhèn)巍?、報文源的鑒別接收方使用約定的密鑰(由發(fā)方?jīng)Q定)對收到的密文進(jìn)行解密,并且檢驗(yàn)還原的明文是否正確,根據(jù)檢驗(yàn)結(jié)果就可以驗(yàn)證對方的身份。2、報文宿的鑒別只要將報文源的鑒別方法稍作修改,便可使報文的收方(報文宿)能夠認(rèn)證自己是否是指定的收方。既在將接收方的某種標(biāo)識(如標(biāo)識符、通行字等),加入到報文中。3.1.1報文鑒別概述鑒別是驗(yàn)證通信對象是33、報文時間性的鑒別報文的時間性即指報文的順序性。報文時間性的鑒別是指收方在收到一份報文后,需要確認(rèn)是否保持正確的順序,有無斷漏和重復(fù)。4、報文內(nèi)容的鑒別對報文內(nèi)容進(jìn)行鑒別是十分重要的。報文內(nèi)容的鑒別使收方能夠確認(rèn)報文內(nèi)容是否真實(shí)。3、報文時間性的鑒別4在1992年[RFC1321]公布了MD報文摘要算法的細(xì)節(jié)。這是Rivest(即RSA中的第一個人“R”)提出的第5個版本的MD。此算法可對任意長的報文進(jìn)行運(yùn)算,然后得出128bit的MD代碼。

在1992年[RFC1321]公布了MD報文摘53.2散列函數(shù)散列函數(shù)(Hash)又稱哈希函數(shù),是把任意長度的報文(消息)M通過函數(shù)H變換為一個固定長度的散列碼h,散列函數(shù)表示為h=H(M),它生成報文所獨(dú)有的“指紋”。散列函數(shù)是一種算法,算法輸出的內(nèi)容稱為散列碼(值)或稱報文摘要(也稱數(shù)字摘要)。報文摘要就像該報文的數(shù)字指紋,唯一地對應(yīng)原始報文,如果原始報文改變并且再次通過散列函數(shù),它將生成不同的報文摘要,因此,散列函數(shù)能用來檢測報文的完整性,保證報文從建立開始到收到始終3.2散列函數(shù)6沒有被改變和破壞。運(yùn)行相同算法的接收者應(yīng)該收到相同的報文摘要,否則報文是不可信的。散列函數(shù)是公開的,一般不涉及保密密鑰。少量的密鑰的散列函數(shù)可以作為計算報文的認(rèn)證碼等其他用途,因其有密鑰而具有一定的身份鑒別功能。3.2.1單向散列函數(shù)對于單列函數(shù)h=H(M),函數(shù)H是單向函數(shù),即為單向散列函數(shù)。單向函數(shù):設(shè)函數(shù)y=f(x)

如果不存在這樣一個函數(shù)F(y)=F(f(x))=x

那么f就是一個單項(xiàng)函數(shù)沒有被改變和破壞。運(yùn)行相同算法的接收者應(yīng)該收到相同的報文摘要7單向函數(shù)是進(jìn)行數(shù)據(jù)加密/編碼的一種算法

單向函數(shù)一般用于產(chǎn)生消息摘要,密鑰加密等,常見的有:

MD5(MessageDigestAlgorithm5):是RSA數(shù)據(jù)安全公司開發(fā)的一種單向散列算法,MD5被廣泛使用,可以用來把不同長度的數(shù)據(jù)塊進(jìn)行暗碼運(yùn)算成一個128位的數(shù)值;

SHA(SecureHashAlgorithm)這是一種較新的散列算法,可以對任意長度的數(shù)據(jù)運(yùn)算生成一個160位的數(shù)值;

MAC(MessageAuthenticationCode):消息認(rèn)證代碼,是一種使用密鑰的單向函數(shù),可以用它們在系統(tǒng)上或用戶之間認(rèn)證文件或消息。HMAC(用于消息認(rèn)證的密鑰散列法)就是這種函數(shù)的一個例子。

單向函數(shù)是進(jìn)行數(shù)據(jù)加密/編碼的一種算法

單向函數(shù)一般用于產(chǎn)8CRC(CyclicRedundancyCheck):循環(huán)冗余校驗(yàn)碼,CRC校驗(yàn)由于實(shí)現(xiàn)簡單,檢錯能力強(qiáng),被廣泛使用在各種數(shù)據(jù)校驗(yàn)應(yīng)用中。占用系統(tǒng)資源少,用軟硬件均能實(shí)現(xiàn),是進(jìn)行數(shù)據(jù)傳輸差錯檢測的一種很好的手段(CRC并不是嚴(yán)格意義上的散列算法,但它的作用與散列算法大致相同,所以歸于此類)。單向散列函數(shù)性質(zhì):1)廣泛適用性。函數(shù)H適用于任何大小的數(shù)據(jù)分組。2)碼長固定性。函數(shù)H產(chǎn)生定長輸出,一個短報文的散列與百科全書報文的散列將產(chǎn)生相同長度的散列碼。3)易計算性。對于任何數(shù)據(jù)M,計算H(M)是容易的。4)單向不可逆性。無法根據(jù)散列碼倒推報文,這就是單向函數(shù)的性質(zhì)。CRC(CyclicRedundancyCheck):循95)弱單向性。對于任意給定的數(shù)據(jù)X,要計算出另一個數(shù)據(jù)Y,使H(X)=H(Y),這在計算上是不可行的。6)強(qiáng)單向性。要尋找任何一對數(shù)據(jù)(X,Y),使得H(X)=H(Y),這在計算上是不可行的。5)弱單向性。對于任意給定的數(shù)據(jù)X,要計算出另一個數(shù)據(jù)Y,使103.3數(shù)字簽名體制數(shù)字簽名是通信雙方在網(wǎng)上交換信息用公鑰密碼防止偽造和欺騙的一種身份認(rèn)證。數(shù)字簽名(或稱電子加密)是公開密鑰加密技術(shù)的一種應(yīng)用。其使用方式是:報文的發(fā)送方從報文文本中生成一個128位的散列值(即哈希函數(shù),根據(jù)報文文本而產(chǎn)生的固定長度的單向哈希值。有時這個單向值也叫做報文摘要,與報文的數(shù)字指紋或標(biāo)準(zhǔn)校驗(yàn)相似)。發(fā)送方用自己的專用密鑰對這個散列值進(jìn)行加密來形成發(fā)送方的數(shù)字簽名。然后,這個數(shù)字簽名將作為報文的附件和報文一起發(fā)送給報文的接收方。報文的接收方首先從接收3.3數(shù)字簽名體制11到的原始報文中計算出128位的散列值(或報文摘要),接著再用發(fā)送方的公用密鑰來對報文附加的數(shù)字簽名進(jìn)行解密。如果兩個散列值相同,那么接收方就能確認(rèn)該數(shù)字簽名是發(fā)送方的。通過數(shù)字簽名能夠?qū)崿F(xiàn)對原始報文的鑒別。到的原始報文中計算出128位的散列值(或報文摘要),接著再用12數(shù)字簽名機(jī)制提供了一種鑒別方法,通常用于銀行、電子貿(mào)易方面等,以解決如下問題:(1)偽造:接收者偽造一份文件,聲稱是對方發(fā)送的;(2)抵賴:發(fā)送者或接收者事后不承認(rèn)自己發(fā)送或接收過文件;(3)冒充:網(wǎng)上的某個用戶冒充另一個用戶發(fā)送或接收文件;(4)篡改:接收者對收到的文件進(jìn)行局部的篡改。數(shù)字簽名不同于手寫簽名。數(shù)字簽名隨文本的變化而變化,手寫簽名反映某個人個性特征,是不變的;數(shù)字簽名與文本信息是不可分割的,而手寫簽名是附加在文本之后的,與文本信息是分離的。數(shù)字簽名機(jī)制提供了一種鑒別方法,通常用于銀13數(shù)字簽名技術(shù)應(yīng)滿足的要求消息認(rèn)證的作用是保護(hù)通信雙方以防第三方的攻擊,但是卻不能保護(hù)通信雙方的一方以防另一方的欺騙或偽造。通信雙方之間也可能有多種形式的欺騙,有可能發(fā)生以下欺騙:數(shù)字簽名技術(shù)應(yīng)滿足的要求14(1)B偽造一個消息并使用與A共享的密鑰產(chǎn)生該消息的認(rèn)證碼,然后聲稱該消息來自于A。(2)由于B有可能偽造A發(fā)來的消息,因此A就可以對自己發(fā)過的消息予以否認(rèn)。這兩種欺騙在實(shí)際的網(wǎng)絡(luò)安全中都有可能發(fā)生,例如在電子資金傳輸中,收方增加收到的資金數(shù),并聲稱這一數(shù)目來自發(fā)方。又如用戶通過電子郵件向證券經(jīng)紀(jì)人發(fā)送對某筆業(yè)務(wù)的指令,以后這筆業(yè)務(wù)賠錢了,用戶就可否認(rèn)曾發(fā)過相應(yīng)的指令。因此在收發(fā)雙方未建立起安全的信任關(guān)系且存在利害沖突的情況下,單純的消息認(rèn)證就顯得不夠。數(shù)字簽名技術(shù)則可有效地解決這一問題。(1)B偽造一個消息并使用與A共享的密鑰產(chǎn)生151.數(shù)字簽名應(yīng)具有的性質(zhì)(1)能夠驗(yàn)證簽名產(chǎn)生者的身份,以及產(chǎn)生簽名的日期和時間;(2)能用于證實(shí)被簽消息的內(nèi)容;(3)數(shù)字簽名可由第三方驗(yàn)證,從而能夠解決通信雙方的爭議。1.數(shù)字簽名應(yīng)具有的性質(zhì)16

2.數(shù)字簽名應(yīng)滿足的要求(1)簽名的產(chǎn)生必須使用發(fā)方獨(dú)有的一些信息以防偽造和否認(rèn);(2)簽名的產(chǎn)生應(yīng)較為容易;(3)簽名的識別和驗(yàn)證應(yīng)較為容易;(4)對已知的數(shù)字簽名構(gòu)造一新的消息或?qū)σ阎南?gòu)造一假冒的數(shù)字簽名在計算上都是不可行的。目前已有多種數(shù)字簽名體制,所有這些體制可歸結(jié)為兩類:直接方式的數(shù)字簽名和具有仲裁方式的數(shù)字簽名。2.數(shù)字簽名應(yīng)滿足的要求17直接方式的數(shù)字簽名技術(shù)直接方式的數(shù)字簽名只有通信雙方參與,并假定接收一方知道發(fā)方的公開密鑰。數(shù)字簽名的形成方式可以用發(fā)方的秘鑰加密整個消息或加密消息的雜湊值。如果發(fā)方用收方的公開密鑰(公鑰加密體制)或收發(fā)雙方共享的會話密鑰(單鑰加密體制)對整個消息及其簽名進(jìn)一步加密,那么對消息及其簽名更加提供了保密性。而此時的外部保密方式(即數(shù)字簽名是直接對需要簽名的消息生成而不是對已加密的消息生成,否則稱為內(nèi)部保密方式),則對解決爭議十分重要,因?yàn)樵诘谌教幚頎幾h時,需要得到明文消息及其簽名才行。但如果采用內(nèi)部保密方式,那么,第三方必須在得到消息的解密密鑰后才能得到明文消息。如果采用外部保密方式,那么,接收方就可將明文消息及其數(shù)字簽名存儲下來以備以后萬一出現(xiàn)爭議時使用。直接方式的數(shù)字簽名技術(shù)18直接方式的數(shù)字簽名有一弱點(diǎn),即方案的有效性取決于發(fā)方秘鑰的安全性。如果發(fā)方想對自己已發(fā)出的消息予以否認(rèn),就可聲稱自己的秘鑰已丟失或被盜,認(rèn)為自己的簽名是他人偽造的。對這一弱點(diǎn)可采取某些行政手段,在某種程度上可減弱這種威脅,例如,要求每一被簽的消息都包含有一個時間戳(日期和時間),并要求密鑰丟失后立即向管理機(jī)構(gòu)報告。這種方式的數(shù)字簽名還存在發(fā)方的秘鑰真的被偷的危險,例如敵方在時刻T偷得發(fā)方的秘鑰,然后可偽造一消息,用偷得的秘鑰為其簽名并加上T以前的時刻作為時戳。直接方式的數(shù)字簽名有一弱點(diǎn),即方案的有效性取19具有仲裁方式的數(shù)字簽名技術(shù)上述直接方式的數(shù)字簽名所具有的威脅都可通過使用仲裁者得以解決。和直接方式的數(shù)字簽名一樣,具有仲裁方式的數(shù)字簽名也有很多實(shí)現(xiàn)方案,這些方案都按以下方式運(yùn)行:發(fā)方X對發(fā)往收方Y(jié)的消息簽名后,將消息及其簽名先發(fā)給仲裁者A,A對消息及其簽名驗(yàn)證完后,再連同一個表示已通過驗(yàn)證的指令一起發(fā)往收方Y(jié)。此時由于A的存在,X無法對自己發(fā)出的消息予以否認(rèn)。在這種方式中,仲裁者起著重要的作用并應(yīng)取得所有用戶的信任。

具有仲裁方式的數(shù)字簽名技術(shù)20

3.數(shù)字證書

數(shù)字簽名很重要的機(jī)制是數(shù)字證書(DigitalCertificate,或DigitalID),數(shù)字證書又稱為數(shù)字憑證,是用電子手段來證實(shí)一個用戶的身份和對網(wǎng)絡(luò)資源訪問的權(quán)限。在網(wǎng)上的電子交易中,如雙方出示了各自的數(shù)字憑證,并用它來進(jìn)行交易操作,那么雙方都可不必為對方身份的真?zhèn)螕?dān)心。數(shù)字憑證可用于電子郵件、電子商務(wù)、群件、電子基金轉(zhuǎn)移等各種用途。數(shù)字證書是一個經(jīng)證書授權(quán)中心數(shù)字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件。最簡單的數(shù)字證書包含一個公開密鑰、名稱以及證書授權(quán)中心的數(shù)字簽名。一般情況下,數(shù)字證書中還包括密鑰的有效時間、發(fā)證機(jī)關(guān)(證書授權(quán)中心)的名稱、證書的序列號等信息,證書的格式遵循ITUTX.509國際標(biāo)準(zhǔn)。3.數(shù)字證書211)X.509數(shù)字證書包含的內(nèi)容(1)證書的版本信息;(2)證書的序列號,每個證書都有一個惟一的證書序列號;(3)證書所使用的簽名算法;(4)證書的發(fā)行機(jī)構(gòu)名稱,命名規(guī)則一般采用X.509格式;(5)證書的有效期,現(xiàn)在通用的證書一般采用UTC時間格式,它的計時范圍為1950~2049;(6)證書所有人的名稱,命名規(guī)則一般采用X.509格式;(7)證書所有人的公開密鑰;(8)證書發(fā)行者對證書的簽名。1)X.509數(shù)字證書包含的內(nèi)容222)數(shù)字證書的三種類型(1)個人憑證(PersonalDigitalID)它僅僅為某一個用戶提供憑證,以幫助其個人在網(wǎng)上進(jìn)行安全交易操作。個人身份的數(shù)字憑證通常是安裝在客戶端的瀏覽器內(nèi)的,并通過安全的電子郵件(S/MIME)來進(jìn)行交易操作。(2)企業(yè)(服務(wù)器)憑證(ServerID)它通常為網(wǎng)上的某個Web服務(wù)器提供憑證,擁有Web服務(wù)器的企業(yè)就可以用具有憑證的Web站點(diǎn)(WebSite)來進(jìn)行安全電子交易。有憑證的Web服務(wù)器會自動地將其與客戶端Web瀏覽器通信的信息加密。2)數(shù)字證書的三種類型23(3)軟件(開發(fā)者)憑證(DeveloperID)它通常為因特網(wǎng)中被下載的軟件提供憑證,該憑證用于微軟公司的Authenticode技術(shù)(合法化軟件)中,以使用戶在下載軟件時能獲得所需的信息。上述三類憑證中前兩類是常用的憑證,第三類則用于比較特殊的場合。大部分認(rèn)證中心提供前兩類憑證,能提供各類憑證的認(rèn)證中心并不普遍。(3)軟件(開發(fā)者)憑證(Develope243.3.5數(shù)字簽名的發(fā)展方向數(shù)字簽名作為電子商務(wù)的應(yīng)用技術(shù),越來越得到人們的重視,它涉及的關(guān)鍵技術(shù)也很多,并且很多新的協(xié)議(如網(wǎng)上交易安全協(xié)議SSL、SET協(xié)議)都會設(shè)計數(shù)字簽名。究竟使用哪種算法、哪種Hash函數(shù),以及數(shù)字簽名管理、在通信實(shí)體與可能有的第三方之間使用協(xié)議等等問題都可以作為新的課題。3.3.5數(shù)字簽名的發(fā)展方向253.4身份認(rèn)證技術(shù)認(rèn)證(Authentication)又稱為鑒別、確認(rèn),它是證實(shí)某人或某物是否名副其實(shí)或有效的過程。認(rèn)證是防止主動攻擊的重要技術(shù)。實(shí)際上,網(wǎng)絡(luò)中的通信除需要進(jìn)行消息的認(rèn)證外,還需要建立一些規(guī)范的協(xié)議對數(shù)據(jù)來源的可靠性、通信實(shí)體的真實(shí)性加以認(rèn)證,以防止欺騙、偽裝等攻擊。身份認(rèn)證是通信雙方在實(shí)質(zhì)性數(shù)據(jù)傳輸之前進(jìn)行審查和證實(shí)對方身份的操作。3.4身份認(rèn)證技術(shù)認(rèn)證(Authentication)26認(rèn)證中心(CA,CertificateAuthority)在網(wǎng)絡(luò)通信認(rèn)證技術(shù)中具有特殊的地位。例如,電子商務(wù),認(rèn)證中心是為了從根本上保障電子商務(wù)交易活動順利進(jìn)行而設(shè)立的,主要是解決電子商務(wù)活動中參與各方的身份、資信的認(rèn)定,維護(hù)交易活動的安全。CA是提供身份驗(yàn)證的第三方機(jī)構(gòu),通常由一個或多個用戶信任的組織實(shí)體組成。例如,持卡人(客戶)要與商家通信,持卡人從公開媒體上獲得了商家的公開密鑰,但無法確定商家不是冒充的(有信譽(yù)),于是請求CA對商家認(rèn)證。此時,CA對商家進(jìn)行調(diào)查、驗(yàn)證和鑒別后,將包含商家公鑰的證書傳給持卡人。同樣,商家也可對持卡人進(jìn)行驗(yàn)證,其過程為持卡人→商家;持卡人→CA;CA→商家。證書一般包含擁有者的標(biāo)識名稱和公鑰,并且由CA進(jìn)行數(shù)字簽名。認(rèn)證中心(CA,CertificateA27CA的功能主要有:接收注冊申請、處理、批準(zhǔn)/拒絕請求、頒發(fā)證書。在實(shí)際運(yùn)作中,CA也可由大家都信任的一方擔(dān)當(dāng),例如,在客戶、商家、銀行三角關(guān)系中,客戶使用的是由某個銀行發(fā)的卡,而商家又與此銀行有業(yè)務(wù)關(guān)系(有帳號)。在此情況下,客戶和商家都信任該銀行,可由該銀行擔(dān)當(dāng)CA角色,接收和處理客戶證書和商家證書的驗(yàn)證請求。又例如,對商家自己發(fā)行的購物卡,則可由商家自己擔(dān)當(dāng)CA角色。CA的功能主要有:接收注冊申請、處理、283.2.1相互認(rèn)證技術(shù)A、B兩個用戶在建立共享密鑰時需要考慮的核心問題是保密性和實(shí)時性,為了防止會話密鑰的偽造或泄露,會話密鑰在通信雙方之間交換時應(yīng)以密文形式出現(xiàn),所以通信雙方事先就應(yīng)有密鑰或公開密鑰。第二個問題實(shí)時性則對防止消息的重放攻擊極為重要,實(shí)現(xiàn)實(shí)時性的一種方法是對交換的每一條消息都加上一個序列號,一個新消息僅當(dāng)它有正確的序列號時才被接收。但這種方法的困難性是要求每個用戶分別記錄與其他每一用戶交換的消息的序列號,這樣做,增加了用戶的負(fù)擔(dān),所以序列號方法一般不用于認(rèn)證和密鑰交換。保證信息的實(shí)時性常用以下兩種方法:3.2.1相互認(rèn)證技術(shù)29(1)時間戳如果A收到的消息包括一時間戳,且在A看來這一時間戳充分接近自己的當(dāng)前時刻,A才認(rèn)為收到的消息是新的并接收之。這種方案要求所有各方的時鐘是同步的。(1)時間戳如果A收到的消息包括一時間戳30(2)詢問—應(yīng)答用戶A向B發(fā)出一個一次性隨機(jī)數(shù)作為詢問,如果收到B發(fā)來的消息(應(yīng)答)也包含一正確的一次性隨機(jī)數(shù),A就認(rèn)為B發(fā)來的消息是新的并接收之。其中時間戳法不能用于面向連接的應(yīng)用過程,這是由于時間戳法在實(shí)現(xiàn)時有它的困難性。首先是需要在不同的處理器時鐘之間保持同步,那么所用的協(xié)議必須是容錯的以處理網(wǎng)絡(luò)錯誤,并且是安全的以對付惡意攻擊。第二,如果協(xié)議中任一方的時鐘出現(xiàn)錯誤而暫時地失去了同步,則將使敵方攻擊成功的可能性增加。最后還由于網(wǎng)絡(luò)本身存在著延遲,因此不能期望協(xié)議的各方能保持精確的同步。所以任何基于時間戳的處理過程,協(xié)議等都必須允許同步有一個誤差范圍。考慮到網(wǎng)絡(luò)本身的延遲,誤差范圍應(yīng)足夠大,考慮到可能存在的攻擊,誤差范圍又應(yīng)足夠小。(2)詢問—應(yīng)答用戶A向B發(fā)出一個一次性隨31而詢問—應(yīng)答方式則不適合于無連接的應(yīng)用過程,這是因?yàn)樵跓o連接傳輸以前需經(jīng)詢問—應(yīng)答這一額外的握手過程,與無連接應(yīng)用過程的本質(zhì)特性不符。對無連接的應(yīng)用程序來說,利用某種安全的時間服務(wù)器保持各方時鐘同步是防止重放攻擊的最好的方法。通信雙方建立共享密鑰時可采用單鑰加密體制和公鑰加密體制。而詢問—應(yīng)答方式則不適合于無連接的應(yīng)用過程,323.4.2單向認(rèn)證技術(shù)電子郵件等網(wǎng)絡(luò)應(yīng)用有一個最大的優(yōu)點(diǎn)就是不要求收發(fā)雙方同時在線,發(fā)方將郵件發(fā)往收方的信箱,郵件在信箱中存著,直到收方閱讀時才打開。郵件消息的報頭必須是明文形式以使簡單郵件傳輸協(xié)議(SMTP,SimpleMailTransferProtocol)或X.400等存儲—轉(zhuǎn)發(fā)協(xié)議能夠處理。然而通常都不希望郵件處理協(xié)議要求郵件的消息本身是明文形式,否則就要求用戶對郵件處理機(jī)制的信任。所以用戶在進(jìn)行保密通信時,需對郵件消息進(jìn)行加密以使包括郵件處理系統(tǒng)在內(nèi)的任何第三者都不能讀取郵件的內(nèi)容。再者郵件接收者還希望對郵件的來源即發(fā)方的身份進(jìn)行認(rèn)證,以防他人的假冒。3.4.2單向認(rèn)證技術(shù)333.4.3身份驗(yàn)證技術(shù)1.身份驗(yàn)證概念身份識別(Identification)是指用戶向系統(tǒng)出示自己的身份證明過程。身份認(rèn)證(Authentication)是系統(tǒng)核查用戶的身份證明的過程,實(shí)質(zhì)上是查明用戶是否具有他所請求資源的存儲和使用權(quán)。人們常把身份識別和身份認(rèn)證這兩項(xiàng)工作統(tǒng)稱為身份驗(yàn)證(或身份鑒別),它是判明和確認(rèn)通信雙方真實(shí)身份的兩個重要環(huán)節(jié)。身份認(rèn)證必須做到準(zhǔn)確無二義地將對方辨認(rèn)出來,同時還應(yīng)該提供雙向的認(rèn)證,即相互證明自己的身份。3.4.3身份驗(yàn)證技術(shù)342.單機(jī)狀態(tài)下的身份認(rèn)證1)根據(jù)人的生理特征進(jìn)行身份認(rèn)證這是較早使用的一種方法,它根據(jù)人的生理特征,如指紋、視網(wǎng)膜、聲音等來判別身份。目前同時采用幾種生理特征來驗(yàn)證身份。當(dāng)然,這種方法實(shí)現(xiàn)起來難度很大。2)根據(jù)約定的口令等進(jìn)行身份認(rèn)證雙方共同享有某個秘密,如聯(lián)絡(luò)暗號、UserID和Password等,根據(jù)對方是否知道這個秘密來判斷對方的身份。這種方法最常用且簡單,但安全性不高,因?yàn)槊孛芤坏┬孤?,任何人都可以冒充。此外,目前的操作系統(tǒng)在身份認(rèn)證方面還存在另一個弊端,被稱為“有志者事‘盡’成”系統(tǒng),操作者可以反復(fù)地試猜。2.單機(jī)狀態(tài)下的身份認(rèn)證353)用硬件設(shè)備進(jìn)行身份認(rèn)證服務(wù)器方通過采用硬件設(shè)備如編碼器,隨機(jī)產(chǎn)生一些數(shù)據(jù)并要求客戶輸入這些數(shù)據(jù),經(jīng)過編碼發(fā)生器變換后產(chǎn)生的結(jié)果,與服務(wù)器擁有的編碼發(fā)生器產(chǎn)生的結(jié)果比較,判斷是否正確。這種方法也成為一次性口令/密碼,只有對方獲得該硬件才可能進(jìn)行假冒。目前使用較多的“智能加密卡”是制造商為用戶提供的數(shù)字證明卡,它顯示的號碼是由時日、密碼、加密算法3項(xiàng)確定,作為用戶向系統(tǒng)出示的身份證明。這種方法可以持續(xù)較長的時間,具有使用靈活、存儲信息多等特點(diǎn)。智能加密卡簡稱智能卡,是一種嵌有CPU處理器如信用卡大小的塑料卡,它與通信網(wǎng)絡(luò)結(jié)合,可執(zhí)行多種功能。實(shí)際上,3)用硬件設(shè)備進(jìn)行身份認(rèn)證36它是密鑰的一種載體,由授權(quán)用戶持有,用戶賦予它一個口令或密碼。該密碼與網(wǎng)絡(luò)服務(wù)器上注冊的密碼相同。綜上,目前,在計算機(jī)及網(wǎng)絡(luò)系統(tǒng)中常用的身份認(rèn)證方式主要有:口令核對IC卡認(rèn)證動態(tài)口令生物特征認(rèn)證USBKey認(rèn)證身份的零知識證明它是密鑰的一種載體,由授權(quán)用戶持有,用戶賦予它一個口令或密碼37

3.網(wǎng)絡(luò)環(huán)境下的身份認(rèn)證網(wǎng)絡(luò)環(huán)境下的身份認(rèn)證較為復(fù)雜,主要是考慮靠驗(yàn)證身份的雙方一般都是通過網(wǎng)絡(luò)而非直接交互,想根據(jù)指紋等手段就無法實(shí)現(xiàn)。同時,大量的黑客隨時隨地都可以嘗試向網(wǎng)絡(luò)滲透,截獲合法用戶口令冒名頂替以合法身份入網(wǎng)。所以,目前一般采用的是基于對稱密鑰加密或公開密鑰加密的方法,采用高強(qiáng)度的密碼技術(shù)來進(jìn)行身份認(rèn)證。對TCP/IP網(wǎng)絡(luò)計算機(jī)系統(tǒng)的攻擊常常是監(jiān)聽網(wǎng)絡(luò)信息,獲得登陸用的帳號和口令。被俘獲的帳號和口令用于以后對系統(tǒng)的攻擊。S/Key是一個一次性口令系統(tǒng),用來對付這種攻擊。使用S/Key系統(tǒng)時,傳送的口令只使用一次后即無效。用戶使用的源口令不會在網(wǎng)絡(luò)上傳輸,包括登陸或其他需要口令(如SU等)的時候。3.網(wǎng)絡(luò)環(huán)境下的身份認(rèn)證38在使用S/Key系統(tǒng)時有兩方面的操作。在客戶方,必須有手段產(chǎn)生正確的一次性口令。在服務(wù)主機(jī)方,必須能夠驗(yàn)證該一次性口令的有效性,并能夠讓用戶安全地修改源口令。一般的S/Key系統(tǒng)是基于一些不可逆算法的(如MD4和MD5),也就是說這一類算法如果擁有源數(shù)據(jù),正向計算出結(jié)果速度很快。但如果沒有源數(shù)據(jù)而試圖反向計算出源數(shù)據(jù),目前來看則基本上是不可能的。在使用S/Key系統(tǒng)時有兩方面的操作。在客戶393.2.4身份認(rèn)證系統(tǒng)實(shí)例——Kerberos系統(tǒng)

1.Kerberos系統(tǒng)介紹

Kerberos系統(tǒng)是美國麻省理工學(xué)院為Athena工程而設(shè)計的,為分布式計算環(huán)境提供一種對用戶雙方進(jìn)行驗(yàn)證的認(rèn)證方法,它是基于對稱密鑰的身份認(rèn)證系統(tǒng)。在該環(huán)境中,機(jī)器屬于不同的組織,用戶對機(jī)器擁有完全的控制權(quán)。因此,用戶對于每一個他所希望的服務(wù),必須提供身份證明。同時,服務(wù)器也必須證明自己的身份,故網(wǎng)絡(luò)上其它的機(jī)器可以偽裝成服務(wù)器而騙取用戶信息。3.2.4身份認(rèn)證系統(tǒng)實(shí)例——Kerberos系統(tǒng)40

2.Kerberos系統(tǒng)組成Kerberos系統(tǒng)提供的認(rèn)證服務(wù)由三個重要部件組成:中心數(shù)據(jù)庫、安全服務(wù)器和Ticket分配器(TGS)。這三個部件都安裝在網(wǎng)絡(luò)中相對安全的主機(jī)上。其中,中心數(shù)據(jù)庫是安全服務(wù)的關(guān)鍵部分,在庫中存有安全系統(tǒng)的安全信息,包括用戶注冊名及相關(guān)口令、網(wǎng)上所有工作站和服務(wù)器的網(wǎng)絡(luò)地址、服務(wù)器密鑰及存取控制表等。2.Kerberos系統(tǒng)組成411)中心數(shù)據(jù)庫中心數(shù)據(jù)庫由KDC(密鑰分發(fā)中心)進(jìn)行維護(hù)。該數(shù)據(jù)庫中包括有內(nèi)部網(wǎng)絡(luò)系統(tǒng)中每個用戶的帳戶信息。這一信息是由企業(yè)的安全管理員錄入到數(shù)據(jù)庫中的,它包括用戶的帳號(即登錄帳號)和密碼。所有內(nèi)部網(wǎng)絡(luò)中的服務(wù)器和用戶在安全數(shù)據(jù)庫中均有帳戶。1)中心數(shù)據(jù)庫422)安全服務(wù)器即認(rèn)證服務(wù)器當(dāng)一個用戶登錄到企業(yè)內(nèi)部網(wǎng)絡(luò)中并且請求訪問內(nèi)部網(wǎng)絡(luò)服務(wù)器時,認(rèn)證服務(wù)器根據(jù)中心數(shù)據(jù)庫中存儲的用戶密碼生成一個DES加密密鑰來對一個Ticket(憑證或入場券)進(jìn)行加密。這個Ticket包含有用戶將要對傳送給應(yīng)用服務(wù)器的信息進(jìn)行加密所使用的新的DES加密密鑰。Ticket中同時也包括了基于應(yīng)用服務(wù)器產(chǎn)生的階段性加密密鑰,客戶方使用這個Ticket來向應(yīng)用服務(wù)器證實(shí)自己的身份。2)安全服務(wù)器即認(rèn)證服務(wù)器433)Ticket分配服務(wù)器(TGS)當(dāng)用戶進(jìn)程欲訪問某個服務(wù)器時,TGS通過查找數(shù)據(jù)庫中的存取表,來確認(rèn)該用戶已被授權(quán)使用該服務(wù)器,這時TGS將會把與該服務(wù)器相連的密鑰和加密后的Ticket分給該用戶和服務(wù)器。用戶若要訪問采用Kerberos身份認(rèn)證服務(wù)的內(nèi)部網(wǎng)絡(luò)中的應(yīng)用服務(wù)器,則必須在KDC中進(jìn)行登記;一旦用戶進(jìn)行了登記,KDC可以為用戶向整個企業(yè)網(wǎng)絡(luò)中的任何應(yīng)用服務(wù)器提供身份驗(yàn)證服務(wù)。用戶只需要登錄一次就可以安全地訪問網(wǎng)絡(luò)中所有安全信息。這種登錄的過程提供了在用戶和應(yīng)用服務(wù)之間相互認(rèn)證,雙方都可能確認(rèn)對方的身份。3)Ticket分配服務(wù)器(TGS)44

3.Kerberos系統(tǒng)的認(rèn)證過程有人曾把Kerberos的工作過程形象地比喻為到售票處購買入場券以及到電影院看電影的過程。作為一個觀眾,如果希望看某一場電影,則先要到售票處購買入場券,在購買入場券時,觀眾需要說明所希望的場次。在得到希望的入場券后,觀眾需要到檢票口檢票。檢票口人員在證實(shí)入場券合法后,觀眾就可以入場欣賞電影了。Kerberos系統(tǒng)和看電影的過程不一樣的地方是,只是事先在Kerberos系統(tǒng)中登錄的客戶才可以申請服務(wù),并且Kerberos要求申請到入場券的客戶就是到TGS去要求得到最終服務(wù)的客戶。另外,在客戶和服務(wù)器間通信時,需要進(jìn)行數(shù)據(jù)的加密,從而需要為客戶和服務(wù)器的對話產(chǎn)生一個臨時的密鑰。3.Kerberos系統(tǒng)的認(rèn)證過程453.5數(shù)字簽名標(biāo)準(zhǔn)及數(shù)字簽名算法3.5.1數(shù)字簽名算法DSS首先將DSS與RSA的簽名方式作一比較。RSA算法既能用于加密和簽名,又能用于密鑰交換。與此不同,DSS使用的算法只能提供數(shù)字簽名功能。采用RSA簽名時,將消息輸入到一個散列函數(shù)以產(chǎn)生一個固定長度的安全散列值,再用發(fā)方的秘鑰加密散列值就形成了對消息的簽名。消息及其簽名被一起發(fā)給收方,收方得到消息后再產(chǎn)生出消息的散列值,且使用發(fā)方的公鑰對收到的簽名解密。這樣收方就得到了兩個散列值,如果兩個散列值是一樣的,則認(rèn)為收到的簽名是有效的。3.5數(shù)字簽名標(biāo)準(zhǔn)及數(shù)字簽名算法3.5.1數(shù)字簽名算46DSS簽名也利用一散列函數(shù)產(chǎn)生消息的一個散列值,散列值連同一隨機(jī)數(shù)k一起作為簽名函數(shù)(Sig)的輸入,簽名函數(shù)還需使用發(fā)方的秘鑰SkA和供所有用戶使用的一族參數(shù),稱這一族參數(shù)為全局公鑰PkG。簽名函數(shù)的兩個輸出s和r就構(gòu)成了消息的簽名(s,r)。接收方收到消息后再產(chǎn)生出消息的散列值,將散列值與收到的簽名一起輸入到驗(yàn)證函數(shù)(Ver),驗(yàn)證函數(shù)還需輸入全局公鑰PkG和發(fā)方的公鑰PkA。驗(yàn)證函數(shù)的輸出結(jié)果與收到的簽名成分r相等,則驗(yàn)證了簽名是有效的。DSS簽名也利用一散列函數(shù)產(chǎn)生消息的一個散列473.5.2數(shù)字簽名算法DSADSA是在EIGamal和Schnorr兩個簽名方案的基礎(chǔ)上設(shè)計的,其安全性基于求離散對數(shù)的困難性。算法描述如下:(1)全局公鑰。

p:滿足2L-1<p<2L的大素數(shù),其中512≤L≤1024,且L是64的倍數(shù);

q:p-1的素因子,滿足2159<q<2160,即q長為160bit。

g:g=h(p-1)/qmodp,其中h是滿足1<h<p-1,且使得h(p-1)/qmodp>1的任一整數(shù)。3.5.2數(shù)字簽名算法DSA48(2)用戶秘密x是滿足0<x<q的隨機(jī)數(shù)或偽隨機(jī)數(shù)。(3)用戶的公鑰y=gxmodp。(4)用戶為待簽消息選取的秘密數(shù)k是滿足0<k<q的隨機(jī)數(shù)或偽隨機(jī)數(shù)。(5)簽名過程。用戶對消息m的簽名為(r,s),其中r=(gkmodp)modq,s=[k-1(H(m+xr)]modq

H(m)是由SHA求出的散列值。(2)用戶秘密x是滿足0<x<q493.5.3數(shù)字簽名算法HASHHASH函數(shù)與加密函數(shù)類似。事實(shí)上有些HASH函數(shù)就是稍加修改的加密函數(shù)。大多數(shù)函數(shù)的做法是每次取一個數(shù)據(jù)塊,對數(shù)據(jù)塊的每一位用一個簡單的編碼函數(shù)進(jìn)行編碼。HASH算法的工作方式類似通信協(xié)議中的校驗(yàn)和(checksum),即發(fā)信方將一個數(shù)據(jù)包的所有字節(jié)加起來,將和添加在包上。收信方執(zhí)行同樣的運(yùn)算并比較兩個和,以決定是否被正確地傳輸。3.5.3數(shù)字簽名算法HASH50校驗(yàn)算法的主要作用是根據(jù)報文內(nèi)容通過單向的HASH算法計算出一個校驗(yàn)來,如果報文被改動或增減,則無法根據(jù)同樣的算法算出相同的校驗(yàn)來。一般在實(shí)際應(yīng)用中,對于只有數(shù)據(jù)完整性要求的數(shù)據(jù)只對其校驗(yàn)進(jìn)行加密就可以了,這樣能夠大大減少數(shù)據(jù)加密的工作量。

校驗(yàn)算法的主要作用是根據(jù)報文內(nèi)容通過單向的H513.5.4數(shù)字簽名算法RSARSA是最流行的一種加密標(biāo)準(zhǔn),是由Rivest、Shamir和Adleman三人共同設(shè)計,許多產(chǎn)品的內(nèi)核都有RSA的軟件和類庫。RSA簽名采用公開密鑰算法,生成一對公鑰和私鑰,信息發(fā)送需要用發(fā)送者私人密鑰加密信息,即簽名;信息的接收者利用信息發(fā)送者的公鑰對簽名信息解密,以提高網(wǎng)絡(luò)運(yùn)行效率。RSA簽名也不存在HASH簽名的局限性。3.5.4數(shù)字簽名算法RSA52這里要特別注意,為了克服RSA的密鑰過長、加密速度慢的缺點(diǎn),可采用DES(DataEncryptionStandard)進(jìn)行明文加密,RSA用于DES密鑰的加密。例如,美國的保密增強(qiáng)郵件(PEM)就是采用了RSA和DES結(jié)合的方法,目前已成為Email保密通信標(biāo)準(zhǔn)。這里要特別注意,為了克服RSA的密鑰過長、533.6其它數(shù)字簽名體制3.6.1基于離散對數(shù)問題的數(shù)字簽名體制基于離散對數(shù)問題的數(shù)字簽名體制是數(shù)字簽名體制中最為常用的一類,其中包括EIGamal簽名體制、DSA簽名體制、Okamoto簽名體制等。3.6其它數(shù)字簽名體制3.6.1基于離散對數(shù)問題的數(shù)54

1.離散對數(shù)簽名體制EIGamal、DSA、Okamoto等簽名體制都可以歸結(jié)為離散對數(shù)簽名體制的特例。體制參數(shù):

p:大素數(shù);

q:p-1或p-1的大素因子;

g:g∈RZp*,且gq≡1(modp),其中g(shù)∈RZ*p表示g是從Z*p中隨機(jī)選取的;

x:用戶A的密鑰,1<x<q;

y:用戶A的公鑰,y=gx(modp)。1.離散對數(shù)簽名體制553.6.2基于大數(shù)分解問題的簽名體制設(shè)n是一個大合數(shù),找出n的所有素因子是一個困難問題,稱之為大數(shù)分解問題。下面介紹的兩個數(shù)字簽名體制都基于這個問題的困難性。屬于此類體制的有:

1.Fiat-Shamir簽名體制2.Guillou-Quisquater簽名體制

3.6.2基于大數(shù)分解問題的簽名體制563.7數(shù)字證明技術(shù)公開密鑰的證明有時也稱作“數(shù)字ID”、“數(shù)字證明”或“數(shù)字護(hù)照”。如果甲和乙通過Internet獲得各自的公開密鑰,他們需要對這些密鑰進(jìn)行認(rèn)證。甲不能簡單地向乙詢問其公開密鑰,因?yàn)樵诰W(wǎng)絡(luò)上可能存在第三者截獲甲的請求,并發(fā)送它自己的公開密鑰,因此,第三者可以閱讀甲傳送給乙的所有消息。3.7數(shù)字證明技術(shù)公開密鑰的證明有時也稱57因此,需要一個第三方的認(rèn)證機(jī)構(gòu)(CA),使甲即使是通過不安全的渠道,也能夠借助它可靠地獲取乙的公共密鑰。CA為乙的公開密鑰生成一個證書(也稱數(shù)字簽名)。任何人都可以獲得乙的公開密鑰,并利用該證書作為驗(yàn)證公開密鑰的根據(jù)。在網(wǎng)絡(luò)上,證明的作用就像公民的護(hù)照、司機(jī)的駕駛執(zhí)照、學(xué)生的?;铡>W(wǎng)上的某些服務(wù)僅對持有證明的用戶提供服務(wù)。因此,需要一個第三方的認(rèn)證機(jī)構(gòu)(CA),使甲58第3章數(shù)字簽名和認(rèn)證技術(shù)3.1報文鑒別3.2散列函數(shù)3.3數(shù)字簽名體制3.4身份認(rèn)證技術(shù)3.5身份認(rèn)證的實(shí)現(xiàn)第3章數(shù)字簽名和認(rèn)證技術(shù)3.1報文鑒別593.1報文鑒別信息網(wǎng)絡(luò)安全的威脅來自兩個方面:一方面是被動攻擊,對手通過偵聽和截取等手段獲取數(shù)據(jù);另一方面是主動攻擊,對手通過偽造、重放、篡改、亂序等手段改變數(shù)據(jù)。報文鑒別的方式主要有:1)報文加密函數(shù)。加密整個報文,以報文的密文作為鑒別。2)報文鑒別碼。依賴公開的函數(shù)對報文處理,生成定長的鑒別標(biāo)簽。3)散列函數(shù)。將任意長度的報文變換為定長的報文摘要,并加以鑒別。3.1報文鑒別信息網(wǎng)絡(luò)安全的威脅來自兩個方面603.1.1報文鑒別概述鑒別是驗(yàn)證通信對象是原定的發(fā)送者而不是冒名頂替者的技術(shù)。既,通信的接收方能夠鑒別驗(yàn)證所收到的報文的真?zhèn)巍?、報文源的鑒別接收方使用約定的密鑰(由發(fā)方?jīng)Q定)對收到的密文進(jìn)行解密,并且檢驗(yàn)還原的明文是否正確,根據(jù)檢驗(yàn)結(jié)果就可以驗(yàn)證對方的身份。2、報文宿的鑒別只要將報文源的鑒別方法稍作修改,便可使報文的收方(報文宿)能夠認(rèn)證自己是否是指定的收方。既在將接收方的某種標(biāo)識(如標(biāo)識符、通行字等),加入到報文中。3.1.1報文鑒別概述鑒別是驗(yàn)證通信對象是613、報文時間性的鑒別報文的時間性即指報文的順序性。報文時間性的鑒別是指收方在收到一份報文后,需要確認(rèn)是否保持正確的順序,有無斷漏和重復(fù)。4、報文內(nèi)容的鑒別對報文內(nèi)容進(jìn)行鑒別是十分重要的。報文內(nèi)容的鑒別使收方能夠確認(rèn)報文內(nèi)容是否真實(shí)。3、報文時間性的鑒別62在1992年[RFC1321]公布了MD報文摘要算法的細(xì)節(jié)。這是Rivest(即RSA中的第一個人“R”)提出的第5個版本的MD。此算法可對任意長的報文進(jìn)行運(yùn)算,然后得出128bit的MD代碼。

在1992年[RFC1321]公布了MD報文摘633.2散列函數(shù)散列函數(shù)(Hash)又稱哈希函數(shù),是把任意長度的報文(消息)M通過函數(shù)H變換為一個固定長度的散列碼h,散列函數(shù)表示為h=H(M),它生成報文所獨(dú)有的“指紋”。散列函數(shù)是一種算法,算法輸出的內(nèi)容稱為散列碼(值)或稱報文摘要(也稱數(shù)字摘要)。報文摘要就像該報文的數(shù)字指紋,唯一地對應(yīng)原始報文,如果原始報文改變并且再次通過散列函數(shù),它將生成不同的報文摘要,因此,散列函數(shù)能用來檢測報文的完整性,保證報文從建立開始到收到始終3.2散列函數(shù)64沒有被改變和破壞。運(yùn)行相同算法的接收者應(yīng)該收到相同的報文摘要,否則報文是不可信的。散列函數(shù)是公開的,一般不涉及保密密鑰。少量的密鑰的散列函數(shù)可以作為計算報文的認(rèn)證碼等其他用途,因其有密鑰而具有一定的身份鑒別功能。3.2.1單向散列函數(shù)對于單列函數(shù)h=H(M),函數(shù)H是單向函數(shù),即為單向散列函數(shù)。單向函數(shù):設(shè)函數(shù)y=f(x)

如果不存在這樣一個函數(shù)F(y)=F(f(x))=x

那么f就是一個單項(xiàng)函數(shù)沒有被改變和破壞。運(yùn)行相同算法的接收者應(yīng)該收到相同的報文摘要65單向函數(shù)是進(jìn)行數(shù)據(jù)加密/編碼的一種算法

單向函數(shù)一般用于產(chǎn)生消息摘要,密鑰加密等,常見的有:

MD5(MessageDigestAlgorithm5):是RSA數(shù)據(jù)安全公司開發(fā)的一種單向散列算法,MD5被廣泛使用,可以用來把不同長度的數(shù)據(jù)塊進(jìn)行暗碼運(yùn)算成一個128位的數(shù)值;

SHA(SecureHashAlgorithm)這是一種較新的散列算法,可以對任意長度的數(shù)據(jù)運(yùn)算生成一個160位的數(shù)值;

MAC(MessageAuthenticationCode):消息認(rèn)證代碼,是一種使用密鑰的單向函數(shù),可以用它們在系統(tǒng)上或用戶之間認(rèn)證文件或消息。HMAC(用于消息認(rèn)證的密鑰散列法)就是這種函數(shù)的一個例子。

單向函數(shù)是進(jìn)行數(shù)據(jù)加密/編碼的一種算法

單向函數(shù)一般用于產(chǎn)66CRC(CyclicRedundancyCheck):循環(huán)冗余校驗(yàn)碼,CRC校驗(yàn)由于實(shí)現(xiàn)簡單,檢錯能力強(qiáng),被廣泛使用在各種數(shù)據(jù)校驗(yàn)應(yīng)用中。占用系統(tǒng)資源少,用軟硬件均能實(shí)現(xiàn),是進(jìn)行數(shù)據(jù)傳輸差錯檢測的一種很好的手段(CRC并不是嚴(yán)格意義上的散列算法,但它的作用與散列算法大致相同,所以歸于此類)。單向散列函數(shù)性質(zhì):1)廣泛適用性。函數(shù)H適用于任何大小的數(shù)據(jù)分組。2)碼長固定性。函數(shù)H產(chǎn)生定長輸出,一個短報文的散列與百科全書報文的散列將產(chǎn)生相同長度的散列碼。3)易計算性。對于任何數(shù)據(jù)M,計算H(M)是容易的。4)單向不可逆性。無法根據(jù)散列碼倒推報文,這就是單向函數(shù)的性質(zhì)。CRC(CyclicRedundancyCheck):循675)弱單向性。對于任意給定的數(shù)據(jù)X,要計算出另一個數(shù)據(jù)Y,使H(X)=H(Y),這在計算上是不可行的。6)強(qiáng)單向性。要尋找任何一對數(shù)據(jù)(X,Y),使得H(X)=H(Y),這在計算上是不可行的。5)弱單向性。對于任意給定的數(shù)據(jù)X,要計算出另一個數(shù)據(jù)Y,使683.3數(shù)字簽名體制數(shù)字簽名是通信雙方在網(wǎng)上交換信息用公鑰密碼防止偽造和欺騙的一種身份認(rèn)證。數(shù)字簽名(或稱電子加密)是公開密鑰加密技術(shù)的一種應(yīng)用。其使用方式是:報文的發(fā)送方從報文文本中生成一個128位的散列值(即哈希函數(shù),根據(jù)報文文本而產(chǎn)生的固定長度的單向哈希值。有時這個單向值也叫做報文摘要,與報文的數(shù)字指紋或標(biāo)準(zhǔn)校驗(yàn)相似)。發(fā)送方用自己的專用密鑰對這個散列值進(jìn)行加密來形成發(fā)送方的數(shù)字簽名。然后,這個數(shù)字簽名將作為報文的附件和報文一起發(fā)送給報文的接收方。報文的接收方首先從接收3.3數(shù)字簽名體制69到的原始報文中計算出128位的散列值(或報文摘要),接著再用發(fā)送方的公用密鑰來對報文附加的數(shù)字簽名進(jìn)行解密。如果兩個散列值相同,那么接收方就能確認(rèn)該數(shù)字簽名是發(fā)送方的。通過數(shù)字簽名能夠?qū)崿F(xiàn)對原始報文的鑒別。到的原始報文中計算出128位的散列值(或報文摘要),接著再用70數(shù)字簽名機(jī)制提供了一種鑒別方法,通常用于銀行、電子貿(mào)易方面等,以解決如下問題:(1)偽造:接收者偽造一份文件,聲稱是對方發(fā)送的;(2)抵賴:發(fā)送者或接收者事后不承認(rèn)自己發(fā)送或接收過文件;(3)冒充:網(wǎng)上的某個用戶冒充另一個用戶發(fā)送或接收文件;(4)篡改:接收者對收到的文件進(jìn)行局部的篡改。數(shù)字簽名不同于手寫簽名。數(shù)字簽名隨文本的變化而變化,手寫簽名反映某個人個性特征,是不變的;數(shù)字簽名與文本信息是不可分割的,而手寫簽名是附加在文本之后的,與文本信息是分離的。數(shù)字簽名機(jī)制提供了一種鑒別方法,通常用于銀71數(shù)字簽名技術(shù)應(yīng)滿足的要求消息認(rèn)證的作用是保護(hù)通信雙方以防第三方的攻擊,但是卻不能保護(hù)通信雙方的一方以防另一方的欺騙或偽造。通信雙方之間也可能有多種形式的欺騙,有可能發(fā)生以下欺騙:數(shù)字簽名技術(shù)應(yīng)滿足的要求72(1)B偽造一個消息并使用與A共享的密鑰產(chǎn)生該消息的認(rèn)證碼,然后聲稱該消息來自于A。(2)由于B有可能偽造A發(fā)來的消息,因此A就可以對自己發(fā)過的消息予以否認(rèn)。這兩種欺騙在實(shí)際的網(wǎng)絡(luò)安全中都有可能發(fā)生,例如在電子資金傳輸中,收方增加收到的資金數(shù),并聲稱這一數(shù)目來自發(fā)方。又如用戶通過電子郵件向證券經(jīng)紀(jì)人發(fā)送對某筆業(yè)務(wù)的指令,以后這筆業(yè)務(wù)賠錢了,用戶就可否認(rèn)曾發(fā)過相應(yīng)的指令。因此在收發(fā)雙方未建立起安全的信任關(guān)系且存在利害沖突的情況下,單純的消息認(rèn)證就顯得不夠。數(shù)字簽名技術(shù)則可有效地解決這一問題。(1)B偽造一個消息并使用與A共享的密鑰產(chǎn)生731.數(shù)字簽名應(yīng)具有的性質(zhì)(1)能夠驗(yàn)證簽名產(chǎn)生者的身份,以及產(chǎn)生簽名的日期和時間;(2)能用于證實(shí)被簽消息的內(nèi)容;(3)數(shù)字簽名可由第三方驗(yàn)證,從而能夠解決通信雙方的爭議。1.數(shù)字簽名應(yīng)具有的性質(zhì)74

2.數(shù)字簽名應(yīng)滿足的要求(1)簽名的產(chǎn)生必須使用發(fā)方獨(dú)有的一些信息以防偽造和否認(rèn);(2)簽名的產(chǎn)生應(yīng)較為容易;(3)簽名的識別和驗(yàn)證應(yīng)較為容易;(4)對已知的數(shù)字簽名構(gòu)造一新的消息或?qū)σ阎南?gòu)造一假冒的數(shù)字簽名在計算上都是不可行的。目前已有多種數(shù)字簽名體制,所有這些體制可歸結(jié)為兩類:直接方式的數(shù)字簽名和具有仲裁方式的數(shù)字簽名。2.數(shù)字簽名應(yīng)滿足的要求75直接方式的數(shù)字簽名技術(shù)直接方式的數(shù)字簽名只有通信雙方參與,并假定接收一方知道發(fā)方的公開密鑰。數(shù)字簽名的形成方式可以用發(fā)方的秘鑰加密整個消息或加密消息的雜湊值。如果發(fā)方用收方的公開密鑰(公鑰加密體制)或收發(fā)雙方共享的會話密鑰(單鑰加密體制)對整個消息及其簽名進(jìn)一步加密,那么對消息及其簽名更加提供了保密性。而此時的外部保密方式(即數(shù)字簽名是直接對需要簽名的消息生成而不是對已加密的消息生成,否則稱為內(nèi)部保密方式),則對解決爭議十分重要,因?yàn)樵诘谌教幚頎幾h時,需要得到明文消息及其簽名才行。但如果采用內(nèi)部保密方式,那么,第三方必須在得到消息的解密密鑰后才能得到明文消息。如果采用外部保密方式,那么,接收方就可將明文消息及其數(shù)字簽名存儲下來以備以后萬一出現(xiàn)爭議時使用。直接方式的數(shù)字簽名技術(shù)76直接方式的數(shù)字簽名有一弱點(diǎn),即方案的有效性取決于發(fā)方秘鑰的安全性。如果發(fā)方想對自己已發(fā)出的消息予以否認(rèn),就可聲稱自己的秘鑰已丟失或被盜,認(rèn)為自己的簽名是他人偽造的。對這一弱點(diǎn)可采取某些行政手段,在某種程度上可減弱這種威脅,例如,要求每一被簽的消息都包含有一個時間戳(日期和時間),并要求密鑰丟失后立即向管理機(jī)構(gòu)報告。這種方式的數(shù)字簽名還存在發(fā)方的秘鑰真的被偷的危險,例如敵方在時刻T偷得發(fā)方的秘鑰,然后可偽造一消息,用偷得的秘鑰為其簽名并加上T以前的時刻作為時戳。直接方式的數(shù)字簽名有一弱點(diǎn),即方案的有效性取77具有仲裁方式的數(shù)字簽名技術(shù)上述直接方式的數(shù)字簽名所具有的威脅都可通過使用仲裁者得以解決。和直接方式的數(shù)字簽名一樣,具有仲裁方式的數(shù)字簽名也有很多實(shí)現(xiàn)方案,這些方案都按以下方式運(yùn)行:發(fā)方X對發(fā)往收方Y(jié)的消息簽名后,將消息及其簽名先發(fā)給仲裁者A,A對消息及其簽名驗(yàn)證完后,再連同一個表示已通過驗(yàn)證的指令一起發(fā)往收方Y(jié)。此時由于A的存在,X無法對自己發(fā)出的消息予以否認(rèn)。在這種方式中,仲裁者起著重要的作用并應(yīng)取得所有用戶的信任。

具有仲裁方式的數(shù)字簽名技術(shù)78

3.數(shù)字證書

數(shù)字簽名很重要的機(jī)制是數(shù)字證書(DigitalCertificate,或DigitalID),數(shù)字證書又稱為數(shù)字憑證,是用電子手段來證實(shí)一個用戶的身份和對網(wǎng)絡(luò)資源訪問的權(quán)限。在網(wǎng)上的電子交易中,如雙方出示了各自的數(shù)字憑證,并用它來進(jìn)行交易操作,那么雙方都可不必為對方身份的真?zhèn)螕?dān)心。數(shù)字憑證可用于電子郵件、電子商務(wù)、群件、電子基金轉(zhuǎn)移等各種用途。數(shù)字證書是一個經(jīng)證書授權(quán)中心數(shù)字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件。最簡單的數(shù)字證書包含一個公開密鑰、名稱以及證書授權(quán)中心的數(shù)字簽名。一般情況下,數(shù)字證書中還包括密鑰的有效時間、發(fā)證機(jī)關(guān)(證書授權(quán)中心)的名稱、證書的序列號等信息,證書的格式遵循ITUTX.509國際標(biāo)準(zhǔn)。3.數(shù)字證書791)X.509數(shù)字證書包含的內(nèi)容(1)證書的版本信息;(2)證書的序列號,每個證書都有一個惟一的證書序列號;(3)證書所使用的簽名算法;(4)證書的發(fā)行機(jī)構(gòu)名稱,命名規(guī)則一般采用X.509格式;(5)證書的有效期,現(xiàn)在通用的證書一般采用UTC時間格式,它的計時范圍為1950~2049;(6)證書所有人的名稱,命名規(guī)則一般采用X.509格式;(7)證書所有人的公開密鑰;(8)證書發(fā)行者對證書的簽名。1)X.509數(shù)字證書包含的內(nèi)容802)數(shù)字證書的三種類型(1)個人憑證(PersonalDigitalID)它僅僅為某一個用戶提供憑證,以幫助其個人在網(wǎng)上進(jìn)行安全交易操作。個人身份的數(shù)字憑證通常是安裝在客戶端的瀏覽器內(nèi)的,并通過安全的電子郵件(S/MIME)來進(jìn)行交易操作。(2)企業(yè)(服務(wù)器)憑證(ServerID)它通常為網(wǎng)上的某個Web服務(wù)器提供憑證,擁有Web服務(wù)器的企業(yè)就可以用具有憑證的Web站點(diǎn)(WebSite)來進(jìn)行安全電子交易。有憑證的Web服務(wù)器會自動地將其與客戶端Web瀏覽器通信的信息加密。2)數(shù)字證書的三種類型81(3)軟件(開發(fā)者)憑證(DeveloperID)它通常為因特網(wǎng)中被下載的軟件提供憑證,該憑證用于微軟公司的Authenticode技術(shù)(合法化軟件)中,以使用戶在下載軟件時能獲得所需的信息。上述三類憑證中前兩類是常用的憑證,第三類則用于比較特殊的場合。大部分認(rèn)證中心提供前兩類憑證,能提供各類憑證的認(rèn)證中心并不普遍。(3)軟件(開發(fā)者)憑證(Develope823.3.5數(shù)字簽名的發(fā)展方向數(shù)字簽名作為電子商務(wù)的應(yīng)用技術(shù),越來越得到人們的重視,它涉及的關(guān)鍵技術(shù)也很多,并且很多新的協(xié)議(如網(wǎng)上交易安全協(xié)議SSL、SET協(xié)議)都會設(shè)計數(shù)字簽名。究竟使用哪種算法、哪種Hash函數(shù),以及數(shù)字簽名管理、在通信實(shí)體與可能有的第三方之間使用協(xié)議等等問題都可以作為新的課題。3.3.5數(shù)字簽名的發(fā)展方向833.4身份認(rèn)證技術(shù)認(rèn)證(Authentication)又稱為鑒別、確認(rèn),它是證實(shí)某人或某物是否名副其實(shí)或有效的過程。認(rèn)證是防止主動攻擊的重要技術(shù)。實(shí)際上,網(wǎng)絡(luò)中的通信除需要進(jìn)行消息的認(rèn)證外,還需要建立一些規(guī)范的協(xié)議對數(shù)據(jù)來源的可靠性、通信實(shí)體的真實(shí)性加以認(rèn)證,以防止欺騙、偽裝等攻擊。身份認(rèn)證是通信雙方在實(shí)質(zhì)性數(shù)據(jù)傳輸之前進(jìn)行審查和證實(shí)對方身份的操作。3.4身份認(rèn)證技術(shù)認(rèn)證(Authentication)84認(rèn)證中心(CA,CertificateAuthority)在網(wǎng)絡(luò)通信認(rèn)證技術(shù)中具有特殊的地位。例如,電子商務(wù),認(rèn)證中心是為了從根本上保障電子商務(wù)交易活動順利進(jìn)行而設(shè)立的,主要是解決電子商務(wù)活動中參與各方的身份、資信的認(rèn)定,維護(hù)交易活動的安全。CA是提供身份驗(yàn)證的第三方機(jī)構(gòu),通常由一個或多個用戶信任的組織實(shí)體組成。例如,持卡人(客戶)要與商家通信,持卡人從公開媒體上獲得了商家的公開密鑰,但無法確定商家不是冒充的(有信譽(yù)),于是請求CA對商家認(rèn)證。此時,CA對商家進(jìn)行調(diào)查、驗(yàn)證和鑒別后,將包含商家公鑰的證書傳給持卡人。同樣,商家也可對持卡人進(jìn)行驗(yàn)證,其過程為持卡人→商家;持卡人→CA;CA→商家。證書一般包含擁有者的標(biāo)識名稱和公鑰,并且由CA進(jìn)行數(shù)字簽名。認(rèn)證中心(CA,CertificateA85CA的功能主要有:接收注冊申請、處理、批準(zhǔn)/拒絕請求、頒發(fā)證書。在實(shí)際運(yùn)作中,CA也可由大家都信任的一方擔(dān)當(dāng),例如,在客戶、商家、銀行三角關(guān)系中,客戶使用的是由某個銀行發(fā)的卡,而商家又與此銀行有業(yè)務(wù)關(guān)系(有帳號)。在此情況下,客戶和商家都信任該銀行,可由該銀行擔(dān)當(dāng)CA角色,接收和處理客戶證書和商家證書的驗(yàn)證請求。又例如,對商家自己發(fā)行的購物卡,則可由商家自己擔(dān)當(dāng)CA角色。CA的功能主要有:接收注冊申請、處理、863.2.1相互認(rèn)證技術(shù)A、B兩個用戶在建立共享密鑰時需要考慮的核心問題是保密性和實(shí)時性,為了防止會話密鑰的偽造或泄露,會話密鑰在通信雙方之間交換時應(yīng)以密文形式出現(xiàn),所以通信雙方事先就應(yīng)有密鑰或公開密鑰。第二個問題實(shí)時性則對防止消息的重放攻擊極為重要,實(shí)現(xiàn)實(shí)時性的一種方法是對交換的每一條消息都加上一個序列號,一個新消息僅當(dāng)它有正確的序列號時才被接收。但這種方法的困難性是要求每個用戶分別記錄與其他每一用戶交換的消息的序列號,這樣做,增加了用戶的負(fù)擔(dān),所以序列號方法一般不用于認(rèn)證和密鑰交換。保證信息的實(shí)時性常用以下兩種方法:3.2.1相互認(rèn)證技術(shù)87(1)時間戳如果A收到的消息包括一時間戳,且在A看來這一時間戳充分接近自己的當(dāng)前時刻,A才認(rèn)為收到的消息是新的并接收之。這種方案要求所有各方的時鐘是同步的。(1)時間戳如果A收到的消息包括一時間戳88(2)詢問—應(yīng)答用戶A向B發(fā)出一個一次性隨機(jī)數(shù)作為詢問,如果收到B發(fā)來的消息(應(yīng)答)也包含一正確的一次性隨機(jī)數(shù),A就認(rèn)為B發(fā)來的消息是新的并接收之。其中時間戳法不能用于面向連接的應(yīng)用過程,這是由于時間戳法在實(shí)現(xiàn)時有它的困難性。首先是需要在不同的處理器時鐘之間保持同步,那么所用的協(xié)議必須是容錯的以處理網(wǎng)絡(luò)錯誤,并且是安全的以對付惡意攻擊。第二,如果協(xié)議中任一方的時鐘出現(xiàn)錯誤而暫時地失去了同步,則將使敵方攻擊成功的可能性增加。最后還由于網(wǎng)絡(luò)本身存在著延遲,因此不能期望協(xié)議的各方能保持精確的同步。所以任何基于時間戳的處理過程,協(xié)議等都必須允許同步有一個誤差范圍??紤]到網(wǎng)絡(luò)本身的延遲,誤差范圍應(yīng)足夠大,考慮到可能存在的攻擊,誤差范圍又應(yīng)足夠小。(2)詢問—應(yīng)答用戶A向B發(fā)出一個一次性隨89而詢問—應(yīng)答方式則不適合于無連接的應(yīng)用過程,這是因?yàn)樵跓o連接傳輸以前需經(jīng)詢問—應(yīng)答這一額外的握手過程,與無連接應(yīng)用過程的本質(zhì)特性不符。對無連接的應(yīng)用程序來說,利用某種安全的時間服務(wù)器保持各方時鐘同步是防止重放攻擊的最好的方法。通信雙方建立共享密鑰時可采用單鑰加密體制和公鑰加密體制。而詢問—應(yīng)答方式則不適合于無連接的應(yīng)用過程,903.4.2單向認(rèn)證技術(shù)電子郵件等網(wǎng)絡(luò)應(yīng)用有一個最大的優(yōu)點(diǎn)就是不要求收發(fā)雙方同時在線,發(fā)方將郵件發(fā)往收方的信箱,郵件在信箱中存著,直到收方閱讀時才打開。郵件消息的報頭必須是明文形式以使簡單郵件傳輸協(xié)議(SMTP,SimpleMailTransferProtocol)或X.400等存儲—轉(zhuǎn)發(fā)協(xié)議能夠處理。然而通常都不希望郵件處理協(xié)議要求郵件的消息本身是明文形式,否則就要求用戶對郵件處理機(jī)制的信任。所以用戶在進(jìn)行保密通信時,需對郵件消息進(jìn)行加密以使包括郵件處理系統(tǒng)在內(nèi)的任何第三者都不能讀取郵件的內(nèi)容。再者郵件接收者還希望對郵件的來源即發(fā)方的身份進(jìn)行認(rèn)證,以防他人的假冒。3.4.2單向認(rèn)證技術(shù)913.4.3身份驗(yàn)證技術(shù)1.身份驗(yàn)證概念身份識別(Identification)是指用戶向系統(tǒng)出示自己的身份證明過程。身份認(rèn)證(Authentication)是系統(tǒng)核查用戶的身份證明的過程,實(shí)質(zhì)上是查明用戶是否具有他所請求資源的存儲和使用權(quán)。人們常把身份識別和身份認(rèn)證這兩項(xiàng)工作統(tǒng)稱為身份驗(yàn)證(或身份鑒別),它是判明和確認(rèn)通信雙方真實(shí)身份的兩個重要環(huán)節(jié)。身份認(rèn)證必須做到準(zhǔn)確無二義地將對方辨認(rèn)出來,同時還應(yīng)該提供雙向的認(rèn)證,即相互證明自己的身份。3.4.3身份驗(yàn)證技術(shù)922.單機(jī)狀態(tài)下的身份認(rèn)證1)根據(jù)人的生理特征進(jìn)行身份認(rèn)證這是較早使用的一種方法,它根據(jù)人的生理特征,如指紋、視網(wǎng)膜、聲音等來判別身份。目前同時采用幾種生理特征來驗(yàn)證身份。當(dāng)然,這種方法實(shí)現(xiàn)起來難度很大。2)根據(jù)約定的口令等進(jìn)行身份認(rèn)證雙方共同享有某個秘密,如聯(lián)絡(luò)暗號、UserID和Password等,根據(jù)對方是否知道這個秘密來判斷對方的身份。這種方法最常用且簡單,但安全性不高,因?yàn)槊孛芤坏┬孤?,任何人都可以冒充。此外,目前的操作系統(tǒng)在身份認(rèn)證方面還存在另一個弊端,被稱為“有志者事‘盡’成”系統(tǒng),操作者可以反復(fù)地試猜。2.單機(jī)狀態(tài)下的身份認(rèn)證933)用硬件設(shè)備進(jìn)行身份認(rèn)證服務(wù)器方通過采用硬件設(shè)備如編碼器,隨機(jī)產(chǎn)生一些數(shù)據(jù)并要求客戶輸入這些數(shù)據(jù),經(jīng)過編碼發(fā)生器變換后產(chǎn)生的結(jié)果,與服務(wù)器擁有的編碼發(fā)生器產(chǎn)生的結(jié)果比較,判斷是否正確。這種方法也成為一次性口令/密碼,只有對方獲得該硬件才可能進(jìn)行假冒。目前使用較多的“智能加密卡”是制造商為用戶提供的數(shù)字證明卡,它顯示的號碼是由時日、密碼、加密算法3項(xiàng)確定,作為用戶向系統(tǒng)出示的身份證明。這種方法可以持續(xù)較長的時間,具有使用靈活、存儲信息多等特點(diǎn)。智能加密卡簡稱智能卡,是一種嵌有CPU處理器如信用卡大小的塑料卡,它與通信網(wǎng)絡(luò)結(jié)合,可執(zhí)行多種功能。實(shí)際上,3)用硬件設(shè)備進(jìn)行身份認(rèn)證94它是密鑰的一種載體,由授權(quán)用戶持有,用戶賦予它一個口令或密碼。該密碼與網(wǎng)絡(luò)服務(wù)器上注冊的密碼相同。綜上,目前,在計算機(jī)及網(wǎng)絡(luò)系統(tǒng)中常用的身份認(rèn)證方式主要有:口令核對IC卡認(rèn)證動態(tài)口令生物特征認(rèn)證USBKey認(rèn)證身份的零知識證明它是密鑰的一種載體,由授權(quán)用戶持有,用戶賦予它一個口令或密碼95

3.網(wǎng)絡(luò)環(huán)境下的身份認(rèn)證網(wǎng)絡(luò)環(huán)境下的身份認(rèn)證較為復(fù)雜,主要是考慮靠驗(yàn)證身份的雙方一般都是通過網(wǎng)絡(luò)而非直接交互,想根據(jù)指紋等手段就無法實(shí)現(xiàn)。同時,大量的黑客隨時隨地都可以嘗試向網(wǎng)絡(luò)滲透,截獲合法用戶口令冒名頂替以合法身份入網(wǎng)。所以,目前一般采用的是基于對稱密鑰加密或公開密鑰加密的方法,采用高強(qiáng)度的密碼技術(shù)來進(jìn)行身份認(rèn)證。對TCP/IP網(wǎng)絡(luò)計算機(jī)系統(tǒng)的攻擊常常是監(jiān)聽網(wǎng)絡(luò)信息,獲得登陸用的帳號和口令。被俘獲的帳號和口令用于以后對系統(tǒng)的攻擊。S/Key是一個一次性口令系統(tǒng),用來對付這種攻擊。使用S/Key系統(tǒng)時,傳送的口令只使用一次后即無效。用戶使用的源口令不會在網(wǎng)絡(luò)上傳輸,包括登陸或其他需要口令(如SU等)的時候。3.網(wǎng)絡(luò)環(huán)境下的身份認(rèn)證96在使用S/Key系統(tǒng)時有兩方面的操作。在客戶方,必須有手段產(chǎn)生正確的一次性口令。在服務(wù)主機(jī)方,必須能夠驗(yàn)證該一次性口令的有效性,并能夠讓用戶安全地修改源口令。一般的S/Key系統(tǒng)是基于一些不可逆算法的(如MD4和MD5),也就是說這一類算法如果擁有源數(shù)據(jù),正向計算出結(jié)果速度很快。但如果沒有源數(shù)據(jù)而試圖反向計算出源數(shù)據(jù),目前來看則基本上是不可能的。在使用S/Key系統(tǒng)時有兩方面的操作。在客戶973.2.4身份認(rèn)證系統(tǒng)實(shí)例——Kerberos系統(tǒng)

1.Kerberos系統(tǒng)介紹

Kerberos系統(tǒng)是美國麻省理工學(xué)院為Athena工程而設(shè)計的,為分布式計算環(huán)境提供一種對用戶雙方進(jìn)行驗(yàn)證的認(rèn)證方法,它是基于對稱密鑰的身份認(rèn)證系統(tǒng)。在該環(huán)境中,機(jī)器屬于不同的組織,用戶對機(jī)器擁有完全的控制權(quán)。因此,用戶對于每一個他所希望的服務(wù),必須提供身份證明。同時,服務(wù)器也必須證明自己的身份,故網(wǎng)絡(luò)上其它的機(jī)器可以偽裝成服務(wù)器而騙取用戶信息。3.2.4身份認(rèn)證系統(tǒng)實(shí)例——Kerberos系統(tǒng)98

2.Kerberos系統(tǒng)組成Kerberos系統(tǒng)提供的認(rèn)證服務(wù)由三個重要部件組成:中心數(shù)據(jù)庫、安全服務(wù)器和Ticket分配器(TGS)。這三個部件都安裝在網(wǎng)絡(luò)中相對安全的主機(jī)上。其中,中心數(shù)據(jù)庫是安全服務(wù)的關(guān)鍵部分,在庫中存有安全系統(tǒng)的安全信息,包括用戶注冊名及相關(guān)口令、網(wǎng)上所有工作站和服務(wù)器的網(wǎng)絡(luò)地址、服務(wù)器密鑰及存取控制表等。2.Kerberos系統(tǒng)組成991)中心數(shù)據(jù)庫中心數(shù)據(jù)庫由KDC(密鑰分發(fā)中心)進(jìn)行維護(hù)。該數(shù)據(jù)庫中包括有內(nèi)部網(wǎng)絡(luò)系統(tǒng)中每個用戶的帳戶信息。這一信息是由企業(yè)的安全管理員錄入到數(shù)據(jù)庫中的,它包括用戶的帳號(即登錄帳號)和密碼。所有內(nèi)部網(wǎng)絡(luò)中的服務(wù)器和用戶在安全數(shù)據(jù)庫中均有帳戶。1)中心數(shù)據(jù)庫1002)安全服務(wù)器即認(rèn)證服務(wù)器當(dāng)一個用戶登錄到企業(yè)內(nèi)部網(wǎng)絡(luò)中并且請求訪問內(nèi)部網(wǎng)絡(luò)服務(wù)器時,認(rèn)證服務(wù)器根據(jù)中心數(shù)據(jù)庫中存儲的用戶密碼生成一個DES加密密鑰來對一個Ticket(憑證或入場券)進(jìn)行加密。這個Ticket包含有用戶將要對傳送給應(yīng)用服務(wù)器的信息進(jìn)行加密所使用的新的DES加密密鑰。Ticket中同時也包括了基于應(yīng)用服務(wù)器產(chǎn)生的階段性加密密鑰,客戶方使用這個Ticket來向應(yīng)用服務(wù)器證實(shí)自己的身份。2)安全服務(wù)器即認(rèn)證服務(wù)器1013)Ticket分配服務(wù)器(TGS)當(dāng)用戶進(jìn)程欲訪問某個服務(wù)器時,TGS通過查找數(shù)據(jù)庫中的存取表,來確認(rèn)該用戶已被授權(quán)使用該服務(wù)器,這時TGS將會把與該服務(wù)器相連的密鑰和加密后的Ticket分給該用戶和服務(wù)器。用戶若要訪問采用Kerberos身份認(rèn)證服務(wù)的內(nèi)部網(wǎng)絡(luò)中的應(yīng)用服務(wù)器,則必須在KDC中進(jìn)行登記;一旦用戶進(jìn)行了登記,KDC可以為用戶向整個企業(yè)網(wǎng)絡(luò)中的任何應(yīng)用服務(wù)器提供身份驗(yàn)證服務(wù)。用戶只需要登錄一次就可以安全地訪問網(wǎng)絡(luò)中所有安全信息。這種登錄的過程提供了在用戶和應(yīng)用服務(wù)之間相互認(rèn)證,雙方都可能確認(rèn)對方的身份。3)Ticket分配服務(wù)器(TGS)102

3.Kerberos系統(tǒng)的認(rèn)證過程有人曾把Kerberos的工作過程形象地比喻為到售票處購買入場券以及到電影院看電影的過程。作為一個觀眾,如果希望看某一場電影,則先要到售票處購買入場券,在購買入場券時,觀眾需要說明所希望的場次。在得到希望的入場券后,觀眾需要到檢票口檢票。檢票口人員在證實(shí)入場券合法后,觀眾就可以入場欣賞電影了。Kerberos系統(tǒng)和看電影的過程不一樣的地方是,只是事先在Kerberos系統(tǒng)中登錄的客戶才可以申請服務(wù),并且Kerberos要求申請到入場券的客戶就是到TGS去要求得到最終服務(wù)的客戶。另外,在客戶和服務(wù)器間通信時,需要進(jìn)行數(shù)據(jù)的加密,從而需要為客戶和服務(wù)器的對話產(chǎn)生一個臨時的密鑰。3.Kerberos系統(tǒng)的認(rèn)證過程1033.5數(shù)字簽名標(biāo)準(zhǔn)及數(shù)字簽名算法3.5.1數(shù)字簽名算法DSS首先將DSS與RSA的簽名方式作一比較。RSA算法既能用于加密和簽名,又能用于密鑰交換。與此不同,DSS使用的算法只能提供數(shù)字簽名功能。采用RSA簽名時,將消息輸入到一個散列函數(shù)以產(chǎn)生一個固定長度的安全散列值,再用發(fā)方的秘鑰加密散列值就形成了對消息的簽名。消息及其簽名被一起發(fā)給收方,收方得到消息后再產(chǎn)生出消息的散列值,且使用發(fā)方的公鑰對收到

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論