認(rèn)證(鑒權(quán))就是指用戶必須提供他是誰的證明, 他是某個(gè)雇員, 某個(gè)組織的代理、某個(gè)軟件過程(如股票交易系統(tǒng)或Web訂貨系統(tǒng)的軟件過程)。認(rèn)證的標(biāo)準(zhǔn)方法就是弄清楚他是誰,他具有什么特征, 他知道什么可用于識(shí)別他的東西。比如說, 系統(tǒng)中存儲(chǔ)了他的指紋, 他接入網(wǎng)絡(luò)時(shí), 就必須在連接到網(wǎng)絡(luò)的電子指紋機(jī)上提供他的指紋(這就防止他以假的指紋或其它電子信息欺騙系統(tǒng)), 只有指紋相符才允許他訪問系統(tǒng)。更普通的是通過視網(wǎng)膜血管分布圖來識(shí)別, 原理與指紋識(shí)別相同, 聲波紋識(shí)別也是商業(yè)系統(tǒng)采用的一種識(shí)別方式。網(wǎng)絡(luò)通過用戶擁有什么東西來識(shí)別的方法, 一般是用智能卡或其它特殊形式的標(biāo)志, 這類標(biāo)志可以從連接到計(jì)算機(jī)上的讀出器讀出來。至于說到“他知道什么”, 最普通的就是口令, 口令具有共享秘密的屬性。例如, 要使服務(wù)器操作系統(tǒng)識(shí)別要入網(wǎng)的用戶, 那么用戶必須把他的用戶名和口令送服務(wù)器。服務(wù)器就將它仍與數(shù)據(jù)庫里的用戶名和口令進(jìn)行比較, 如果相符, 就通過了認(rèn)證, 可以上網(wǎng)訪問。這個(gè)口令就由服務(wù)器和用戶共享。更保密的認(rèn)證可以是幾種方法組合而成。例如用ATM卡和PIN卡。在安全方面最薄弱的一環(huán)是規(guī)程分析儀的竊聽, 如果口令以明碼(未加密)傳輸, 接入到網(wǎng)上的規(guī)程分析儀就會(huì)在用戶輸入帳戶和口令時(shí)將它記錄下來, 任何人只要獲得這些信息就可以上網(wǎng)工作。
兩種加密方法
如果口令在不安全的信道內(nèi)傳輸, 必須要對(duì)口令進(jìn)行加密, 加密方法有兩種: 公共密鑰加密和專用密鑰加密。專用密鑰加密具有對(duì)稱性, 即加密密鑰也可以用作解密。最有名的專用密鑰加密系統(tǒng)就是數(shù)據(jù)加密標(biāo)準(zhǔn)(DES), 這個(gè)標(biāo)準(zhǔn)現(xiàn)在由美國(guó)國(guó)家安全局和國(guó)家標(biāo)準(zhǔn)與技術(shù)局來管理。另一個(gè)系統(tǒng)是國(guó)際數(shù)據(jù)加密算法(IDEA), 它比DES的加密性好, 而且需要的計(jì)算機(jī)功能也不么強(qiáng)。IDEA加密標(biāo)準(zhǔn)由PGP(Pretty Good Privacy)系統(tǒng)使用。公共密鑰加密使用兩個(gè)不同的密鑰, 因此是一種不對(duì)稱的加密系統(tǒng)。它的一個(gè)密鑰是公開的, 而系統(tǒng)的基本功能也是有公共密鑰的人可以訪問的, 公共密鑰可以保存在系統(tǒng)目錄內(nèi)或保存在未加密的電子郵件信息中。它的另一個(gè)密鑰是專用的, 它用來加密信息但公共密鑰可以解密該信息, 它也可以對(duì)公共密鑰加密的信息解密。在提供同等安全性的前提下, 專用密鑰加密的系統(tǒng)速度比較快。
由于專用密鑰由雙方共享, 所以沒有辦法確定哪一方始發(fā)信息, 這就為合法的爭(zhēng)議留下了缺口。專用密鑰和公共密鑰的鑒權(quán)過程是相同的, 主要問題是密鑰分配。怎樣使密鑰保存在手邊或記在腦子里(人、計(jì)算機(jī)、軟件模塊都會(huì)有密鑰, 我們將他們稱為密鑰持有者), 在使用時(shí)不被竊聽者截獲? 用得最多的專用密鑰認(rèn)證系統(tǒng)就是Kerberos, 它需要有一個(gè)保密性好的服務(wù)器來保存與所有密鑰持有者通信的主密鑰, 密鑰持有者想要進(jìn)行認(rèn)證或解密, 與其它密鑰持有者的會(huì)話, 就要發(fā)布與他們秘密通信的密鑰, Kerberos只是部分實(shí)現(xiàn)了OSF的分布式計(jì)算環(huán)境(DCE)規(guī)范。Kerberos也是Windows NT 5.0安全系統(tǒng)的一部分, 基于Kerberos的系統(tǒng)尚未被廣泛采用。公共密鑰加密沒有密鑰分配問題, 它可以放在目錄內(nèi), 電話黃頁(商業(yè)電話)上或公告牌里。公共密鑰存在的問題是能否信任使用密鑰的密鑰持有者, 因?yàn)槿魏稳硕伎色@得公共密鑰。目前使用的第三個(gè)版本的ITU的X. 509標(biāo)準(zhǔn)定義了兼容 的數(shù)字證書模塊, 其主要模塊是密鑰持有者的名稱、密鑰持有者的公共密鑰信息和證書管理(CA)的數(shù)字簽名(數(shù)字簽名保證證書不被修改, 也不可姳環(huán)袢?)。X. 509 V3數(shù)字證書還包括證書發(fā)行人的名字, 發(fā)行人的唯一識(shí)別碼, 密鑰持有者的唯一識(shí)別碼和證書的序列號(hào)及有效期和證書的版本號(hào)和簽字算法等。使用Novell目錄服務(wù)、Lotus Notes和PGP的用戶使用數(shù)字證書, 但它們不使用X. 509標(biāo)準(zhǔn)。
實(shí)現(xiàn)公共密鑰基礎(chǔ)結(jié)構(gòu)的障礙
證書管理是一個(gè)十分陳舊而且不直觀的機(jī)制, 它不僅發(fā)布數(shù)字證書, 它還要建立維護(hù)證書取消清單(CRL)。如果你的專用密鑰丟失或被偷了, 或者你被解雇了, 或者你找到了新的工作不需要訪問現(xiàn)在的東西, 那么必須有一種方法使你原來有效的證書失效。因此需要一個(gè)驗(yàn)證數(shù)字證書有效性的過程, 它檢查證書管理者的公共密鑰對(duì)證書是否有效, 驗(yàn)證證書是否被修改, 驗(yàn)證證書是否過期, 檢驗(yàn)證書是否被取消。信息安全方面的人士很關(guān)心CRL的可伸縮性, 如果有效期過長(zhǎng), CRL就不斷加長(zhǎng), 就需要更多的計(jì)算機(jī)資源來搜索它, 如果證書更新太快, 又給管理帶來麻煩。
證書管理的另一個(gè)問題是如何相互作用。例如公司X對(duì)證書管理,這經(jīng)與公司Y相互證明, 公司Y也對(duì)證書管理。但是我是否愿意信任某個(gè)想與我在Internet上做生意的證書管理(CA)呢? 或者說, 信任是否可以傳遞: 如果CAY信任CAZ, 而且CAX信任CAY, 那么CAX是否能自動(dòng)信任CAZ呢? 如果這樣做是合理的, 那么我是否可以在與我信任的CA和我不知道的CA之間找到一個(gè)閉合的鏈路呢? 如果能得到這樣一個(gè)信任鏈, 那么它們的擴(kuò)展是否可以接受呢, 或者說將花掉過多的計(jì)算費(fèi)用、引起時(shí)延? X. 509標(biāo)準(zhǔn)提供一個(gè)所謂的反向證書, 它包括其它CA經(jīng)過認(rèn)證的密鑰, 這種能力提供了靈活的交叉認(rèn)證, 但它不能解決識(shí)別和實(shí)現(xiàn)信任鏈的體系結(jié)構(gòu)問題。
證書和密鑰管理
證書有一定的生存期, 從發(fā)布、分布到取消, 它可以到其期, 再更新。當(dāng)然, 任何CA的數(shù)據(jù)庫都必須進(jìn)行有效地備份, 并為任何的不測(cè)作好準(zhǔn)備。應(yīng)該為CA制定政策(如果可能的話還應(yīng)該公布), 它要指明證書的有效期, 與密鑰持有人的密鑰對(duì)連接的證據(jù), 以及防范正在雇用但不被信任的雇員應(yīng)采取的步驟。CA系統(tǒng)應(yīng)具備最起碼的性能, 還有很高的保密性。在一個(gè)可以互操作的公共密鑰體系結(jié)構(gòu)中, 折衷的密鑰可能可破許多信任鏈并使特殊CA用戶的安全性消失。對(duì)專用密鑰的訪問就好象是用口令保護(hù)一樣, 處理被忘掉的口令的方法也值得認(rèn)真考慮, 除了密鑰持有人外, 其它人員是不能使用專用密鑰進(jìn)行訪問的。用于加密的密鑰也需要作備份, 否則密鑰丟失或改變, 用此密鑰加密的數(shù)據(jù)也會(huì)丟失(但是數(shù)字簽名的密鑰卻不能被工具所備份, 因?yàn)槿绻腥藖G失了用于數(shù)字簽名的專用密鑰, 還可以產(chǎn)生一個(gè)新的專用密鑰使它與原來的公共密鑰一起工作。)將密鑰交與第三方保存是與密鑰備份不同的另一個(gè)問題。一般來說, 有一個(gè)或多個(gè)第三方保存密鑰的工具或部分密鑰工具, 所有第三方鑰密持有人一起才能生成一個(gè)完整的工具。另一個(gè)較好的方法是周期更新密鑰, 就象當(dāng)初生成公共/專用密鑰對(duì)一樣, 更新密鑰也要花費(fèi)CPU的周期, 比較好的主意是錯(cuò)開更新的日期。


