現(xiàn)今SSL安全協(xié)議廣泛地用在Internet和Intranet的服務(wù)器產(chǎn)品和客戶端產(chǎn)品中,用于安全地傳送數(shù)據(jù),集中到每個WEB服務(wù)器和瀏覽器中,從而來保證來用戶都可以與Web站點(diǎn)安全交流 。本文將詳細(xì)介紹SSL安全協(xié)議及在WEB服務(wù)器安全的應(yīng)用。 一、SSL安全協(xié)議在WEB服務(wù)器中的應(yīng)用 1、我們?yōu)樘峁┚哂姓嬲踩B接的高速安全套接層SSL)交易,可以將PCI卡形式的SSL卸載(offloading)設(shè)備直接安裝到Web服務(wù)器上,這種做法的好處是: (1)從客戶機(jī)到安全Web服務(wù)器的數(shù)據(jù)安全性; (2)由于卸載工具執(zhí)行所有SSL處理過程并完成TCP/IP協(xié)商,因此大大提高了吞吐量; (3)簡化了密鑰的管理和維護(hù)。 安全性加大在實(shí)現(xiàn)向電子商務(wù)和其它安全Web站點(diǎn)的服務(wù)器增加SSL加速和卸載設(shè)備的結(jié)果是提高了交易處理速度。但是由于設(shè)備是作為應(yīng)用被安裝在網(wǎng)絡(luò)上的,因此設(shè)備與安全服務(wù)器之間的數(shù)據(jù)是未加密的。將SSL卸載設(shè)備作為PCI擴(kuò)展卡直接安裝在安全服務(wù)器上,保證了從瀏覽器到服務(wù)器的連接安全性。 SSL可以用于在線交易時保護(hù)象信用卡號以及股票交易明細(xì)這類敏感信息。受SSL保護(hù)的網(wǎng)頁具有"https"前綴,而非標(biāo)準(zhǔn)的"http"前綴。 2、新型專用網(wǎng)絡(luò)設(shè)備SSL加速器可以使Web站點(diǎn)通過在優(yōu)化的硬件和軟件中進(jìn)行所有的SSL處理來滿足性能和安全性的需要。 當(dāng)具有SSL功能的瀏覽器(Navigator、IE)與Web服務(wù)器(Apache、IIS)通信時,它們利用數(shù)字證書確認(rèn)對方的身份。數(shù)字證書是由可信賴的第三方發(fā)放的,并被用于生成公共密鑰。 當(dāng)最初的認(rèn)證完成后,瀏覽器向服務(wù)器發(fā)送48字節(jié)利用服務(wù)器公共密鑰加密的主密鑰,然后Web服務(wù)器利用自己的私有密鑰解密這個主密鑰。最后,瀏覽器和服務(wù)器在會話過程中用來加解密的對稱密鑰集合就生成了。加密算法可以為每次會話顯式地配置或協(xié)商,最廣泛使用的加密標(biāo)準(zhǔn)為"數(shù)據(jù)加密標(biāo)準(zhǔn)"(DES)和RC4。 一旦完成上述啟動過程,安全通道就建立了,保密的數(shù)據(jù)傳輸就可以開始了。盡管初始認(rèn)證和密鑰生成對于用戶是透明的,但對于Web服務(wù)器來說,它們遠(yuǎn)非透明。由于必須為每次用戶會話執(zhí)行啟動過程,因而給服務(wù)器CPU造成了沉重負(fù)擔(dān)并產(chǎn)生了嚴(yán)重的性能瓶頸。據(jù)測試,當(dāng)處理安全的SSL會話時,標(biāo)準(zhǔn)的Web服務(wù)器只能處理1%到10%的正常負(fù)載。 二、應(yīng)做的處理 密碼在加解密數(shù)據(jù)時,使用兩種類型的密鑰。私有密鑰被發(fā)給各實(shí)體并且永遠(yuǎn)不向外透露,公共密鑰可以任意分發(fā)。這兩種密鑰對于認(rèn)證過程是必不可少的。使用公鑰加密的數(shù)據(jù)不能使用同一個密鑰進(jìn)行解密,必須使用私有密鑰進(jìn)行解密。 SSL使用復(fù)雜的數(shù)學(xué)公式進(jìn)行數(shù)據(jù)加密和解密,這些公式的復(fù)雜性根據(jù)密碼的強(qiáng)度不同而不同。高強(qiáng)度的計(jì)算會使多數(shù)服務(wù)器停頓,導(dǎo)致性能下降。多數(shù)Web服務(wù)器在執(zhí)行SSL相關(guān)任務(wù)時,吞吐量會顯著下降,性能比在只執(zhí)行HTTP 1.0連接時的速度慢50多倍。而且由于SSL復(fù)雜的認(rèn)證方案和加/解密算法,SSL需要大量地消耗CPU資源,從而造成Web服務(wù)器性能很大的下降。它所造成的服務(wù)器瓶頸使Web站點(diǎn)的速度慢如蝸牛爬行,這無疑會失去在線客戶。 為解決這種性能上的損失,我們可以通過安裝SSL加速器和卸載器來減少SSL交易中的時延。加速器通過執(zhí)行一部分SSL處理任務(wù)來提高交易速度,同時依靠安全Web服務(wù)器軟件完成其余的任務(wù)。卸載器承擔(dān)所有SSL處理任務(wù)并且不需要安全Web服務(wù)器軟件,從而使Web服務(wù)器可以以同樣的高速度提供安全和非安全的服務(wù)。由于密鑰管理和維護(hù)過程不依靠對應(yīng)用軟件的手工配置,因此使用卸載器效率會更高一些。 多數(shù)這類設(shè)備作為網(wǎng)絡(luò)應(yīng)用被安裝在機(jī)架式或小底座網(wǎng)絡(luò)設(shè)備上,由于它們?yōu)檎麄€網(wǎng)絡(luò)提供加解密服務(wù),因此設(shè)備與Web服務(wù)器之間的數(shù)據(jù)是未加密的。 通過直接在服務(wù)器上安裝SSL卸載器,可以解決速度和安全性問題。加密的數(shù)據(jù)由客戶機(jī)經(jīng)過Internet和網(wǎng)絡(luò)直接傳送到一臺服務(wù)器上。安裝在這臺服務(wù)器上的卸載器對數(shù)據(jù)進(jìn)行解密并將其沿PCI總線直接傳送到處理器。這樣做的結(jié)果是宿主服務(wù)器在保證客戶機(jī)與服務(wù)器之間傳輸時數(shù)據(jù)安全性的同時,以非安全交易服務(wù)同樣的速度提供了安全交易服務(wù)。 SSL加速設(shè)備的出現(xiàn)就是為了解決對CPU資源過量需求的SSL協(xié)議所造成的性能問題,這類設(shè)備是一些用以在不增加Web服務(wù)器負(fù)擔(dān)的條件下處理SSL任務(wù)的特殊的網(wǎng)絡(luò)部件。通過優(yōu)化硬件和軟件,專用SSL加速器處理SSL會話的速度為標(biāo)準(zhǔn)Web服務(wù)器的10到40倍。此外,SSL加速器解放了服務(wù)器資源,使這些資源可以真正用于處理應(yīng)用邏輯和數(shù)據(jù)庫查詢,從而加快了整個站點(diǎn)的速度。 將SSL設(shè)備集成到網(wǎng)絡(luò)中很簡單,第4層到第7層交換機(jī)或負(fù)載均衡設(shè)備被配置為將所有的443端口(Https)請求改向傳送到SSL設(shè)備。 這時,這臺設(shè)備承擔(dān)所有的SSL處理任務(wù),因而立即解脫了Web服務(wù)器的負(fù)載。隨著安全傳輸流容量的增加,在不增加不必要的管理負(fù)擔(dān)的條件下,可以再部署其他SSL設(shè)備。 最近,SSL加速器功能已經(jīng)被集成到象服務(wù)器端緩存(即所謂的"服務(wù)器加速器")這類Web內(nèi)容提交產(chǎn)品中了。這種作法的主要好處是,服務(wù)器加速器進(jìn)行SSL處理和對象提交。 配置SSL功能的服務(wù)器加速器使廣泛地將SSL用于Web基礎(chǔ)設(shè)施上的安全內(nèi)容交換成為可能,安全網(wǎng)頁將快速地得到提交,安全交易也將迅速地完成。 三、如何實(shí)現(xiàn)WEB和Internet安全 我們在安裝好Certificate Server后,給自己的Web Server發(fā)一張證書,安全站點(diǎn)已經(jīng)建立起來了,在IIS管理器中打開安全通道(先不要接受客戶證書驗(yàn)證,如果沒有瀏覽器證書的話),把http改為https后訪問的站點(diǎn),怎么系統(tǒng)提示服務(wù)器證書有問題?記得在瀏覽器中安裝的根證書了?要不就是服務(wù)器證書過期了,如果沒有在瀏覽器中安裝根證書,就要安裝它,同時其他人通過Internet訪問站點(diǎn)如果沒有安裝根證書,需要將根證書放在網(wǎng)上讓別人下載。 用IE安裝根證書很簡單,瀏覽器提示用戶打開或保存時選擇打開,會看到根證書信息然后按安裝證書就可以了。但可能會發(fā)現(xiàn)Netscap無法安裝根證書,SSL協(xié)議是由Netscape首先提出并實(shí)現(xiàn)的,Netscape使用MIME類型application/x-x509-ca-cert來表示CA證書,IE3.1以后開始支持SSL,起初Windows系統(tǒng)的數(shù)字證書文件(.crt和.cer)也采用相同的MIME類型,IE5.0以后MIME類型被改為application/pkix-cert這就造成Netscape安裝根證書困難。不過這個問題好解決,只要在IIS里新注冊application/x-x509-ca-cert的MIME類型就可以了。剛發(fā)的證書瀏覽器有時也會顯示證書過期,這是因?yàn)闉g覽器判斷證書有效是從證書有效起始時間的后一天開始,此外數(shù)字證書中的日期大都是GMT時間而不是本地時間,所以通常將本機(jī)時間向后調(diào)整一天這個問題就能解決,所以證書過期不僅僅可能表示太晚也可能表示太早。 一切都已經(jīng)就緒,進(jìn)入安全網(wǎng)頁了,在IE的狀態(tài)欄里應(yīng)該有一個小鎖,雙擊這個小鎖能看到站點(diǎn)證書信息,同時也能看到整個證書鏈。現(xiàn)在也許會問"那么現(xiàn)在我怎么用SSL加密我的數(shù)據(jù)呢?",實(shí)際上現(xiàn)在瀏覽器和Web服務(wù)器之間交換的所有信息都已經(jīng)被加密,SSL是工作在網(wǎng)絡(luò)層與會話層之間的協(xié)議,它在TCP/IP和HTTP之間增加了一個加密層,所以對于工作在HTTP協(xié)議以上的用戶而言,加密是完全透明的,所以請忘記"用SSL加密"這句話,除非直接在Socket上開發(fā),比如寫個網(wǎng)絡(luò)螞蟻之類的。 現(xiàn)在想用SSL實(shí)現(xiàn)更多的東西,不僅僅是加密。是申請瀏覽器(客戶)證書的時候了,申請客戶證書過程也不復(fù)雜,除了相同的名稱,國家之類的還多一個EMail地址,如果用IE申請證書可能會有許多選項(xiàng),其中有兩個比較有意義,"允許私鑰被導(dǎo)出"對與不在固定機(jī)器上上網(wǎng)的人比較有用,如果在一臺機(jī)器上申請了證書,導(dǎo)出證書和私鑰并安裝到其他機(jī)器上就可以在其他機(jī)器上使用了。"用戶保護(hù)"會讓瀏覽器在使用的私鑰時提示,這通常發(fā)生在加密和簽名過程之前。證書安裝過程通常都是自動的,安裝完成后可以欣賞一下,在IE中打開Internet選項(xiàng),選擇內(nèi)容一欄,按"證書"按鈕",在個人一欄內(nèi)應(yīng)該有客戶證書。 現(xiàn)在在IIS管理器中設(shè)置站點(diǎn)要求客戶證書,然后訪問站點(diǎn),瀏覽器會彈出一個對話框,讓選擇要使用的客戶證書,然后就進(jìn)去了,也沒什么不同。那么怎么樣利用SSL實(shí)現(xiàn)身份認(rèn)證呢?首先可以在IIS管理器中啟用客戶證書映射,將客戶證書影射到NT賬號,可以映射某張證書,也可以映射所有根證書所簽發(fā)的客戶證書,如果在簽發(fā)者列表中找不到根證書,需要運(yùn)行SSLCA.exe(IIS4.0以上),以后的事就屬于NT管理員的范疇了。如果不想用NT的安全機(jī)制,就需要獲取對方客戶證書的信息,然后進(jìn)行判斷。通??蛻糇C書的信息由HTTPS_開頭的服務(wù)器變量提供,如Apache Server,Domino等,可以查看文檔或者寫一個小的CGI程序列出所有的服務(wù)器變量。如果是IIS就更簡單了: 用 Request.ClientCertificate( Key[SubField] )可以訪問想要的內(nèi)容: 如可顯示客戶證書的國家代碼。具體參數(shù)請?jiān)贛SDN搜索ClientCertificate.。 |
|