版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第3章 安全網(wǎng)絡(luò)協(xié)議本章學(xué)習(xí)目標(biāo): 掌握TCP/IP的基本安全知識; 掌握IPSec協(xié)議的內(nèi)容; 掌握SSL協(xié)議基本知識; 掌握SET協(xié)議的關(guān)鍵步驟。3.1 TCP/IP基本知識 TCP/IP是Internet組網(wǎng)的工業(yè)標(biāo)準(zhǔn),電子商務(wù)四個層次中的最底層就是它,電子商務(wù)必須關(guān)注它的安全,這就如住在高樓層的人要關(guān)心樓的地基一樣。3.1.1 互聯(lián)網(wǎng)工作原理網(wǎng)絡(luò)硬件通信是以位串方式進(jìn)行點(diǎn)到點(diǎn)傳送的,使用網(wǎng)絡(luò)的應(yīng)用程序并不直接同網(wǎng)絡(luò)硬件打交道,而是與按給定規(guī)則進(jìn)行通信的協(xié)議軟件打交道。協(xié)議是一套用于信息交換的規(guī)則,如使用的語言和信息發(fā)送規(guī)則,通信涉及的所有部分都必須認(rèn)同該規(guī)則。設(shè)計(jì)者不是設(shè)計(jì)一個單一、巨
2、大的協(xié)議來為所有可能形式的通信規(guī)定完整的細(xì)節(jié),而是采取了把通信問題劃分成多個子問題,然后為每個子問題設(shè)計(jì)一個單獨(dú)的協(xié)議的方法。 TCP/IP是互聯(lián)網(wǎng)的主流協(xié)議,它是一組通信協(xié)議的代名詞。 1. TCP/IP協(xié)議的層次模型2. 網(wǎng)絡(luò)層協(xié)議網(wǎng)絡(luò)層協(xié)議包括IP協(xié)議、ICMP協(xié)議、ARP協(xié)議和RARP協(xié)議。 (1)網(wǎng)際協(xié)議IP IP的具體功能:路由選擇和轉(zhuǎn)發(fā);通過網(wǎng)絡(luò)連接在主機(jī)之間提供分組交換功能;分組的分段與成塊,差錯控制、順序化、流量控制。(2)地址解析協(xié)議ARP和反向地址解析協(xié)議RARP ARP:將IP地址映射成物理地址。ARP協(xié)議存在ARP欺騙的攻擊風(fēng)險。 RARP:將物理地址映射成IP地址。
3、 (3)Internet控制消息協(xié)議ICMPICMP的作用:診斷網(wǎng)絡(luò)(關(guān)機(jī)、堵塞和工作不正常、網(wǎng)絡(luò)中其他故障等)。Ping是ICMP協(xié)議的一個實(shí)現(xiàn)。3. 傳輸層協(xié)議 傳輸層作用:為兩臺主機(jī)上的應(yīng)用程序提供端到端的通信。TCP:可靠、面向連接、字節(jié)流有序,可關(guān)閉UDP:不可靠、不需要連接、報(bào)文。TCP協(xié)議概述 用于提供可靠的、全雙工的虛擬線路連接,連接是在發(fā)送和連接的節(jié)點(diǎn)端口號之間實(shí)施的。TCP協(xié)議負(fù)責(zé)將信息切割成一塊塊資料包,在遠(yuǎn)端主機(jī)重新按順序組合起資料包,并且負(fù)責(zé)重送遺失的資料包。積極確認(rèn)和重發(fā)送TCP數(shù)據(jù)包格式源端口號目的端口號序號ACK(確認(rèn)應(yīng)答)號片偏移保留URGACKPSHRSTS
4、YNFIN窗口大小校驗(yàn)和緊急指針選項(xiàng)填充碼數(shù)據(jù)0 4 8 12 16 20 24 28 32TCP包頭格式的字段含義序號:用于保證數(shù)據(jù)的到達(dá)順序與可靠性。利用隨機(jī)值確定初始值,以字節(jié)為單位表示所發(fā)送數(shù)據(jù)的位置ACK號:是用于保證可靠性的確認(rèn)號碼。將下一個所應(yīng)該接收到的序號作為應(yīng)答確認(rèn)號來設(shè)定Offset:表示TCP數(shù)據(jù)的起始位置標(biāo)志:6比特,各比特作用為URG:表示是應(yīng)該緊急處理的數(shù)據(jù)ACK:表示應(yīng)答確認(rèn)號的字段是有效的PSH:表示是需要盡快向應(yīng)用層遞交的數(shù)據(jù)RST:重建連接SYN:表示建立連接的要求FIN:表示結(jié)束通信緊急指針:以字節(jié)為單位表示放置需要緊急處理的數(shù)據(jù)的位置。 TCP連接連接通
5、過“三次握手Three-Way Handshake”過程. SYN=1 和ACK=0打開連接封包. SYN=1 和ACK=1打開連接通告. SYN=0 和ACK=1數(shù)據(jù)封包或ACK封包 TCP連接終止. 客戶方調(diào)用close,TCP發(fā)送一個FIN分組. S確認(rèn)該FIN分組,傳給本機(jī)應(yīng)用進(jìn)程. 一段時間后?S的應(yīng)用進(jìn)程close,發(fā)送給客戶一個FIN分組;. 客戶方對這給FIN分組確認(rèn)。 TCP/SYN攻擊4. 應(yīng)用層協(xié)議(1)仿真終端協(xié)議Telnet(2)文件傳輸協(xié)議FTP(3)HTTP協(xié)議5. 以太網(wǎng)以太網(wǎng)是目前最常用的一種局域網(wǎng)。傳統(tǒng)的以太網(wǎng)一般采用廣播方式通信,即所有同一以太網(wǎng)段內(nèi)的設(shè)備
6、都接收到每個站點(diǎn)發(fā)出的信息包,但是只有目的方接收下來并提交給上層的主機(jī)進(jìn)行處理,其他站點(diǎn)則將該包丟棄。以太網(wǎng)的發(fā)展是從1973年施樂公司(Xerox)提出“以太網(wǎng)(Ethernet)”開始的。以太網(wǎng)站點(diǎn)發(fā)送信息包的策略是采用載波監(jiān)聽多點(diǎn)訪問/沖突檢測CSMA/CD協(xié)議,CSMA/CD協(xié)議分為以下幾個步驟: 載波監(jiān)聽 信道忙碌 信道空閑 沖突檢測 遇忙停發(fā) 多路存取6. 特殊的IP地址 如果網(wǎng)絡(luò)ID為127,主機(jī)地址任意,這種地址是用來做循環(huán)測試用的,不可用作其它用途。在IP地址中,如果某一類網(wǎng)絡(luò)的主機(jī)地址為全1,則該IP地址表示是一個網(wǎng)絡(luò)或子網(wǎng)的廣播地址。IP地址中的全0表示“這個”,全1表示
7、“所有”。0. 0. 0. 0表示本機(jī);網(wǎng)絡(luò)標(biāo)識號為全0的IP地址表示本網(wǎng)絡(luò)的這個主機(jī);主機(jī)標(biāo)識號為全0的IP地址表示這個網(wǎng)絡(luò);55為局域網(wǎng)廣播地址;主機(jī)標(biāo)識號為全1的IP地址表示向指定網(wǎng)絡(luò)定向廣播;127.X.X.X是回傳地址,用于本機(jī)器上的測試和進(jìn)程間通信。 若IP分組的目標(biāo)地址是,則表明該分組將回傳給本機(jī)。私有地址的范圍是: 54 (A類) 54 (B類) 54 (C類)7. 下一代的網(wǎng)際協(xié)議IPv6現(xiàn)在看來,當(dāng)初IP地址的設(shè)計(jì)確實(shí)有不夠合理的地方。為此,在l992年6月就提出要制訂下一代的IP,即IPng(IP Next Generation )。由于IPv5打算用作面向連接的網(wǎng)際層協(xié)
8、議,因此IPng現(xiàn)正式稱為IPv6。1995年以后陸續(xù)公布了一系列有關(guān)IPv6的協(xié)議、編址方法、路由選擇以及安全等問題的RFC文檔。IPv6把原來IPv4地址增大到了128bit,其地址空間大于3.4 1038,是原來IPv4地址空間的296倍。 這種下一代的IP協(xié)議并不是完全拋棄了原來的IPv4,且允許與IPv4在若干年內(nèi)共存。 IPv6對IP數(shù)據(jù)報(bào)協(xié)議單元的頭部與原來的IPv4相比進(jìn)行了相應(yīng)的簡化,僅包含7個字段(IPv4有13個),這樣數(shù)據(jù)報(bào)文經(jīng)過中間的各個路由器時,各個路由器對其處理的速度加快,這樣提高了網(wǎng)絡(luò)吞吐率。 IPv6另一個主要的改善方面是在安全方面。版本4bit業(yè)務(wù)流類別8流
9、標(biāo)簽20凈荷長度16bit下一個頭8跳極限8bit源IP地址128bit目的IP地址128bit數(shù)據(jù)報(bào)的數(shù)據(jù)部分(凈荷)IPv6包頭中的重要參數(shù)業(yè)務(wù)類別(Traffic Class):劃分IP包為16級優(yōu)先級。07用于網(wǎng)絡(luò)擁塞,815用于實(shí)時性業(yè)務(wù)處理。數(shù)據(jù)流標(biāo)志 (Flow Label):用于定義一個需要特殊處理的傳輸?shù)臄?shù)據(jù)流。進(jìn)行不同控制的擴(kuò)展包頭站至站選項(xiàng)包頭(Hop-by-Hop Header)目的地選項(xiàng)包頭(Destination Option Header)路由選項(xiàng)包頭(Routing Header)分割選項(xiàng)包頭(Fragment Header)認(rèn)證選項(xiàng)包頭(Authenticat
10、ion Header)數(shù)據(jù)加密選項(xiàng)包頭(Encapsulation Security Payload Header)上層協(xié)議選項(xiàng)包頭(Upper-layer Header)3.1.2 基于TCP/IP的網(wǎng)絡(luò)編程接口:SOCKET接口電子商務(wù)安全威脅中,主要的一項(xiàng)就是來自于網(wǎng)絡(luò)軟件。安全防范人員要能分析和讀懂各種攻擊程序(掃描、木馬、蠕蟲乃至病毒)的源代碼,就必須了解和掌握基于TCP/IP協(xié)議的網(wǎng)絡(luò)編程接口:Socket接口。1. SOCKET編程思想“Socket”是使用標(biāo)準(zhǔn)Unix文件描述符(file descriptor)和其它程序通訊的方式。Unix程序在執(zhí)行任何形式的I/O的時候,程序
11、是在讀或者寫一個文件描述符。一個文件描述符只是一個和打開的文件相關(guān)聯(lián)的整數(shù)。這個文件可能是一個網(wǎng)絡(luò)連接,F(xiàn)IFO,管道,終端,磁盤上的文件或者什么其它的東西。如果想和Internet上別的程序通訊的時候,就要使用到網(wǎng)絡(luò)通訊的文件描述符,一般稱為Socket描述符。Socket描述符指向一個與該Socket有關(guān)的數(shù)據(jù)結(jié)構(gòu)。一旦建立了一個Socket,應(yīng)用程序可以使用其他調(diào)用來實(shí)現(xiàn)基于網(wǎng)絡(luò)的通信。Socket分為三種類型 (1)流式套接口(SOCK_STREAM)(2)數(shù)據(jù)報(bào)式套接口(SOCK_DGRAM)(3)原始式套接口(SOCK_RAW)無連接套接口應(yīng)用流程有連接套接口應(yīng)用流程2. 基本套接
12、口系統(tǒng)調(diào)用結(jié)構(gòu)體首先是簡單的一個:socket描述符。它是下面的類型: int 第一個結(jié)構(gòu)-struct sockaddr.。這個結(jié)構(gòu) 為許多類型的套接字儲存套接字地址信息: struct sockaddr unsigned short sa_family; /* 地址家族, AF_xxx */ char sa_data14; /*14字節(jié)協(xié)議地址*/ ;sa_family 能夠是各種各樣的類型,但通常都是 “AF_INET”。 sa_data包含套接字中的目標(biāo)地址和端口信息。這好像有點(diǎn) 不明智。 為了處理struct sockaddr,程序員創(chuàng)造了一個并列的結(jié)構(gòu): struct sockad
13、dr_in (in 代表 Internet。) struct sockaddr_in short int sin_family; /* 通信類型 */ unsigned short int sin_port; /* 端口 */ struct in_addr sin_addr; /* Internet 地址 */ unsigned char sin_zero8; /* 與sockaddr結(jié)構(gòu)的長度相同*/ ; 域名服務(wù)(DNS) struct hostent char *h_name; char *h_aliases; int h_addrtype; int h_length; char *h_
14、addr_list; ; #define h_addr h_addr_list0 這里是這個數(shù)據(jù)結(jié)構(gòu)的詳細(xì)資料: struct hostent: h_name 地址的正式名稱。 h_aliases 空字節(jié)-地址的預(yù)備名稱的指針。 h_addrtype 地址類型; 通常是AF_INET。 h_length 地址的比特長度。 h_addr_list 零字節(jié)-主機(jī)網(wǎng)絡(luò)地址指針。網(wǎng)絡(luò)字節(jié)順序。 h_addr - h_addr_list中的第一地址。 gethostbyname() 成功時返回一個指向結(jié)構(gòu)體 hostent 的指針,或者 是個空 (NULL) 指針。 常用的socket調(diào)用函數(shù)accep
15、t()* 響應(yīng)連接請求,并且新建一個套接口。原來的套接口則返回監(jiān)聽狀態(tài)(服務(wù)器用)bind() 把一個本地的名字和一個套接口捆綁起來closesocket()* 把套接口從擁有對象參考表中取消。該函數(shù)只有在SO_LINGER被設(shè)置時才會阻塞connect()* 與服務(wù)器建立連接(客戶機(jī)用)getpeername() 得到連接在指定套接口上的對等通訊方的名字getsockname() 得到指定套接口上當(dāng)前的名字getsockopt() 得到與指定套接口相關(guān)的屬性選項(xiàng)htonl() 把32位的數(shù)字從主機(jī)字節(jié)順序轉(zhuǎn)換到網(wǎng)絡(luò)字節(jié)順序htons()把16位的數(shù)字從主機(jī)字節(jié)順序轉(zhuǎn)換到網(wǎng)絡(luò)字節(jié)順序inet_
16、addr() 把一個Internet標(biāo)準(zhǔn)的“.”記號地址轉(zhuǎn)換成Internet地址數(shù)值inet_ntoa() 把Internet地址數(shù)值轉(zhuǎn)換成帶“.”的ASCII字符串listen() 設(shè)置最大監(jiān)聽隊(duì)列(服務(wù)器用)ntohl() 把32位數(shù)字從網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)換成主機(jī)字節(jié)順序ntohs() 把16位數(shù)字從網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)換成主機(jī)字節(jié)順序recv()* 從一個已經(jīng)連接的套接口接收數(shù)據(jù)(流式)recvfrom()* 從一個已經(jīng)連接的或者未連接的套接口接收數(shù)據(jù)(數(shù)據(jù)報(bào)式)select()* 執(zhí)行同步I/O多路復(fù)用send()* 從一個已經(jīng)連接的套接口發(fā)送數(shù)據(jù)(流式)sendto()* 從已連接或未連接的
17、套接口發(fā)送數(shù)據(jù)(數(shù)據(jù)報(bào)式)setsockopt() 設(shè)置與指定套接口相關(guān)的屬性選項(xiàng)shutdown() 關(guān)閉一部分全雙工的連接socket() 創(chuàng)建一個通訊端點(diǎn)并返回一個套接口標(biāo)識符gethostbyaddr()* 從網(wǎng)絡(luò)地址得到對應(yīng)的名字(有可能多個)和地址gethostbyname()* 從主機(jī)名得到對應(yīng)的名字和地址gethostname() 得到本地主機(jī)名*表示例程在某些情況下可能會阻塞int socket(int domain, int type, int protocol); 但是它們的參數(shù)是什么? 首先,domain 應(yīng)該設(shè)置成 “AF_INET”,就 象上面的數(shù)據(jù)結(jié)構(gòu)struct
18、 sockaddr_in 中一樣。然后,參數(shù) type 告訴內(nèi)核 是 SOCK_STREAM 類型還是 SOCK_DGRAM 類型。最后,把 protocol 設(shè)置為 “0”。 int bind(int sockfd, struct sockaddr *my_addr, int addrlen); sockfd 是調(diào)用 socket 返回的文件描述符。my_addr 是指向數(shù)據(jù)結(jié)構(gòu) struct sockaddr 的指針,它保存你的地址(即端口和 IP 地址) 信息。 addrlen 設(shè)置為 sizeof(struct sockaddr)。 int connect(int sockfd, st
19、ruct sockaddr *serv_addr, int addrlen); sockfd 是系統(tǒng)調(diào)用 socket() 返回的套接字文件描述符。serv_addr 是 保存著目的地端口和 IP 地址的數(shù)據(jù)結(jié)構(gòu) struct sockaddr。addrlen 設(shè)置 為 sizeof(struct sockaddr)。 int listen(int sockfd, int backlog); sockfd 是調(diào)用 socket() 返回的套接字文件描述符。backlog 是在進(jìn)入 隊(duì)列中允許的連接數(shù)目。什么意思呢? 進(jìn)入的連接是在隊(duì)列中一直等待直 到你接受 (accept() 請看下面的文章)
20、連接。它們的數(shù)目限制于隊(duì)列的允許。 大多數(shù)系統(tǒng)的允許數(shù)目是20,你也可以設(shè)置為5到10。和別的函數(shù)一樣,在發(fā)生錯誤的時候返回-1,并設(shè)置全局錯誤變量 errno。 int accept(int sockfd, void *addr, int *addrlen); sockfd 相當(dāng)簡單,是和 listen() 中一樣的套接字描述符。addr 是個指 向局部的數(shù)據(jù)結(jié)構(gòu) sockaddr_in 的指針。這是要求接入的信息所要去的地 方(你可以測定那個地址在那個端口呼叫你)。在它的地址傳遞給 accept 之 前,addrlen 是個局部的整形變量,設(shè)置為 sizeof(struct sockadd
21、r_in)。 accept 將不會將多余的字節(jié)給 addr。如果你放入的少些,那么它會通過改 變 addrlen 的值反映出來。同樣,在錯誤時返回-1,并設(shè)置全局錯誤變量 errno。 int send(int sockfd, const void *msg, int len, int flags); sockfd 是你想發(fā)送數(shù)據(jù)的套接字描述符(或者是調(diào)用 socket() 或者是 accept() 返回的。)msg 是指向你想發(fā)送的數(shù)據(jù)的指針。len 是數(shù)據(jù)的長度。 把 flags 設(shè)置為 0 就可以了。 int recv(int sockfd, void *buf, int len, un
22、signed int flags); sockfd 是要讀的套接字描述符。buf 是要讀的信息的緩沖。len 是緩 沖的最大長度。flags 可以設(shè)置為0。(請參考recv() 的 man page。) recv() 返回實(shí)際讀入緩沖的數(shù)據(jù)的字節(jié)數(shù)?;蛘咴阱e誤的時候返回-1, 同時設(shè)置 errno。 close(sockfd); 它將防止套接字上更多的數(shù)據(jù)的讀寫。任何在另一端讀寫套接字的企 圖都將返回錯誤信息。 如果你想在如何關(guān)閉套接字上有多一點(diǎn)的控制,你可以使用函數(shù)shutdown()。它允許你將一定方向上的通訊或者雙向的通訊(就象close()一 樣)關(guān)閉,你可以使用: int shutd
23、own(int sockfd, int how); sockfd 是你想要關(guān)閉的套接字文件描述符。how 的值是下面的其中之 一: 0 不允許接收 1 不允許發(fā)送 2 不允許發(fā)送和接收(和 close() 一樣) shutdown() 成功時返回 0,失敗時返回 -1(同時設(shè)置 errno。) 如果在無連接的數(shù)據(jù)報(bào)套接字中使用shutdown(),那么只不過是讓 send() 和 recv() 不能使用(記住你在數(shù)據(jù)報(bào)套接字中使用了 connect 后 是可以使用它們的)。 3.2 IPSEC IPsec是IETF于1998年11月公布的IP安全標(biāo)準(zhǔn),其目標(biāo)是為IPv4和IPv6提供具有較強(qiáng)的
24、互操作能力、高質(zhì)量和基于密碼的安全。IPsec在網(wǎng)絡(luò)層上對數(shù)據(jù)包進(jìn)行高強(qiáng)度的安全處理,提供數(shù)據(jù)源驗(yàn)證、無連接數(shù)據(jù)完整性、數(shù)據(jù)機(jī)密性、抗重播和有限業(yè)務(wù)流機(jī)密性等安全服務(wù)。IPsec協(xié)議對IPv4是可選的,對IPv6是強(qiáng)制性的。IPSec包含3個重要的協(xié)議:AH、ESP、IKEAH和ESP兩個協(xié)議都使用SA來保護(hù)通信,而IKE的主要功能就是在通信雙方協(xié)商SA。3.2.1 IPsec體系結(jié)構(gòu)體系結(jié)構(gòu)ESPAH加密算法驗(yàn)證算法解釋域密鑰管理(IKE)策略(SA、SAD、SPD)1. 安全關(guān)聯(lián)SA(Security Association)安全聯(lián)盟(SA)SA(Security Association,
25、安全聯(lián)盟)是兩個IPSec實(shí)體(主機(jī)、安全網(wǎng)關(guān))之間經(jīng)過協(xié)商建立起來的一種協(xié)定,內(nèi)容包括采用何種IPSec協(xié)議(AH和ESP)、運(yùn)行模式(傳輸模式還是隧道模式)、驗(yàn)證算法、加密算法、加密密鑰、密鑰生存期、抗重放窗口、計(jì)數(shù)器等,從而決定了保護(hù)什么、如何保護(hù)以及誰來保護(hù)。SA是構(gòu)成IPSec的基礎(chǔ)。SA是單向的,進(jìn)入(inbound)SA負(fù)責(zé)處理接收到的數(shù)據(jù)包,外出(outbound)SA負(fù)責(zé)處理要發(fā)送的數(shù)據(jù)包。因此每個通信方必須要有兩種SA,一個進(jìn)入SA,一個外出SA,這兩個SA構(gòu)成一個SA束(SA Bundle)。每個SA由三元組唯一標(biāo)識SPI(Security Parameter Index
26、,安全參數(shù)索引)源/目的IP地址IPSec協(xié)議:采用AH或ESPIPsec提供了SA的通用模型:SAD、SPD和Selector2. 安全聯(lián)盟數(shù)據(jù)庫(SAD)SAD(Security Association Database,安全聯(lián)盟數(shù)據(jù)庫)是將所有的SA以某種數(shù)據(jù)結(jié)構(gòu)集中存儲的一個列表。SAD的內(nèi)容本方序號計(jì)數(shù)器:一個32位值用于生成AH或ESP頭中的序數(shù)字段;對方計(jì)數(shù)器溢出位:一個標(biāo)志位表明該序數(shù)計(jì)數(shù)器是否溢出,如果是,將生成一個審計(jì)事件,并禁止本SA的進(jìn)一步的包傳送??怪胤牛ǚ祷胤牛┐翱冢河糜诖_定一個入站的AH或ESP包是否是一個回放 AH驗(yàn)證算法、密鑰等:認(rèn)證算法、密鑰、密鑰生存期、以
27、及與AH一起使用的其它參數(shù) ESP加密算法、密鑰、IV模式、IV、ESP驗(yàn)證算法、密鑰等 SA的生存期:一個時間間隔或字節(jié)記數(shù),到時后一個SA必須用一個新的SA替換或終止,以及一個這些活動發(fā)生的指示。 IPsec協(xié)議模式(運(yùn)行模式) PMTU:任何遵從的最大傳送單位和老化變量3. 安全策略SP(Security Policy)SP(Security Policy,安全策略)指示對IP數(shù)據(jù)包提供何種保護(hù),并以何種方式實(shí)施保護(hù)。SP主要根據(jù)源IP地址、目的IP地址、入數(shù)據(jù)還是出數(shù)據(jù)等來標(biāo)識。SPD(Security Policy Database,安全策略數(shù)據(jù)庫)是將所有的SP以某種數(shù)據(jù)結(jié)構(gòu)集中存
28、儲的列表。當(dāng)將IP包發(fā)送或接收時,首先要查找SPD來決定如何進(jìn)行處理:丟棄不用IPSec使用IPSecSPD定義了IP數(shù)據(jù)報(bào)和數(shù)據(jù)報(bào)所需的SA。每一個SPD都由一組IP和上層協(xié)議字段值定義,稱為選擇符。這些選擇符用來過濾外出的數(shù)據(jù)報(bào),以便將它映射為特定的SA。這些選擇符包括:目的IP地址;源IP地址;操作系統(tǒng)中的用戶標(biāo)識UserID;數(shù)據(jù)敏感級別;傳輸層協(xié)議;源/目的端口4. IPSec運(yùn)行模式IPSec傳輸模式傳輸模式要保護(hù)的內(nèi)容是IP包的載荷,即TCP/UDP等傳輸層協(xié)議、ICMP協(xié)議,或者AH、ESP協(xié)議。傳輸模式為上層協(xié)議提供安全保護(hù)。通常,傳輸模式只用于兩臺主機(jī)之間的安全通信。IPS
29、ec隧道模式隧道模式保護(hù)的內(nèi)容是整個原始IP包,隧道模式為IP協(xié)議提供安全保護(hù)。通常,IPSec雙方有一方是安全網(wǎng)關(guān)或路由器,就必須使用隧道模式。IPSec隧道模式的數(shù)據(jù)包有兩個IP頭:內(nèi)部頭和外部頭。3.2.2 IPSec安全協(xié)議ESP1、ESP概述ESP(Encapsulating Security Payload,封裝安全載荷)也是一種增強(qiáng)IP層安全的IPSec協(xié)議,由RFC 2406定義,ESP協(xié)議除了可以提供無連接的完整性、數(shù)據(jù)來源驗(yàn)證和抗重放攻擊服務(wù)外,還提供數(shù)據(jù)包加密和數(shù)據(jù)流加密服務(wù)。與AH一樣,ESP協(xié)議也是通過驗(yàn)證算法實(shí)現(xiàn)數(shù)據(jù)完整性和數(shù)據(jù)來源驗(yàn)證的。不過,ESP驗(yàn)證的數(shù)據(jù)范圍
30、要小一些。ESP協(xié)議規(guī)定了所有IPSec系統(tǒng)必須實(shí)現(xiàn)的驗(yàn)證算法包括:HMAC-MD5、HMAC-SHA1、NULL。ESP頭部格式ESP協(xié)議也是被IP協(xié)議封裝的協(xié)議之一, 它為IP數(shù)據(jù)提供保密性、提供認(rèn)證服務(wù)。一個IP包的載荷是否是ESP協(xié)議,由IP協(xié)議頭部中的協(xié)議字段判斷,ESP協(xié)議字段是50。ESP協(xié)議緊跟在IP包頭后面。根據(jù)使用的加密類型和方式,ESP的格式也會有所不同。加密關(guān)聯(lián)的密鑰都是使用SPI來選擇的。 格式如下:安全參數(shù)索引(SPI)(32比特) 序列號 (32比特) 載荷數(shù)據(jù)(變長) 填充(0-255字節(jié)) 填充長度(8比特) 下一個頭(8比特) 認(rèn)證數(shù)據(jù)(變長)2、ESP運(yùn)行
31、模式ESP可以用于兩種模式:傳輸模式和隧道模式。這些模式的工作方式與它們在AH中的工作方式類似,但是有一例外:對ESP,在每一個數(shù)據(jù)之后將附加一個尾部(trailer)的數(shù)據(jù)。ESP隧道模式 ESP(數(shù)據(jù)安全封裝協(xié)議 )傳輸模式初始的IP頭 ESP頭 TCP 數(shù)據(jù) ESP尾 ESP認(rèn)證ESP頭初始的IP頭 躍點(diǎn)數(shù)、路由分段 ESP頭 ESP尾ESP認(rèn)證目的選項(xiàng) TCP 數(shù)據(jù)ESP傳輸模式在典型IPv4和IPv6數(shù)據(jù)包中的位置 IPV4 數(shù)據(jù)包IPV6 數(shù)據(jù)包隧道模式ESP隧道模式在IPv4和IPv6數(shù)據(jù)包中的位置 新的IP頭ESP頭ESP尾ESP認(rèn)證初始的IP頭TCP數(shù)據(jù)據(jù)新的IP頭 新的擴(kuò)展
32、項(xiàng)頭ESP頭ESP尾ESP認(rèn)證初始的IP頭TCP數(shù) 據(jù)擴(kuò)展項(xiàng)頭IPV4 數(shù)據(jù)包IPV6數(shù)據(jù)包3.2.3 IPSec安全協(xié)議AH 1、AH概述AH(Authentication Header,驗(yàn)證頭部協(xié)議)由RFC 2402定義,是用于增強(qiáng)IP層安全的一個IPSec協(xié)議,該協(xié)議可以提供無連接的數(shù)據(jù)完整性、數(shù)據(jù)來源驗(yàn)證和抗重放攻擊服務(wù)。AH協(xié)議對IP層的數(shù)據(jù)使用密碼學(xué)中的驗(yàn)證算法,從而使得對IP包的修改可以被檢測出來。具體為密碼學(xué)中的MAC(報(bào)文驗(yàn)證碼)算法。MAC算法將一段給定的任意長度的報(bào)文和一個密鑰作為輸入,產(chǎn)生一個固定長度的輸出報(bào)文,稱為報(bào)文摘要或者指紋。實(shí)際上,它是由HASH算法演變而來
33、,只不過HASH算法不需要密鑰,這種將輸入報(bào)文和密鑰結(jié)合在一起然后應(yīng)用HASH算法的MAC算法稱為HMAC。如HMAC-MD5、HMAC-SHA1。只有通信雙方使用一致的共享密鑰產(chǎn)生的報(bào)文摘要才是相同的,從而保證數(shù)據(jù)的完整性與可靠性。不同的IPSec系統(tǒng),其可用的HMAC算法可能不同,但所有IPSec都必須實(shí)現(xiàn):HMAC-MD5和HMAC-SHA1這兩種算法。AH頭部格式AH協(xié)議和TCP、UDP協(xié)議一樣,是被IP協(xié)議封裝的協(xié)議之一。AH協(xié)議在IP協(xié)議頭部中的協(xié)議字段值為51,如果一個IP包封裝的是AH協(xié)議,在IP包頭后面緊跟的就是AH協(xié)議頭部。 AH協(xié)議為IP數(shù)據(jù)包提供了數(shù)據(jù)完整性和認(rèn)證服務(wù)。
34、認(rèn)證協(xié)議首部格式如圖:下一個首部(8比特) 載荷長度(8比特)保留(16比特)安全參數(shù)索引(SPI) (16比特)序列號 (16比特)認(rèn)證數(shù)據(jù)(長度可變)2、AH運(yùn)行模式AH傳輸模式在傳輸模式中,AH插入到IP頭部之后,傳輸層協(xié)議(TCP、UDP)或者其他IPSec協(xié)議之前。以TCP數(shù)據(jù)為例,AH在傳輸模式中的位置如下圖:AH隧道模式在隧道模式中,AH插入到原始IP頭部字段之前,然后在AH之前再增加一個新的IP頭部。如下圖:新的IP頭 擴(kuò)展項(xiàng)頭 AH 擴(kuò)展項(xiàng)頭 TCP 數(shù)據(jù)新的IP頭 AH 初始的IP頭 TCP 數(shù)據(jù)AH頭AH頭IPV4 數(shù)據(jù)包IPV6數(shù)據(jù)包3、數(shù)據(jù)完整性檢查AH協(xié)議的驗(yàn)證過程
35、在應(yīng)用HMAC算法時,有一些因素需要考慮:在IP字段中,有一些是可變的,且在傳輸過程中被修改也是合理的,這些字段在計(jì)算HMAC時被臨時用0填充。包括:ToS標(biāo)志字段標(biāo)志字段分片偏移字段TTL頭部校驗(yàn)和選項(xiàng)字段不變的部分版本字段、頭部長度字段、IP總長字段、ID字段、協(xié)議字段、源IP地址字段、目的地址字段、AH頭中除“驗(yàn)證數(shù)據(jù)”以外的其他字段、數(shù)據(jù)3.2.4 IKE協(xié)議IETF的IPSec工作組指定所有兼容的系統(tǒng)必須同時支持手工和自動的SA和密鑰管理。 手工 通過人工配置每一個系統(tǒng),提供與系統(tǒng)進(jìn)行安全通信所相關(guān)的密鑰信息以及密鑰管理數(shù)據(jù)。手工技術(shù)可以在小范圍、靜態(tài)環(huán)境中有效使用,但是這種方法對于
36、大型的網(wǎng)絡(luò)并不適合。自動 通過使用自動的密鑰管理協(xié)議,可以創(chuàng)建SA所的密鑰。自動管理也為正在變化的較大型的分布式系統(tǒng)供了更大的可擴(kuò)展性。對于自動管理,可以使用各種協(xié)議。Internet密鑰交換(IKE -Internet Key Exchange)已經(jīng)成為了當(dāng)前的工業(yè)標(biāo)準(zhǔn)。IKE協(xié)議的功能:IKE(Internet Key Exchange,Internet密鑰交換)協(xié)議是一種混合型協(xié)議,由ISAKMP和Oakley組成,IKE真正定義了一個密鑰交換的過程。ISAKMP協(xié)議1、ISAKMP概述ISAKMP(Internet Security Association Key Management
37、 Protocol,Internet安全聯(lián)盟密鑰管理協(xié)議)由RFC 2408定義,定義了協(xié)商、建立、修改和刪除SA的過程和包格式。它只是為SA的屬性和協(xié)商、修改、刪除SA的方法提供了一個通用的框架,并沒有定義具體的SA格式。ISAKMP雙方交換的內(nèi)容稱為載荷(payload),目前定義了13種載荷。ISAKMP的兩個階段:建道IKE SA;建立IPsec SAISAKMP包頭部格式ISAKMP定義的載荷類型及其值Oakley密鑰確定協(xié)議1)交換模式ISAKMP第一階段的“主模式預(yù)共享密鑰方式”、“野蠻模式不能提供身份保護(hù)”ISAKMP第二階段的“快速模式”新組模式ISAKMP信息交換2)IKE
38、安全機(jī)制機(jī)密性;完整性和身份驗(yàn)證;DOS;防止中間人攻擊;完美向前保密3)IKE的實(shí)現(xiàn)IKE是一個用戶級的進(jìn)程,它啟動后作為后臺守護(hù)進(jìn)程運(yùn)行。3.2.5 IPsec服務(wù)與應(yīng)用1、組合安全關(guān)聯(lián)AH協(xié)議和ESP協(xié)議可以單獨(dú)使用,也可以組合使用,因?yàn)槊恳环N協(xié)議都有兩種使用的模式,這樣組合使用就有多種可能的組合方式。但是在這么多可能的組合中只有幾個有實(shí)際意義的應(yīng)用。用SA束來實(shí)現(xiàn)IPsec的組合,定義了兩種組合SA的方式:傳輸鄰接和循環(huán)隧道。傳輸鄰接(transport adjacency)是在同一個IP數(shù)據(jù)報(bào)文中應(yīng)用多個SA的傳輸模式的過程,這種層次的組合允許同時應(yīng)用AH協(xié)議和ESP協(xié)議組合安全關(guān)聯(lián)
39、 主機(jī)*安全網(wǎng)關(guān)主機(jī)*安全網(wǎng)關(guān)Internet內(nèi)部網(wǎng)絡(luò)內(nèi)部網(wǎng)絡(luò)一個或多個SA一個或多個SA傳輸連接 循環(huán)隧道(Iterated tunnel)是安全協(xié)議在遂道模式下順序使用。每個協(xié)議都生成一個新的IP報(bào)文,下一個協(xié)議再對它進(jìn)行封裝。這種方法允許多層次的嵌套,每一個隧道可以源自或者終止于通路上的不同IPSec站點(diǎn)。但三層以上的嵌入是不實(shí)用的。組合安全關(guān)聯(lián) 安全網(wǎng)關(guān)*Internet內(nèi)部網(wǎng)絡(luò)內(nèi)部網(wǎng)絡(luò)安全網(wǎng)關(guān)*隧道SA(a)安全關(guān)聯(lián)的基本組合組合安全關(guān)聯(lián) 一個或多個SA主機(jī)*安全網(wǎng)關(guān)*主機(jī)*安全網(wǎng)關(guān)*Internet內(nèi)部網(wǎng)絡(luò)內(nèi)部網(wǎng)絡(luò)遂道SA(b) 安全關(guān)聯(lián)的基本組合組合安全關(guān)聯(lián) 一個或多個SA主機(jī)*
40、主機(jī)*安全網(wǎng)關(guān)*Internet內(nèi)部網(wǎng)絡(luò)遂道SA(c) 安全關(guān)聯(lián)的基本組合2、IPSec提供的服務(wù)IPSec在IP層提供安全服務(wù),使得系統(tǒng)可以選擇所需要的安全協(xié)議,確定該服務(wù)所用的算法,并提供安全服務(wù)所需任何加密密鑰。訪問控制連接完整性數(shù)據(jù)源認(rèn)證拒絕重放數(shù)據(jù)包保密性(加密)有限信息流保密性IPSec提供的服務(wù)IPsec的特點(diǎn):流量安全,減輕負(fù)擔(dān);防止IP旁路;應(yīng)用透明;方便使用。AHESP(僅加密) ESP(加密+認(rèn)證) 訪問控制連接完整性數(shù)據(jù)源認(rèn)證拒絕重放包保密性有限保密性 3.3 PGP PGP(PrettyGoodPrivacy) 開發(fā):由美國在上世紀(jì)九十年代初開發(fā)的一個完整電子郵件安全
41、軟件包。 功能:加密、認(rèn)證、數(shù)字簽名和壓縮等 算法:PGP并沒有使用什么新概念,它只是將現(xiàn)有的一些(如MD5、RSA,以及IDEA等)綜合在一起。數(shù)字簽名 PGP的數(shù)字簽名采用RSA/SHA-1算法。 消息加密 采用IDEA或CAST-128或3DES+Diffle-Hellman或RSA算法。消息認(rèn)證 采用MD5算法數(shù)據(jù)壓縮 ZIP郵件兼容 PGP將來加密文件生成 RADIX 64格式的編碼文件。數(shù)據(jù)分段3.3.1 PGP的主要服務(wù) 1、PGP身份驗(yàn)證 PGP的認(rèn)證過程幾點(diǎn)說明1)符號:2)RSA的強(qiáng)度保證了發(fā)送方的身份;3)MD5的強(qiáng)度保證了簽名的有效性;4)DSS/SHA-1可選替代方案
42、;5)簽名與消息可以分離。2、 保密性 PGP加密性功能 (1)符號說明:(2)對稱密碼:IDEA(或3DES)、64位CFB方式。(3)不需要專門的會話密鑰交換協(xié)議。(4)每次通信隨機(jī)產(chǎn)生一個會話密鑰Ks的以保證一次一密,增強(qiáng)了保密強(qiáng)度。(5)公開密鑰算法的長度決定安全性。保密與認(rèn)證同時運(yùn)用 當(dāng)保密與認(rèn)證兩種服務(wù)都需要時,發(fā)送者先用自己的私鑰簽名,然后用會話密鑰加密,再用接收者的公鑰加密會話密鑰。 保密與認(rèn)證同時運(yùn)用 數(shù)據(jù)壓縮 數(shù)據(jù)壓縮對郵件傳輸或存儲都有節(jié)省空間的好處。壓縮的位置發(fā)生在簽名后、加密前。 若壓縮之前生成簽名,驗(yàn)證時無須壓縮,壓縮算法的多樣性。 若在加密前壓縮,壓縮的報(bào)文更難分
43、析,增加了安全系數(shù)。 3、E-mail兼容性 消息加密后是任意的8位字節(jié),需要轉(zhuǎn)換到ASCII格式。基數(shù)64將3字節(jié)輸入轉(zhuǎn)換到4個ASCII字符,并帶CRC校驗(yàn)。長度擴(kuò)大33%,與壓縮綜合后,分組長度為:1.330.5M = 0.665M。 基數(shù)64變換 將3字節(jié)(24bit)的輸入先轉(zhuǎn)換成4個ASCII字符,每個ASCII字符在分別擴(kuò)充33%,成為4個字節(jié)(32bit),如圖 所示。基數(shù) 64變換 (a)A發(fā)送消息流程 (b)B接收消息流程4、PGP報(bào)文的發(fā)送與接收1.密鑰管理 PGP系統(tǒng)密鑰管理涉及密鑰產(chǎn)生、密鑰環(huán)、密鑰注銷等。 (1)密鑰。PGP系統(tǒng)使用四種類型的密鑰:會話對稱密鑰、公鑰
44、、私鑰、基于口令短語的對稱密鑰。 PGP系統(tǒng)對密鑰要求: 需要一種生成不可預(yù)知(隨機(jī))的會話密鑰的手段; 需要某種手段來標(biāo)識具體的密鑰; 為了密鑰的更換與分組,一個用戶擁有多個公鑰/私鑰對。 每個PGP實(shí)體需要維護(hù)兩個文件,一個文件保存自己的公鑰/私鑰對,另一個文件保存通信對方的公鑰。3.3.2 PGP的工作原理 (2)密鑰環(huán)。 PGP系統(tǒng)中每個用戶所在節(jié)點(diǎn)要維護(hù)兩個文件:私鑰環(huán)和公開密鑰環(huán)。 私鑰環(huán)用做存儲該節(jié)點(diǎn)用戶自己的公鑰/私鑰對。其中部分各字段的作用: UserID:通常是用戶的郵件地址。(一名字或重用一名字多次)。 Private Key:用戶自己的私鑰,(系統(tǒng)生成公/私鑰對中的私鑰
45、)。 Public Key:用戶自己的公鑰,(系統(tǒng)生成公/私鑰對中的私鑰)。 KeyID:密鑰標(biāo)識符, 包括64個有效位(KUa mod 264)。KeyID同樣也需要PGP數(shù)字簽名。 (3) 會話密鑰的產(chǎn)生。IDEA生成128位的隨機(jī)數(shù)作為會話密鑰。輸入包括一個128位的密鑰和兩個64位的數(shù)據(jù)塊作為加密的輸入。使用CFB方式,CAST-128產(chǎn)生兩個64位的加密數(shù)據(jù)塊,這兩個數(shù)據(jù)塊的結(jié)合構(gòu)成128位的會話密鑰。(算法基于ANSI X12.17)。 (4)消息加密。使用IDEA(或CAST-128或3DES)加密。 (5)發(fā)送消息的格式。 PGP的報(bào)文格式,一個報(bào)文包含三部分成員:報(bào)文部分、密
46、鑰部分。密鑰部分并不是密鑰本身,而是密鑰的標(biāo)識符,因?yàn)橛脩艨赡軗碛卸鄠€公開密鑰。時間戳密鑰ID公鑰加密的私鑰用戶ID時間戳密鑰ID公鑰擁有者信任用戶ID密鑰合理性簽名簽名信任私鑰環(huán)的通用結(jié)構(gòu) 公鑰環(huán)的通用結(jié)構(gòu) PGP的工作原理PGP的報(bào)文格式 2.PGP報(bào)文的生成 (1)發(fā)送方處理消息的過程(如圖 所示): 簽名:PGP用發(fā)送者(用戶A)的User ID(IDA)作為索引,從私鑰環(huán)中得到用戶A的私鑰, PGP提示輸入口令短語,來恢復(fù)用戶A的私鑰KRa;構(gòu)造簽名部分。 加密:PGP產(chǎn)生一個會話密鑰Ks,并加密簽名和報(bào)文;PGP用接收者(用戶B)User ID(IDB)從公鑰環(huán)中獲取其公鑰KUb;
47、構(gòu)造消息的會話密鑰部分。 PGP的工作原理PGP的工作原理PGP報(bào)文的發(fā)送(從用戶A到用戶B) 2.PGP報(bào)文的生成 (2)收方處理消息的過程(如下圖): 解密:PGP用報(bào)文會話密鑰部分的 密鑰 ID字段作為索引,從私鑰環(huán)中查找接收者(用戶B)的私鑰;并提示用戶輸入口令短語來恢復(fù)私鑰;然后恢復(fù)會話密鑰并且解密報(bào)文。 認(rèn)證:PGP使用報(bào)文簽名密鑰部分的密鑰ID字段作為索引,從公鑰環(huán)中查找發(fā)送者(用戶A)的公鑰KUa;恢復(fù)傳輸?shù)膱?bào)文摘要;對接收的報(bào)文計(jì)算報(bào)文摘要,與傳來的報(bào)文摘要相比較,以認(rèn)證報(bào)文。 *公鑰管理PGP的工作原理PGP的工作原理PGP報(bào)文的接收(從用戶A到用戶B) 3.4 SSL 3
48、.4.1 協(xié)議簡介SSL協(xié)議(Security Socket Layer, 安全套接層協(xié)議)是Netscape公司提出的基于Web應(yīng)用的安全協(xié)議,該協(xié)議向基于TCP/IP的C/S應(yīng)用程序提供了客戶端和服務(wù)器的鑒別、數(shù)據(jù)完整性及信息機(jī)密性等安全措施。 SSL采用對稱密碼技術(shù)和公開密碼技術(shù)相結(jié)合,提供了如下三種基本的安全服務(wù): 秘密性。SSL客戶機(jī)和服務(wù)器之間通過密碼算法和密鑰的協(xié)商,建立起一個安全通道。以后在安全通道中傳輸?shù)乃行畔⒍冀?jīng)過了加密處理。完整性。SSL利用密碼算法和hash函數(shù),通過對傳輸信息特征值的提取來保證信息的完整性。認(rèn)證性。利用證書技術(shù)和可信的第三方CA,可以讓客戶機(jī)和服務(wù)器
49、相互識別對方的身份。 SSL協(xié)議棧SSL在TCP/IP協(xié)議棧中的位置IPHTTPFTPSMTPTCPSSL or TLSSSL協(xié)議分為兩層協(xié)議。 一層是SSL記錄協(xié)議(SSL Record Protocol),它建立在可靠的傳輸協(xié)議(如TCP)之上,為更高層提供基本的安全服務(wù),如提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。 另一層是建立在SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。它由三個協(xié)議組成:SSL握手協(xié)議(SSL Handshake Protocol)SSL更改密碼規(guī)格協(xié)議(SSL Change Cipher Spec Protoc
50、ol)SSL警報(bào)協(xié)議(SSL Alert Protocol SSL體系結(jié)構(gòu) SSL Protocol StackIPSSL更改密碼規(guī)格協(xié)議SSL 告警協(xié)議HTTPTCPSSL 記錄協(xié)議SSL 握手協(xié)議SSL體系結(jié)構(gòu) SSL中協(xié)議中兩個重要概念 : SSL連接(connection):在OSI分層模型的定義中,連接是提供一種合適類型服務(wù)的傳輸。而SSL的連接是點(diǎn)對點(diǎn)的關(guān)系。連接是暫時的,每一個連接和一個會話關(guān)聯(lián)。 SSL會話(session):一個SSL會話是在客戶與服務(wù)器之間的一個關(guān)聯(lián)。會話由握手協(xié)議創(chuàng)建。會話定義了一組可供多個連接共享的加密安全參數(shù)。會話用以避免為每一個連接提供新的安全參數(shù)所
51、付出昂貴的代價。 會話狀態(tài)由下列參數(shù)定義: 會話標(biāo)識符:服務(wù)器選擇的一個任意字節(jié)序列,用以標(biāo)識一個活動的或可激活的會話狀態(tài)。對方證書:一個X.509.v3證書??蔀榭?。 壓縮方法:加密前進(jìn)行數(shù)據(jù)壓縮的算法。密文規(guī)約:指明數(shù)據(jù)體加密的算法(無,或DES等),以及用以計(jì)算MAC散列算法(如MD5或SHA-1)。還包括其它參數(shù),如散列長度,主密碼(48位C與S之間共享的密鑰), 重新開始標(biāo)志(指明該會話是否能用于產(chǎn)生一個新連接)。 3.4.2 SSL的幾個子協(xié)議(1) SSL記錄協(xié)議 在SSL協(xié)議中,所有的傳輸數(shù)據(jù)都被封裝在記錄中。記錄是由記錄頭和長度不為0的記錄數(shù)據(jù)組成的。所有的SSL通信包括握手
52、消息、安全空白記錄和應(yīng)用數(shù)據(jù)都使用SSL記錄層。SSL記錄協(xié)議(SSL Record Protocol)包括了記錄頭和記錄數(shù)據(jù)格式的規(guī)定。1.SSL記錄頭格式 SSL的記錄頭可以是兩個或三個字節(jié)長的編碼。SSL記錄頭的包含的信息包括:記錄頭的長度、記錄數(shù)據(jù)的長度、記錄數(shù)據(jù)中是否有粘貼數(shù)據(jù)。2.SSL記錄數(shù)據(jù)的格式 SSL的記錄數(shù)據(jù)包含三個部分:MAC數(shù)據(jù)、實(shí)際數(shù)據(jù)和粘貼數(shù)據(jù)。 SSL記錄協(xié)議 SSL記錄協(xié)議操作 在SSL的記錄層完成對數(shù)據(jù)加密、解密和認(rèn)證。操作過程如圖 323所示:SSL記錄協(xié)議 應(yīng)用數(shù)據(jù)分段 壓縮添加 MAC加密添加SSL記錄頭數(shù)據(jù)分段數(shù)據(jù)分段數(shù)據(jù)分段 應(yīng)用數(shù)據(jù) SSL更改密
53、碼規(guī)格協(xié)議 (SSL Change Cipher Spec Protocol)是簡單的特定SSL的協(xié)議。 目的:為表示密碼策略的變化。該協(xié)議包括一個單一的消息,它由記錄層按照密碼規(guī)約中所指定的方式進(jìn)行加密和壓縮。在完成握手協(xié)議之前,客戶端和服務(wù)器都要發(fā)送這一消息,以便通知對方其后的記錄將用剛剛協(xié)商的密碼規(guī)范以及相關(guān)聯(lián)的密鑰來保護(hù)。所有意外的更改密碼規(guī)范消息都將生成一個“意外消息(unexpected_message)”警告。 (2)SSL更改密碼規(guī)格協(xié)議 SSL警報(bào)協(xié)議將警告消息以及它們的嚴(yán)重程度傳遞給SSL會話中的主體。就像由記錄層處理的應(yīng)用層數(shù)據(jù)一樣,警告消息也用當(dāng)前連接狀態(tài)所指定的方式來
54、壓縮和加密。 當(dāng)任何一方檢測到一個錯誤時,檢測的一方就向另一方發(fā)送一個消息。如果警告消息有一個致命的后果,則通信的雙方應(yīng)立即關(guān)閉連接。雙方都需要忘記任何與該失敗的連接相關(guān)聯(lián)的會話標(biāo)識符、密鑰和秘密。對于所有的非致命錯誤,雙方可以緩存信息以恢復(fù)該連接。 (3)SSL警報(bào)協(xié)議 SSL握手協(xié)議負(fù)責(zé)建立當(dāng)前會話狀態(tài)的參數(shù)。雙方協(xié)商一個協(xié)議版本,選擇密碼算法,互相認(rèn)證(不是必需的),并且使用公鑰加密技術(shù)通過一系列交換的消息在客戶端和服務(wù)器之間生成共享密鑰。包含兩個階段,第一階段用于建立私密性通信信道,第二階段用于客戶認(rèn)證(1)第一階段通信的初始化,通信雙方都發(fā)出Hello消息,依據(jù)情況決定是否產(chǎn)生會話密
55、鑰。注意:一個連接需要四個密鑰。(2)第二階段此階段是對客戶進(jìn)行認(rèn)證。 (4)SSL握手協(xié)議 客戶方發(fā)出CLIENT-HELLO消息需要新密鑰?等待SERVER-HELLO消息產(chǎn)生新的密鑰發(fā)出CLIENT-MASTER-KEY消息等待SERVER-VERIFY消息第二階段服務(wù)器方等待CLIENT-HELLO消息需要新密鑰?發(fā)出SERVER-HELLO消息解開密鑰等待CLIENT-MASTER-KEY消息發(fā)出SERVER-VERIFY消息第二階段NNYY 目前,幾乎所有操作平臺上的WEB瀏覽器(IE、Netscape)以及流行的Web服務(wù)器(IIS、Netscape Enterprise Ser
56、ver等)都支持SSL協(xié)議。 缺點(diǎn): (1)系統(tǒng)不符合中國國務(wù)院最新頒布的商用密碼管理?xiàng)l例中對商用密碼產(chǎn)品不得使用國外密碼算法的規(guī)定,要通過國家密碼管理委員會的審批會遇到相當(dāng)困難。 (2)系統(tǒng)安全性方面的缺陷:SSL協(xié)議的數(shù)據(jù)安全性其實(shí)就是建立在RSA等算法的安全性上,攻破RSA等算法就等同于攻破此協(xié)議。 但是總的來講,SSL協(xié)議的安全性能是好的,而且隨著SSL協(xié)議的不斷改進(jìn),更多的安全性能好的加密算法被采用,邏輯上的缺陷被彌補(bǔ)。 3.4.3 SSL的安全性雙向認(rèn)證SSL協(xié)議的具體過程 雙向認(rèn)證SSL協(xié)議的具體通訊過程,要求服務(wù)器和用戶雙方都有證書。單向認(rèn)證SSL協(xié)議不需要客戶擁有CA證書。
57、基于SSL協(xié)議,雙方的通訊內(nèi)容是經(jīng)過加密的數(shù)據(jù),這時候的安全就依賴于密碼方案的安全。 3.5 SET SET協(xié)議是應(yīng)用層協(xié)議,由Master Card和Visa以及其他一些業(yè)界的主流廠商設(shè)計(jì)發(fā)布,是一種基于消息流的協(xié)議,用于保證在公共網(wǎng)絡(luò),特別是Internet上進(jìn)行銀行卡支付交易的安全性,能夠有效地防止電子商務(wù)中的各種詐騙。它是目前已經(jīng)標(biāo)準(zhǔn)化并且被業(yè)界所廣泛接受的一種基于信用卡的付款機(jī)制。3.5.1 SET概述1、提出的背景學(xué)術(shù)界、工商界和消費(fèi)者最關(guān)心安全性1996年提出SET、SEPP等協(xié)議模式1997、4,IBM、Netscape、Master Card、Visa聯(lián)手推出基于SET和SE
58、PP的網(wǎng)絡(luò)商貿(mào)系統(tǒng)。2、SET的實(shí)質(zhì)密碼技術(shù)+數(shù)字證書保護(hù)各方的安全。3、版本 1997年5月,1.0版本4、SET管理機(jī)構(gòu)SETCo1、SET協(xié)議的三個階段2、SET協(xié)議的主要目標(biāo)保障付款安全;確保應(yīng)用的互通性;達(dá)到全球市場的接受性。SET協(xié)議保證了電子交易的機(jī)密性、數(shù)據(jù)完整性、身份的合法性和不可否認(rèn)性。持卡人商家銀行1、購買請求階段2、支付認(rèn)定階段3、受款階段SET協(xié)議的模型發(fā)卡行用戶企業(yè)服務(wù)器認(rèn)證機(jī)構(gòu)(CA)商家開戶認(rèn)證認(rèn)證SET協(xié)議SET協(xié)議訂單、支付指令(數(shù)字簽名、加密)SET協(xié)議的組件軟硬件成員組件:電子錢包 商家服務(wù)器 支付網(wǎng)關(guān) 認(rèn)證中心1)持卡人電子錢包2)特約商店商家軟件3)
59、支付網(wǎng)關(guān)(專用連接系統(tǒng))支付網(wǎng)關(guān)4)收單行(商家的開戶銀行)5)發(fā)卡行6)認(rèn)證中心InternetInternet銀行網(wǎng)絡(luò)收單行發(fā)卡行Web和商務(wù)服務(wù)器其他商業(yè)處理盤點(diǎn)、會計(jì)、行銷等數(shù)據(jù)庫服務(wù)器認(rèn)證和安全認(rèn)證和安全支付網(wǎng)關(guān)SET交易系統(tǒng)示意圖SET的加密技術(shù)和認(rèn)證技術(shù)8.2.1 與SET有關(guān)的密碼技術(shù)1)常規(guī)密碼體制2)公開密鑰密碼體制3)數(shù)字信封4)數(shù)字簽名5)消息摘要雙重簽名房產(chǎn)報(bào)價問題Ekb(賬號信息摘要+報(bào)價信息摘要) +另外一條消息摘要SET的加密和解密流程(1)加密流程消息明文消息摘要生成對稱密鑰發(fā)送方私鑰數(shù)字簽名消息密文數(shù)字信封接收方公鑰接收方證書發(fā)送加密加密加密證書認(rèn)證Hash
60、運(yùn)算(2)解密流程接收消息密文數(shù)字簽名發(fā)送方證書數(shù)字信封接收方私鑰消息明文對稱密鑰解密解密發(fā)送方公鑰消息摘要消息摘要保存證書認(rèn)證解密Hash運(yùn)算比較正確SET的認(rèn)證技術(shù)(1)證書1)持卡人證書2)特約商店證書3)支付網(wǎng)關(guān)證書4)收單行證書5)發(fā)卡行證書(2)證書管理機(jī)構(gòu)(CA)(3)證書的樹型驗(yàn)證機(jī)制在網(wǎng)上購物中,持卡人的證書與發(fā)卡機(jī)構(gòu)的證書關(guān)聯(lián),而發(fā)卡機(jī)構(gòu)證書通過不同品牌卡的證書連接到Root CA ,而Root的公共簽名密鑰對所有的SET軟件都是開放的,可以校驗(yàn)每一個已經(jīng)簽發(fā)的證書。3.5.2 SET協(xié)議的處理邏輯1、 SET購物流程持卡人(消費(fèi)者)特約商店收單銀行1、確認(rèn)商店的合法性2、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度太陽能光伏發(fā)電站項(xiàng)目進(jìn)度控制與協(xié)調(diào)合同
- 二零二五版美容美發(fā)行業(yè)員工試用期勞動合同4篇
- 二零二五年度新型公私合作轉(zhuǎn)賬借款合同模板3篇
- 二零二五年度國有企業(yè)原材料采購合同補(bǔ)充協(xié)議范文3篇
- 二零二五年度影視MV拍攝制作與藝人肖像權(quán)合同
- 二零二五年度民政局離婚協(xié)議書修訂版解讀3篇
- 課題申報(bào)參考:民俗視域下江漢平原地區(qū)民歌音樂形態(tài)研究
- 二零二五年度農(nóng)業(yè)節(jié)水灌溉技術(shù)服務(wù)合同4篇
- 黑龍江省雙鴨山市高三上學(xué)期開學(xué)考試語文試題(含答案)
- 二零二五年度社區(qū)食堂運(yùn)營管理合同4篇
- 再生障礙性貧血課件
- 產(chǎn)后抑郁癥的護(hù)理查房
- 2024年江蘇護(hù)理職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 電能質(zhì)量與安全課件
- 醫(yī)藥營銷團(tuán)隊(duì)建設(shè)與管理
- 工程項(xiàng)目設(shè)計(jì)工作管理方案及設(shè)計(jì)優(yōu)化措施
- 圍場滿族蒙古族自治縣金匯螢石開采有限公司三義號螢石礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 小升初幼升小擇校畢業(yè)升學(xué)兒童簡歷
- 資金支付審批單
- 第一單元(金融知識進(jìn)課堂)課件
- 介入導(dǎo)管室護(hù)士述職報(bào)告(5篇)
評論
0/150
提交評論