再看封包內(nèi)容
只要封包能流經(jīng)本機(jī),我們就有很多軟體能將之抓下來(lái)。下面讓我們?cè)贁X取兩個(gè)封包﹐看看您能發(fā)現(xiàn)什么﹖
沒(méi)錯(cuò)啦﹕就是使用者名稱和密碼﹗哇﹗﹗那還了得﹖那還有保密可言嗎﹖
的確如此﹗假如您使用純文字(paint text)方式來(lái)傳送密碼的話﹐雖然在您的螢?zāi)簧峡吹降氖恰?*****”﹐但使用網(wǎng)路封包擷取工具來(lái)看的﹐卻是原原本本的文字。雖然這里使用的例子是擷取本機(jī)的封包﹐但其實(shí)大部份的封包擷取工具都可以擷取所有流經(jīng)本地網(wǎng)路的封包,只要 datalink 層級(jí)的 frame 能到達(dá)本機(jī)界面就行(這也就是為何 switch 要比 hub 更安全的原因了)。要是您用 hub 來(lái)連接網(wǎng)路的話,只要駭客成功的登錄了網(wǎng)路中的其中一臺(tái)工作站﹐那么﹐所有資料都無(wú)所遁形。這情形在 Internet 上面也非常普遍。之所以現(xiàn)在的網(wǎng)頁(yè)流覽器﹐都會(huì)在您提交資料的時(shí)候提出警告﹐讓您認(rèn)知到您的資料隨時(shí)可能被別人截獲。
那么﹐有沒(méi)有方法避免、或盡量減少資料被竊聽(tīng)的風(fēng)險(xiǎn)呢﹖
資料加密的手段
在沒(méi)有使用資料加密之前﹐在網(wǎng)路中傳遞的 email 或商業(yè)資料﹐或任何文字資料﹐都有如“網(wǎng)路明信片”一般﹐有心人士隨手可得、一覽無(wú)遺。有鑒于此﹐人們?cè)趥魉唾Y料之前﹐都會(huì)將資料進(jìn)行加密處理(encrypt)﹔然后在接收到資料后﹐再進(jìn)行解密處理(decrypt)﹐將資料還原。而在傳送過(guò)程中的資料﹐除非您有能力進(jìn)行 decrypt ﹐否則您看到的只是一些雜亂無(wú)章的文字而已。
那么﹐這個(gè)加密和解密是怎樣合作的呢﹖如果您喜歡看二次世界大戰(zhàn)間諜片的話﹐應(yīng)該知道什么叫密碼電報(bào)和公碼電報(bào)吧﹖公碼電報(bào)就是使用一套公認(rèn)的規(guī)則﹐將資料轉(zhuǎn)換成特定的電波信號(hào)發(fā)送出去﹐然后接收到信號(hào)的那一端也使用公認(rèn)的規(guī)則將信號(hào)還原成資料。而密碼電報(bào)呢﹖是使用一套只有發(fā)送者和接收者才知道的規(guī)則來(lái)發(fā)送信號(hào)和將信號(hào)還原。雖然發(fā)送出去的電波任何人都接收得到﹐但如何還原資料﹐也就是如何破解這個(gè)秘密的規(guī)則﹐就成了反間諜的一項(xiàng)重要任務(wù)了。聞?wù)f日本偷襲珍珠港之前﹐任何飛機(jī)都不能發(fā)送通訊﹐也就是為了避免遭美軍攔截到信號(hào)從而破解﹐因而偷襲相當(dāng)成功。不過(guò)﹐其策劃者山本五十六后來(lái)也是因?yàn)槊儡娖平饬巳辗降拿艽a電報(bào)﹐獲知其行蹤﹐在太平洋上空將其飛機(jī)擊落。
那么﹐我們?cè)诰W(wǎng)路傳遞資料的時(shí)候﹐如果沒(méi)有加密的話﹐就好比是公碼電報(bào)。不過(guò)﹐發(fā)送者也可以和接收者擬定自己的一套“密碼電報(bào)”﹕我們可以用自己的規(guī)則將資料加密后才傳遞出去﹐然后﹐利用秘密的管道將規(guī)則傳遞給對(duì)方﹐這樣﹐資料的保密性就大大提高了。我們稱這樣的加密方法為“單一鍵值加密”或 “對(duì)稱鍵值加密”(Single/Symmetrical Key Encryption)。
不過(guò)﹐這又有另外應(yīng)一個(gè)問(wèn)題出現(xiàn)了﹕假如﹐我們要將資料傳遞給上萬(wàn)個(gè)客戶呢﹖要維持好這樣的一套規(guī)則恐怕是件非常耗時(shí)耗量的工作﹐是非常不符合效益的。而且,我們又如何達(dá)成鍵值的交換呢?因?yàn)椋羰俏覀冊(cè)诰W(wǎng)路上交換鑒值的時(shí)侯,若被攔截的話,那么之后所加密的資料也將被輕易解密。
正所謂路不轉(zhuǎn)人轉(zhuǎn)﹐聰明的人們?cè)趧偛诺摹皢我绘I值加密”方法的基礎(chǔ)上﹐開(kāi)發(fā)出另一套更靈活的加密方法﹐叫做﹕“雙鍵值加密”或“非對(duì)稱鍵值加密”(Double/Asymmetrical Key Encryption)。在使用“非對(duì)稱鍵值加密”的時(shí)候﹐任何人都可以使用公開(kāi)的鍵值(public key)進(jìn)行加密﹐但需要配合另一個(gè)私有鍵值(private key)同時(shí)工作才能將資料解密。所謂的 public key 與 private key 是惟一的對(duì)稱關(guān)系,其情形就好象這樣﹕
我打制了一把只有自己才擁有的鎖匙﹐另外再打制另外一把鎖匙掛在門口﹐任何人都可以拿去復(fù)制。
然后郵局提供一個(gè)標(biāo)準(zhǔn)鐵罐來(lái)傳遞資料﹐這鐵罐本來(lái)是沒(méi)有上鎖的。
如果朋友想傳遞資料給我﹐他就先把我掛在門口的鎖匙拿去復(fù)制﹐然后用復(fù)制好的鎖匙將鐵罐鎖上。
一但鐵罐鎖上了﹐只有用我的私有鎖匙才能夠打得開(kāi)。除非是開(kāi)鎖專家﹐別人休想看到里面的東西。
這樣﹐傳送者和接收者就無(wú)需事先約定好加密的鍵值了﹕任何人都可以將公用鍵值公布在網(wǎng)路上﹐任人下載﹐然后用之加密資料送來(lái)﹐也只有擁有私有鍵值的人才能夠?qū)①Y料還原。不過(guò)﹐這個(gè)時(shí)候﹐保護(hù)好私有鍵值不被盜竊﹐就成了最重要的保密工作了。
加密的應(yīng)用
從上面的說(shuō)明中,我們或許發(fā)現(xiàn)使用非隊(duì)稱加密更有便利性及彈性,但它的缺點(diǎn)卻是:加密與解密都需要更多的運(yùn)算資源,因此在效能上并不如對(duì)稱加密那樣迅速。
所以,聰明的人們總是能集優(yōu)而?。捍罅康馁Y料傳送通常使用對(duì)稱加密、而對(duì)稱鍵值則用非對(duì)稱加密來(lái)交換!Bingo~~~ 這樣不就解決了便利性與效能的矛盾了嗎? ^_^ 是的,現(xiàn)今許多加密應(yīng)用軟體,都同時(shí)將兩種加密技術(shù)應(yīng)用在一起:
1. 當(dāng) client 端連上來(lái)之后,從 server 端下載 public key 。
2. Client 端隨機(jī)產(chǎn)生用作對(duì)稱加密的 session key 。
3. 并使用剛從 server 端下載回來(lái)的 public key 作加密,將 session key 送回給 server 。
4. 最后用 session key 作加密,開(kāi)始傳送加密資料。
當(dāng)然了,以上只是一個(gè)簡(jiǎn)單的描述而已,真正的運(yùn)作會(huì)復(fù)雜得多,但基本原理則是一樣的。
數(shù)位簽章
無(wú)需再花費(fèi)太多的時(shí)間來(lái)解釋﹐相信您也知道資料加密的重要性和用途之廣了吧。除了可以用來(lái)做公司內(nèi)部的資料傳遞﹐也可以用來(lái)和客戶進(jìn)行保密交易。
在網(wǎng)路上﹐我們還可以使用“數(shù)位簽章(Digital Signature)”來(lái)進(jìn)行身份確認(rèn)。數(shù)位簽章可以說(shuō)是一個(gè)獨(dú)一無(wú)二的數(shù)值﹐它由使用者的私有鍵值進(jìn)行加密﹐然后利用公用鍵值進(jìn)行確認(rèn):若 public key 能通過(guò)驗(yàn)證,那我們就肯定所對(duì)應(yīng)的 private key 之正確性,否則,則可排除簽章所用的 private key 。換而言之,數(shù)位簽章兼具這兩種雙重屬性:"可確認(rèn)性" 及 "不可抵賴性" 。
時(shí)至今天網(wǎng)路的廣泛應(yīng)用﹐傳統(tǒng)的手寫(xiě)簽名顯然派不上用場(chǎng)。但有過(guò)網(wǎng)上購(gòu)物經(jīng)驗(yàn)的朋友﹐有幾何使用到“電子數(shù)位簽章”呢﹖可以說(shuō)﹐今天的網(wǎng)上購(gòu)物還是極俱風(fēng)險(xiǎn)的﹕既沒(méi)有簽名﹐也沒(méi)有電話確認(rèn)﹐銀行就照樣從您的信用卡帳戶中過(guò)戶給網(wǎng)路商店﹐都不知道他們憑什么居然這樣兒戲的﹖﹗要是,如果引入了數(shù)位簽章系統(tǒng)﹐由于它目前還被認(rèn)為是“幾乎無(wú)法偽造”的特性﹐網(wǎng)上購(gòu)物才會(huì)顯得是安全的﹕您使用您的信用卡和數(shù)位簽章進(jìn)行購(gòu)物﹐然后商店必須將付款資料連同您電子認(rèn)證資料一起送給銀行請(qǐng)求授權(quán)﹐待核實(shí)無(wú)誤之后﹐銀行才會(huì)進(jìn)行轉(zhuǎn)帳。這樣既保障信用卡不會(huì)被冒用﹐同時(shí)還可以減少錯(cuò)帳的出現(xiàn)。只可惜的是﹐現(xiàn)今的人們還普遍缺乏網(wǎng)路安全意識(shí)﹐就連銀行本身﹐也只顧賺錢﹐不理顧客利益﹐實(shí)在是有點(diǎn)可悲的。
網(wǎng)路認(rèn)證的取得
現(xiàn)在的許多網(wǎng)站為保護(hù)流覽者的資料保密性﹐大多會(huì)使用由 Netscape 公司開(kāi)發(fā)(Security Socket layer) 技術(shù)來(lái)進(jìn)行資料加密﹐它工作于 OSI 的應(yīng)用層和傳送層之間﹐所以不局限于特定的網(wǎng)路協(xié)定之上。不過(guò)﹐要提供 SSL 連結(jié)服務(wù)﹐網(wǎng)路伺服器和和流覽器雙方都必須支援才可。而 SSL 數(shù)位認(rèn)證的簽發(fā)﹐目前由美國(guó)的 VeriSing (http://www.verisign.com) 受理﹐伺服器如果要提供 SSL 服務(wù)﹐都必須到該公司注冊(cè)才可以。
而個(gè)人數(shù)位 ID 的申請(qǐng),也可從上述網(wǎng)站取得。除了 Verisign 之外,任何一家獲得信任授權(quán)的機(jī)構(gòu),如臺(tái)灣的網(wǎng)際威信(http://www.hitrust.com.tw),也可核發(fā)全球信任的數(shù)位簽章。
如果您使用網(wǎng)路購(gòu)物﹐SSL 技術(shù)可以保障您的信用卡號(hào)碼不會(huì)被除了商店之外的人獲得﹐如果再配合數(shù)位認(rèn)證的話﹐其安全性就更高了。