在左邊的對(duì)等點(diǎn) A 希望和在右邊的對(duì)等點(diǎn) B 建立安全的通信:對(duì)等點(diǎn) A 連接到對(duì)等點(diǎn) B 并通告自己的身份。對(duì)等點(diǎn) B 要求對(duì)等點(diǎn) A 認(rèn)證它自己。認(rèn)證可以通過(guò)許多途徑。如對(duì)等點(diǎn) A 和對(duì)等點(diǎn) B 都可以用一個(gè)共享密鑰交換秘密的訊息,或?qū)Φ赛c(diǎn) A 可以使用對(duì)應(yīng)于對(duì)等點(diǎn) B 持有的公用密匙的私用密鑰來(lái)完成同樣的操作。
對(duì)等點(diǎn) A 要求對(duì)等點(diǎn) B 認(rèn)證它自己。對(duì)等點(diǎn) B 通過(guò)分配給對(duì)等點(diǎn) A 特權(quán)的方式來(lái)授權(quán)對(duì)等點(diǎn) A 訪問(wèn)某些資源。在進(jìn)一步的通信發(fā)生之前,這兩個(gè)對(duì)等點(diǎn)可以協(xié)商加密它們之間的通道連接。假如對(duì)等點(diǎn) A 和對(duì)等點(diǎn) B 沒(méi)有相遇過(guò),那么它們就必須依靠一個(gè)可以信任的第三方,對(duì)等點(diǎn) C,來(lái)安排一個(gè)介紹,如圖 2 所示:
圖 2. 對(duì)等點(diǎn) C 為對(duì)等點(diǎn) A 和對(duì)等點(diǎn) B 作介紹
這是介紹操作的順序: 如上所述,對(duì)等點(diǎn) A 開(kāi)始與對(duì)等點(diǎn) C 的安全通信。對(duì)等點(diǎn) C 給予對(duì)等點(diǎn) A 認(rèn)證對(duì)等點(diǎn) B 的必要信息。這可能包括對(duì)等點(diǎn) B 的公用密匙,共享密鑰或者一個(gè)可以啟動(dòng)通信的令牌或證書。對(duì)等點(diǎn) B 開(kāi)始與對(duì)等點(diǎn) C 的安全通信并執(zhí)行同樣的操作。一旦該信息被傳送完成,對(duì)等點(diǎn) A 就可以開(kāi)始與對(duì)等點(diǎn) B 的通信了。還有別的機(jī)制也可以在兩個(gè)對(duì)等點(diǎn)間建立起安全通信。上述方法遵循的是標(biāo)準(zhǔn)安全層次(如 SSL)所使用的模式。
另一方面,假如實(shí)體不是內(nèi)容的來(lái)源,而是作為內(nèi)容的一個(gè)緩存或中轉(zhuǎn)站,比較明智的做法就是驗(yàn)證內(nèi)容。某些種類的內(nèi)容,比如活動(dòng)內(nèi)容(applets),就非常危險(xiǎn)以至于驗(yàn)證是強(qiáng)制要執(zhí)行的。有許多方法可以驗(yàn)證內(nèi)容,包括簡(jiǎn)單的校驗(yàn)和,加密和水印技術(shù)。下面我將描述一個(gè)基于數(shù)字簽名的機(jī)制。如圖 1 所示,對(duì)等點(diǎn) A 和對(duì)等點(diǎn) B 建立了一個(gè)安全的連接。
在它建立好通道后,對(duì)等點(diǎn) A 向?qū)Φ赛c(diǎn) B 要求一個(gè)內(nèi)容。假如對(duì)等點(diǎn) B 創(chuàng)建了該內(nèi)容,它就會(huì)在傳送該內(nèi)容之前為其數(shù)字簽名。假如對(duì)等點(diǎn) B 只是發(fā)布在別處創(chuàng)建的內(nèi)容,那么該內(nèi)容是已經(jīng)被簽名過(guò)的。
在對(duì)等點(diǎn) A 收到內(nèi)容后,它將驗(yàn)證附在內(nèi)容上的數(shù)字簽名。對(duì)許多主流的應(yīng)用而言,驗(yàn)證各種類型的內(nèi)容已經(jīng)是標(biāo)準(zhǔn)的操作過(guò)程。這同樣也將成為 P2P 應(yīng)用的標(biāo)準(zhǔn)操作過(guò)程。