二、傳輸層的安全性
在Internet應(yīng)用編程序中,通常使用廣義的進(jìn)程間通信(IPC)機(jī)制來與不同層次的安全協(xié)議打交道。比較流行的兩個(gè)IPC編程界面是BSD Sockets和傳輸層界面(TLI),在Unix系統(tǒng)V命令里可以找到。
在Internet中提供安全服務(wù)的首先一個(gè)想法便是強(qiáng)化它的IPC界面,如BSD Sockets等,具體做法包括雙端實(shí)體的認(rèn)證,數(shù)據(jù)加密密鑰的交換等。Netscape通信公司遵循了這個(gè)思路,制定了建立在可*的傳輸服務(wù)(如TCP/IP所提供)基礎(chǔ)上的安全套接層協(xié)議(SSL)。SSL版本3(SSL v3)于1995年12月制定。它主要包含以下兩個(gè)協(xié)議:
SSL記錄協(xié)議 它涉及應(yīng)用程序提供的信息的分段、壓縮、數(shù)據(jù)認(rèn)證和加密。SSL v3提供對(duì)數(shù)據(jù)認(rèn)證用的MD5和SHA以及數(shù)據(jù)加密用的R4和DES等的支持,用來對(duì)數(shù)據(jù)進(jìn)行認(rèn)證和加密的密鑰可以通過SSL的握手協(xié)議來協(xié)商。
SSL握手協(xié)議 用來交換版本號(hào)、加密算法、(相互)身份認(rèn)證并交換密鑰。SSL v3 提供對(duì)Deffie-Hellman密鑰交換算法、基于RSA的密鑰交換機(jī)制和另一種實(shí)現(xiàn)在 Fortezza chip上的密鑰交換機(jī)制的支持。
Netscape通信公司已經(jīng)向公眾推出了SSL的參考實(shí)現(xiàn)(稱為SSLref)。另一免費(fèi)的SSL實(shí)現(xiàn)叫做SSLeay。SSLref和SSLeay均可給任何TCP/IP應(yīng)用提供SSL功能。Internet號(hào)碼分配*(IANA)已經(jīng)為具備SSL功能的應(yīng)用分配了固定端口號(hào),例如,帶SSL的 HTTP(https)被分配的端口號(hào)為443,帶SSL的SMTP(ssmtp)被分配的端口號(hào)為465,帶SSL的NNTP(snntp)被分配的端口號(hào)為563。
微軟推出了SSL2的改進(jìn)版本稱為PCT(私人通信技術(shù))。至少?gòu)乃褂玫挠涗浉袷絹砜?,SSL和PCT是十分相似的。它們的主要差別是它們?cè)诎姹咎?hào)字段的最顯著位(The Most Significant Bit)上的取值有所不同: SSL該位取0,PCT該位取1。這樣區(qū)分之后,就可以對(duì)這兩個(gè)協(xié)議都給以支持。
1996年4月,IETF授權(quán)一個(gè)傳輸層安全(TLS)工作組著手制定一個(gè)傳輸層安全協(xié)議(TLSP),以便作為標(biāo)準(zhǔn)提案向IESG正式提交。TLSP將會(huì)在許多地方酷似SSL。
前面已介紹Internet層安全機(jī)制的主要優(yōu)點(diǎn)是它的透明性,即安全服務(wù)的提供不要求應(yīng)用層做任何改變。這對(duì)傳輸層來說是做不到的。原則上,任何TCP/IP應(yīng)用,只要應(yīng)用傳輸層安全協(xié)議,比如說SSL或PCT,就必定要進(jìn)行若干修改以增加相應(yīng)的功能,并使用(稍微)不同的IPC界面。于是,傳輸層安全機(jī)制的主要缺點(diǎn)就是要對(duì)傳輸層IPC界面和應(yīng)用程序兩端都進(jìn)行修改。可是,比起Internet層和應(yīng)用層的安全機(jī)制來,這里的修改還是相當(dāng)小的。另一個(gè)缺點(diǎn)是,基于UDP的通信很難在傳輸層建立起安全機(jī)制來。同網(wǎng)絡(luò)層安全機(jī)制相比,傳輸層安全機(jī)制的主要優(yōu)點(diǎn)是它提供基于進(jìn)程對(duì)進(jìn)程的(而不是主機(jī)對(duì)主機(jī)的)安全服務(wù)。這一成就如果再加上應(yīng)用級(jí)的安全服務(wù),就可以再向前跨越一大步了。
在Internet應(yīng)用編程序中,通常使用廣義的進(jìn)程間通信(IPC)機(jī)制來與不同層次的安全協(xié)議打交道。比較流行的兩個(gè)IPC編程界面是BSD Sockets和傳輸層界面(TLI),在Unix系統(tǒng)V命令里可以找到。
在Internet中提供安全服務(wù)的首先一個(gè)想法便是強(qiáng)化它的IPC界面,如BSD Sockets等,具體做法包括雙端實(shí)體的認(rèn)證,數(shù)據(jù)加密密鑰的交換等。Netscape通信公司遵循了這個(gè)思路,制定了建立在可*的傳輸服務(wù)(如TCP/IP所提供)基礎(chǔ)上的安全套接層協(xié)議(SSL)。SSL版本3(SSL v3)于1995年12月制定。它主要包含以下兩個(gè)協(xié)議:
SSL記錄協(xié)議 它涉及應(yīng)用程序提供的信息的分段、壓縮、數(shù)據(jù)認(rèn)證和加密。SSL v3提供對(duì)數(shù)據(jù)認(rèn)證用的MD5和SHA以及數(shù)據(jù)加密用的R4和DES等的支持,用來對(duì)數(shù)據(jù)進(jìn)行認(rèn)證和加密的密鑰可以通過SSL的握手協(xié)議來協(xié)商。
SSL握手協(xié)議 用來交換版本號(hào)、加密算法、(相互)身份認(rèn)證并交換密鑰。SSL v3 提供對(duì)Deffie-Hellman密鑰交換算法、基于RSA的密鑰交換機(jī)制和另一種實(shí)現(xiàn)在 Fortezza chip上的密鑰交換機(jī)制的支持。
Netscape通信公司已經(jīng)向公眾推出了SSL的參考實(shí)現(xiàn)(稱為SSLref)。另一免費(fèi)的SSL實(shí)現(xiàn)叫做SSLeay。SSLref和SSLeay均可給任何TCP/IP應(yīng)用提供SSL功能。Internet號(hào)碼分配*(IANA)已經(jīng)為具備SSL功能的應(yīng)用分配了固定端口號(hào),例如,帶SSL的 HTTP(https)被分配的端口號(hào)為443,帶SSL的SMTP(ssmtp)被分配的端口號(hào)為465,帶SSL的NNTP(snntp)被分配的端口號(hào)為563。
微軟推出了SSL2的改進(jìn)版本稱為PCT(私人通信技術(shù))。至少?gòu)乃褂玫挠涗浉袷絹砜?,SSL和PCT是十分相似的。它們的主要差別是它們?cè)诎姹咎?hào)字段的最顯著位(The Most Significant Bit)上的取值有所不同: SSL該位取0,PCT該位取1。這樣區(qū)分之后,就可以對(duì)這兩個(gè)協(xié)議都給以支持。
1996年4月,IETF授權(quán)一個(gè)傳輸層安全(TLS)工作組著手制定一個(gè)傳輸層安全協(xié)議(TLSP),以便作為標(biāo)準(zhǔn)提案向IESG正式提交。TLSP將會(huì)在許多地方酷似SSL。
前面已介紹Internet層安全機(jī)制的主要優(yōu)點(diǎn)是它的透明性,即安全服務(wù)的提供不要求應(yīng)用層做任何改變。這對(duì)傳輸層來說是做不到的。原則上,任何TCP/IP應(yīng)用,只要應(yīng)用傳輸層安全協(xié)議,比如說SSL或PCT,就必定要進(jìn)行若干修改以增加相應(yīng)的功能,并使用(稍微)不同的IPC界面。于是,傳輸層安全機(jī)制的主要缺點(diǎn)就是要對(duì)傳輸層IPC界面和應(yīng)用程序兩端都進(jìn)行修改。可是,比起Internet層和應(yīng)用層的安全機(jī)制來,這里的修改還是相當(dāng)小的。另一個(gè)缺點(diǎn)是,基于UDP的通信很難在傳輸層建立起安全機(jī)制來。同網(wǎng)絡(luò)層安全機(jī)制相比,傳輸層安全機(jī)制的主要優(yōu)點(diǎn)是它提供基于進(jìn)程對(duì)進(jìn)程的(而不是主機(jī)對(duì)主機(jī)的)安全服務(wù)。這一成就如果再加上應(yīng)用級(jí)的安全服務(wù),就可以再向前跨越一大步了。