电子商务安全与网上支付-课件(3).ppt

上传人(卖家):三亚风情 文档编号:3165566 上传时间:2022-07-27 格式:PPT 页数:129 大小:1.21MB
下载 相关 举报
电子商务安全与网上支付-课件(3).ppt_第1页
第1页 / 共129页
电子商务安全与网上支付-课件(3).ppt_第2页
第2页 / 共129页
电子商务安全与网上支付-课件(3).ppt_第3页
第3页 / 共129页
电子商务安全与网上支付-课件(3).ppt_第4页
第4页 / 共129页
电子商务安全与网上支付-课件(3).ppt_第5页
第5页 / 共129页
点击查看更多>>
资源描述

1、第第3章章 安全网络协议安全网络协议 本章学习目标:本章学习目标:掌握TCP/IP的基本安全知识;掌握IPSec协议的内容;掌握SSL协议基本知识;掌握SET协议的关键步骤。3.1 TCP/IP基本知识 TCP/IP是Internet组网的工业标准,电子商务四个层次中的最底层就是它,电子商务必须关注它的安全,这就如住在高楼层的人要关心楼的地基一样。3.1.1 互联网工作原理互联网工作原理 网络硬件通信是以位串方式进行点到点传送的,使用网络的应用程序并不直接同网络硬件打交道,而是与按给定规则进行通信的协议软件打交道。协议是一套用于信息交换的规则,如使用的语言和信息发送规则,通信涉及的所有部分都必

2、须认同该规则。设计者不是设计一个单一、巨大的协议来为所有可能形式的通信规定完整的细节,而是采取了把通信问题划分成多个子问题,然后为每个子问题设计一个单独的协议的方法。TCP/IP是互联网的主流协议,它是一组通信协议的代名词。1.TCP/IP协议的层次模型2.网络层协议 网络层协议包括IP协议、ICMP协议、ARP协议和RARP协议。(1)网际协议IP IP的具体功能:路由选择和转发;通过网络连接在主机之间提供分组交换功能;分组的分段与成块,差错控制、顺序化、流量控制。(2)地址解析协议ARP和反向地址解析协议RARP ARP:将IP地址映射成物理地址。ARP协议存在ARP欺骗的攻击风险。RAR

3、P:将物理地址映射成IP地址。(3)Internet控制消息协议ICMP ICMP的作用:诊断网络(关机、堵塞和工作不正常、网络中其他故障等)。Ping是ICMP协议的一个实现。3.传输层协议 传输层作用:为两台主机上的应用程序提供端到端的通信。TCP:可靠、面向连接、字节流有序,可关闭 UDP:不可靠、不需要连接、报文。TCP协议概述 用于提供可靠的、全双工的虚拟线路连接,连接是在发送和连接的节点端口号之间实施的。TCP协议负责将信息切割成一块块资料包,在远端主机重新按顺序组合起资料包,并且负责重送遗失的资料包。积极确认和重发送源端口号目的端口号序号ACK(确认应答)号片偏移保留URGACK

4、PSHRSTSYNFIN窗口大小校验和紧急指针选项填充码数据0 4 8 12 16 20 24 28 32l序号:用于保证数据的到达顺序与可靠性。利用随机值确定初始值,以字节为单位表示所发送数据的位置lACK号:是用于保证可靠性的确认号码。将下一个所应该接收到的序号作为应答确认号来设定lOffset:表示TCP数据的起始位置l标志:6比特,各比特作用为lURG:表示是应该紧急处理的数据lACK:表示应答确认号的字段是有效的lPSH:表示是需要尽快向应用层递交的数据lRST:重建连接lSYN:表示建立连接的要求lFIN:表示结束通信l紧急指针:以字节为单位表示放置需要紧急处理的数据的位置。TCP

5、连接连接通过“三次握手Three-Way Handshake”过程.SYN=1 和ACK=0打开连接封包.SYN=1 和ACK=1打开连接通告.SYN=0 和ACK=1数据封包或ACK封包 TCP连接终止.客户方调用close,TCP发送一个FIN分组.S确认该FIN分组,传给本机应用进程.一段时间后?S的应用进程close,发送给客户一个FIN分组;.客户方对这给FIN分组确认。TCP/SYN攻击4.应用层协议(1)仿真终端协议Telnet(2)文件传输协议FTP(3)HTTP协议5.以太网 以太网是目前最常用的一种局域网。传统的以太网一般采用广播方式通信,即所有同一以太网段内的设备都接收到

6、每个站点发出的信息包,但是只有目的方接收下来并提交给上层的主机进行处理,其他站点则将该包丢弃。以太网的发展是从1973年施乐公司(Xerox)提出“以太网(Ethernet)”开始的。以太网站点发送信息包的策略是采用载波监听多点访问/冲突检测CSMA/CD协议,CSMA/CD协议分为以下几个步骤:载波监听 信道忙碌 信道空闲 冲突检测 遇忙停发 多路存取6.特殊的IP地址 如果网络ID为127,主机地址任意,这种地址是用来做循环测试用的,不可用作其它用途。在IP地址中,如果某一类网络的主机地址为全1,则该IP地址表示是一个网络或子网的广播地址。IP地址中的全0表示“这个”,全1表示“所有”。0

7、.0.0.0表示本机;网络标识号为全0的IP地址表示本网络的这个主机;主机标识号为全0的IP地址表示这个网络;255.255.255.255为局域网广播地址;主机标识号为全1的IP地址表示向指定网络定向广播;127.X.X.X是回传地址,用于本机器上的测试和进程间通信。若IP分组的目标地址是127.0.0.1,则表明该分组将回传给本机。私有地址的范围是:10.0.0.1 10.255.255.254 (A类)172.13.0.1 172.32.255.254 (B类)192.168.0.1 192.168.255.254 (C类)7.下一代的网际协议IPv6现在看来,当初IP地址的设计确实有不

8、够合理的地方。为此,在l992年6月就提出要制订下一代的IP,即IPng(IP Next Generation)。由于IPv5打算用作面向连接的网际层协议,因此IPng现正式称为IPv6。1995年以后陆续公布了一系列有关IPv6的协议、编址方法、路由选择以及安全等问题的RFC文档。IPv6把原来IPv4地址增大到了128bit,其地址空间大于3.4 1038,是原来IPv4地址空间的296倍。这种下一代的IP协议并不是完全抛弃了原来的IPv4,且允许与IPv4在若干年内共存。IPv6对IP数据报协议单元的头部与原来的IPv4相比进行了相应的简化,仅包含7个字段(IPv4有13个),这样数据报

9、文经过中间的各个路由器时,各个路由器对其处理的速度加快,这样提高了网络吞吐率。IPv6另一个主要的改善方面是在安全方面。版本4bit业务流类别8流标签20净荷长度16bit下一个头8跳极限8bit源IP地址128bit目的IP地址128bit数据报的数据部分(净荷)IPv6包头中的重要参数 业务类别(Traffic Class):划分IP包为16级优先级。07用于网络拥塞,815用于实时性业务处理。数据流标志(Flow Label):用于定义一个需要特殊处理的传输的数据流。l站至站选项包头(Hop-by-Hop Header)l目的地选项包头(Destination Option Header

10、)l路由选项包头(Routing Header)l分割选项包头(Fragment Header)l认证选项包头(Authentication Header)l数据加密选项包头(Encapsulation Security Payload Header)l上层协议选项包头(Upper-layer Header)3.1.2 基于基于TCP/IP的网络编程接口:的网络编程接口:SOCKET接口接口 电子商务安全威胁中,主要的一项就是来自于网络软件。安全防范人员要能分析和读懂各种攻击程序(扫描、木马、蠕虫乃至病毒)的源代码,就必须了解和掌握基于TCP/IP协议的网络编程接口:Socket接口。1.SO

11、CKET编程思想“Socket”是使用标准Unix文件描述符(file descriptor)和其它程序通讯的方式。Unix程序在执行任何形式的I/O的时候,程序是在读或者写一个文件描述符。一个文件描述符只是一个和打开的文件相关联的整数。这个文件可能是一个网络连接,FIFO,管道,终端,磁盘上的文件或者什么其它的东西。如果想和Internet上别的程序通讯的时候,就要使用到网络通讯的文件描述符,一般称为Socket描述符。Socket描述符指向一个与该Socket有关的数据结构。一旦建立了一个Socket,应用程序可以使用其他调用来实现基于网络的通信。Socket分为三种类型 (1)流式套接口

12、(SOCK_STREAM)(2)数据报式套接口(SOCK_DGRAM)(3)原始式套接口(SOCK_RAW)无连接套接口应用流程 有连接套接口应用流程2.基本套接口系统调用结构体结构体首先是简单的一个:socket描述符。它是下面的类型:int 第一个结构-struct sockaddr.。这个结构 为许多类型的套接字储存套接字地址信息:struct sockaddr unsigned short sa_family;/*地址家族,AF_xxx*/char sa_data14;/*14字节协议地址*/;sa_family 能够是各种各样的类型,但通常都是“AF_INET”。sa_data包含套

13、接字中的目标地址和端口信息。这好像有点 不明智。为了处理struct sockaddr,程序员创造了一个并列的结构:struct sockaddr_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结构的长度相同*/;域名服务(DNS)struct hostent char*h_name;char*

14、h_aliases;int h_addrtype;int h_length;char*h_addr_list;#define h_addr h_addr_list0 这里是这个数据结构的详细资料:struct hostent:h_name 地址的正式名称。h_aliases 空字节-地址的预备名称的指针。h_addrtype 地址类型;通常是AF_INET。h_length 地址的比特长度。h_addr_list 零字节-主机网络地址指针。网络字节顺序。h_addr-h_addr_list中的第一地址。gethostbyname()成功时返回一个指向结构体 hostent 的指针,或者 是个空

15、(NULL)指针。常用的socket调用函数 accept()*响应连接请求,并且新建一个套接口。原来的套接口则返回监听状态(服务器用)bind()把一个本地的名字和一个套接口捆绑起来 closesocket()*把套接口从拥有对象参考表中取消。该函数只有在SO_LINGER被设置时才会阻塞 connect()*与服务器建立连接(客户机用)getpeername()得到连接在指定套接口上的对等通讯方的名字 getsockname()得到指定套接口上当前的名字 getsockopt()得到与指定套接口相关的属性选项 htonl()把32位的数字从主机字节顺序转换到网络字节顺序 htons()把1

16、6位的数字从主机字节顺序转换到网络字节顺序 inet_addr()把一个Internet标准的“.”记号地址转换成Internet地址数值 inet_ntoa()把Internet地址数值转换成带“.”的ASCII字符串 listen()设置最大监听队列(服务器用)ntohl()把32位数字从网络字节顺序转换成主机字节顺序 ntohs()把16位数字从网络字节顺序转换成主机字节顺序 recv()*从一个已经连接的套接口接收数据(流式)recvfrom()*从一个已经连接的或者未连接的套接口接收数据(数据报式)select()*执行同步I/O多路复用 send()*从一个已经连接的套接口发送数据

17、(流式)sendto()*从已连接或未连接的套接口发送数据(数据报式)setsockopt()设置与指定套接口相关的属性选项 shutdown()关闭一部分全双工的连接 socket()创建一个通讯端点并返回一个套接口标识符 gethostbyaddr()*从网络地址得到对应的名字(有可能多个)和地址 gethostbyname()*从主机名得到对应的名字和地址 gethostname()得到本地主机名*表示例程在某些情况下可能会阻塞 int socket(int domain,int type,int protocol);但是它们的参数是什么?首先,domain 应该设置成“AF_INET”

18、,就 象上面的数据结构struct sockaddr_in 中一样。然后,参数 type 告诉内核 是 SOCK_STREAM 类型还是 SOCK_DGRAM 类型。最后,把 protocol 设置为“0”。int bind(int sockfd,struct sockaddr*my_addr,int addrlen);sockfd 是调用 socket 返回的文件描述符。my_addr 是指向数据结构 struct sockaddr 的指针,它保存你的地址(即端口和 IP 地址)信息。addrlen 设置为 sizeof(struct sockaddr)。int connect(int so

19、ckfd,struct sockaddr*serv_addr,int addrlen);sockfd 是系统调用 socket()返回的套接字文件描述符。serv_addr 是 保存着目的地端口和 IP 地址的数据结构 struct sockaddr。addrlen 设置 为 sizeof(struct sockaddr)。int listen(int sockfd,int backlog);sockfd 是调用 socket()返回的套接字文件描述符。backlog 是在进入 队列中允许的连接数目。什么意思呢?进入的连接是在队列中一直等待直 到你接受(accept()请看下面的文章)连接。它

20、们的数目限制于队列的允许。大多数系统的允许数目是20,你也可以设置为5到10。和别的函数一样,在发生错误的时候返回-1,并设置全局错误变量 errno。int accept(int sockfd,void*addr,int*addrlen);sockfd 相当简单,是和 listen()中一样的套接字描述符。addr 是个指 向局部的数据结构 sockaddr_in 的指针。这是要求接入的信息所要去的地 方(你可以测定那个地址在那个端口呼叫你)。在它的地址传递给 accept 之 前,addrlen 是个局部的整形变量,设置为 sizeof(struct sockaddr_in)。accept

21、 将不会将多余的字节给 addr。如果你放入的少些,那么它会通过改 变 addrlen 的值反映出来。同样,在错误时返回-1,并设置全局错误变量 errno。int send(int sockfd,const void*msg,int len,int flags);sockfd 是你想发送数据的套接字描述符(或者是调用 socket()或者是 accept()返回的。)msg 是指向你想发送的数据的指针。len 是数据的长度。把 flags 设置为 0 就可以了。int recv(int sockfd,void*buf,int len,unsigned int flags);sockfd 是要

22、读的套接字描述符。buf 是要读的信息的缓冲。len 是缓 冲的最大长度。flags 可以设置为0。(请参考recv()的 man page。)recv()返回实际读入缓冲的数据的字节数。或者在错误的时候返回-1,同时设置 errno。close(sockfd);它将防止套接字上更多的数据的读写。任何在另一端读写套接字的企 图都将返回错误信息。如果你想在如何关闭套接字上有多一点的控制,你可以使用函数 shutdown()。它允许你将一定方向上的通讯或者双向的通讯(就象close()一 样)关闭,你可以使用:int shutdown(int sockfd,int how);sockfd 是你想要

23、关闭的套接字文件描述符。how 的值是下面的其中之 一:0 不允许接收 1 不允许发送 2 不允许发送和接收(和 close()一样)shutdown()成功时返回 0,失败时返回-1(同时设置 errno。)如果在无连接的数据报套接字中使用shutdown(),那么只不过是让 send()和 recv()不能使用(记住你在数据报套接字中使用了 connect 后 是可以使用它们的)。3.2 IPSEC IPsec是IETF于1998年11月公布的IP安全标准,其目标是为IPv4和IPv6提供具有较强的互操作能力、高质量和基于密码的安全。IPsec在网络层上对数据包进行高强度的安全处理,提供数

24、据源验证、无连接数据完整性、数据机密性、抗重播和有限业务流机密性等安全服务。IPsec协议对IPv4是可选的,对IPv6是强制性的。IPSec包含3个重要的协议:AH、ESP、IKE AH和ESP两个协议都使用SA来保护通信,而IKE的主要功能就是在通信双方协商SA。3.2.1 IPsec体系结构体系结构体系结构ESPAH加密算法验证算法解释域密钥管理(IKE)策略(SA、SAD、SPD)1.安全关联SA(Security Association)安全联盟(安全联盟(SA)SA(Security Association,安全联盟)是两个IPSec实体(主机、安全网关)之间经过协商建立起来的一种

25、协定,内容包括采用何种IPSec协议(AH和ESP)、运行模式(传输模式还是隧道模式)、验证算法、加密算法、加密密钥、密钥生存期、抗重放窗口、计数器等,从而决定了保护什么、如何保护以及谁来保护。SA是构成IPSec的基础。SA是单向的,进入(inbound)SA负责处理接收到的数据包,外出(outbound)SA负责处理要发送的数据包。因此每个通信方必须要有两种SA,一个进入SA,一个外出SA,这两个SA构成一个SA束(SA Bundle)。每个每个SA由三元组唯一标识由三元组唯一标识 SPI(Security Parameter Index,安全参数索引)源/目的IP地址 IPSec协议:采

26、用AH或ESP IPsec提供了SA的通用模型:SAD、SPD和Selector 2.安全联盟数据库(安全联盟数据库(SAD)SAD(Security Association Database,安全联盟数据库)是将所有的SA以某种数据结构集中存储的一个列表。SAD的内容本方序号计数器本方序号计数器:一个32位值用于生成AH或ESP头中的序数字段;对方计数器溢出位对方计数器溢出位:一个标志位表明该序数计数器是否溢出,如果是,将生成一个审计事件,并禁止本SA的进一步的包传送。抗重放(返回放)窗口抗重放(返回放)窗口:用于确定一个入站的AH或ESP包是否是一个回放 AH AH验证算法、密钥等验证算法

27、、密钥等:认证算法、密钥、密钥生存期、以及与AH一起使用的其它参数 ESP ESP加密算法、密钥、加密算法、密钥、IVIV模式、模式、IVIV、ESPESP验证算法、密钥等验证算法、密钥等 SA SA的生存期的生存期:一个时间间隔或字节记数,到时后一个SA必须用一个新的SA替换或终止,以及一个这些活动发生的指示。IPsec IPsec协议模式(运行模式)协议模式(运行模式)PMTU PMTU:任何遵从的最大传送单位和老化变量3.安全策略SP(Security Policy)SP(Security Policy,安全策略)指示对IP数据包提供何种保护,并以何种方式实施保护。SP主要根据源IP地址

28、、目的IP地址、入数据还是出数据等来标识。SPD(Security Policy Database,安全策略数据库)是将所有的SP以某种数据结构集中存储的列表。当将IP包发送或接收时,首先要查找SPD来决定如何进行处理:丢弃 不用IPSec 使用IPSecSPD定义了IP数据报和数据报所需的SA。每一个SPD都由一组IP和上层协议字段值定义,称为选择符。这些选择符用来过滤外出的数据报,以便将它映射为特定的SA。这些选择符包括:目的IP地址;源IP地址;操作系统中的用户标识UserID;数据敏感级别;传输层协议;源/目的端口4.IPSec运行模式 IPSec传输模式 传输模式要保护的内容是IP包

29、的载荷,即TCP/UDP等传输层协议、ICMP协议,或者AH、ESP协议。传输模式为上层协议提供安全保护。通常,传输模式只用于两台主机之间的安全通信。IPSec隧道模式 隧道模式保护的内容是整个原始IP包,隧道模式为IP协议提供安全保护。通常,IPSec双方有一方是安全网关或路由器,就必须使用隧道模式。IPSec隧道模式的数据包有两个IP头:内部头和外部头。3.2.2 IPSec安全协议安全协议ESP1、ESP概述 ESP(Encapsulating Security Payload,封装安全载荷)也是一种增强IP层安全的IPSec协议,由RFC 2406定义,ESP协议除了可以提供无连接的完

30、整性、数据来源验证和抗重放攻击服务外,还提供数据包加密和数据流加密服务。与AH一样,ESP协议也是通过验证算法实现数据完整性和数据来源验证的。不过,ESP验证的数据范围要小一些。ESP协议规定了所有IPSec系统必须实现的验证算法包括:HMAC-MD5、HMAC-SHA1、NULL。ESP头部格式ESP协议也是被IP协议封装的协议之一,它为IP数据提供保密性、提供认证服务。一个IP包的载荷是否是ESP协议,由IP协议头部中的协议字段判断,ESP协议字段是50。ESP协议紧跟在IP包头后面。根据使用的加密类型和方式,ESP的格式也会有所不同。加密关联的密钥都是使用SPI来选择的。格式如下:安全参

31、数索引(SPI)(32比特)比特)序列号(32比特)比特)载荷数据(变长)填充(0-255字节)填充长度(8比特)比特)下一个头(8比特)比特)认证数据(变长)2、ESP运行模式ESP可以用于两种模式:传输模式和隧道模式。这些模式的工作方式与它们在AH中的工作方式类似,但是有一例外:对ESP,在每一个数据之后将附加一个尾部(trailer)的数据。ESP隧道模式 ESPESP(数据安全封装协议(数据安全封装协议 )传输模式传输模式初始的IP头 ESP头 TCP 数据 ESP尾 ESP认证ESP头初始的IP头 跃点数、路由分段 ESP头 ESP尾ESP认证目的选项 TCP 数据ESP传输模式在典

32、型传输模式在典型IPv4和和IPv6数据包中的位置数据包中的位置 IPV4 数据包IPV6 数据包隧道模式隧道模式ESP隧道模式在隧道模式在IPv4和和IPv6数据包中的位置数据包中的位置 新的IP头ESP头ESP尾ESP认证初始的IP头TCP数据据新的IP头 新的扩展项头ESP头ESP尾ESP认证初始的IP头TCP数 据扩展项头IPV4 数据包IPV6数据包3.2.3 IPSec安全协议AH 1、AH概述 AH(Authentication Header,验证头部协议)由RFC 2402定义,是用于增强IP层安全的一个IPSec协议,该协议可以提供无连接的数据完整性、数据来源验证和抗重放攻击

33、服务。AH协议对IP层的数据使用密码学中的验证算法,从而使得对IP包的修改可以被检测出来。具体为密码学中的MACMAC(报文验证码)(报文验证码)算法算法。MAC算法将一段给定的任意长度的报文和一个密钥作为输入,产生一个固定长度的输出报文,称为报文摘要或者指纹。实际上,它是由HASH算法演变而来,只不过HASH算法不需要密钥,这种将输入报文和密钥结合在一起然后应用HASH算法的MAC算法称为HMAC。如HMAC-MD5、HMAC-SHA1。只有通信双方使用一致的共享密钥产生的报文摘要才是相同的,从而保证数据的完整性与可靠性。不同的IPSec系统,其可用的HMAC算法可能不同,但所有IPSec都

34、必须实现:HMAC-MD5和HMAC-SHA1这两种算法。AH头部格式 AH协议和TCP、UDP协议一样,是被IP协议封装的协议之一。AH协议在IP协议头部中的协议字段值为51,如果一个IP包封装的是AH协议,在IP包头后面紧跟的就是AH协议头部。AH协议为IP数据包提供了数据完整性和认证服务。认证协议首部格式如图:下一个首部(8比特)比特)载荷长度(8比特)保留(16比特)安全参数索引(SPI)(16比特)序列号(16比特)认证数据(长度可变)2、AH运行模式 AH传输模式 在传输模式中,AH插入到IP头部之后,传输层协议(TCP、UDP)或者其他IPSec协议之前。以TCP数据为例,AH在

35、传输模式中的位置如下图:AH隧道模式隧道模式在隧道模式中,AH插入到原始IP头部字段之前,然后在AH之前再增加一个新的IP头部。如下图:新的IP头 扩展项头 AH 扩展项头 TCP 数据新的IP头 AH 初始的IP头 TCP 数据AH头AH头IPV4 数据包IPV6数据包3、数据完整性检查 AH协议的验证过程 在应用HMAC算法时,有一些因素需要考虑:在IP字段中,有一些是可变的,且在传输过程中被修改也是合理的,这些字段在计算HMAC时被临时用0填充。包括:ToS标志字段 标志字段 分片偏移字段 TTL 头部校验和 选项字段 不变的部分 版本字段、头部长度字段、IP总长字段、ID字段、协议字段

36、、源IP地址字段、目的地址字段、AH头中除“验证数据”以外的其他字段、数据3.2.4 IKE协议协议IETF的IPSec工作组指定所有兼容的系统必须同时支持手工和自动的SA和密钥管理。手工手工 通过人工配置每一个系统,提供与系统进行安全通信所相关的密钥信息以及密钥管理数据。手工技术可以在小范围、静态环境中有效使用,但是这种方法对于大型的网络并不适合。自动自动 通过使用自动的密钥管理协议,可以创建SA所的密钥。自动管理也为正在变化的较大型的分布式系统供了更大的可扩展性。对于自动管理,可以使用各种协议。Internet密钥交换(IKE-Internet Key Exchange)已经成为了当前的工

37、业标准。IKE协议的功能:IKE(Internet Key Exchange,Internet密钥交换)协议是一种混合型协议,由ISAKMP和Oakley组成,IKE真正定义了一个密钥交换的过程。ISAKMP协议1、ISAKMP概述ISAKMP(Internet Security Association Key Management Protocol,Internet安全联盟密钥管理协议)由RFC 2408定义,定义了协商、建立、修改和删除SA的过程和包格式。它只是为SA的属性和协商、修改、删除SA的方法提供了一个通用的框架,并没有定义具体的SA格式。ISAKMP双方交换的内容称为载荷(pay

38、load),目前定义了13种载荷。ISAKMP的两个阶段:建道IKE SA;建立IPsec SAISAKMP包头部格式ISAKMP定义的载荷类型及其值Oakley密钥确定协议 1)交换模式 ISAKMP第一阶段的“主模式预共享密钥方式”、“野蛮模式不能提供身份保护”ISAKMP第二阶段的“快速模式”新组模式 ISAKMP信息交换 2)IKE安全机制机密性;完整性和身份验证;DOS;防止中间人攻击;完美向前保密 3)IKE的实现 IKE是一个用户级的进程,它启动后作为后台守护进程运行。3.2.5 IPsec服务与应用服务与应用 1、组合安全关联 AH协议和ESP协议可以单独使用,也可以组合使用,

39、因为每一种协议都有两种使用的模式,这样组合使用就有多种可能的组合方式。但是在这么多可能的组合中只有几个有实际意义的应用。用SA束来实现IPsec的组合,定义了两种组合SA的方式:传输邻接和循环隧道。传输邻接传输邻接(transport adjacency)是在同一个IP数据报文中应用多个SA的传输模式的过程,这种层次的组合允许同时应用AH协议和ESP协议组合安全关联 主机*安全网关主机*安全网关Internet内部网络内部网络一个或多个SA一个或多个SA传输连接 循环隧道循环隧道(Iterated tunnel)是安全协议在遂道模式下顺序使用。每个协议都生成一个新的IP报文,下一个协议再对它进

40、行封装。这种方法允许多层次的嵌套,每一个隧道可以源自或者终止于通路上的不同IPSec站点。但三层以上的嵌入是不实用的。组合安全关联 安全网关*Internet内部网络内部网络安全网关*隧道SA(a)安全关联的基本组合安全关联的基本组合组合安全关联 一个或多个SA主机*安全网关*主机*安全网关*Internet内部网络内部网络遂道SA(b)安全关联的基本组合安全关联的基本组合组合安全关联 一个或多个SA主机*主机*安全网关*Internet内部网络遂道SA(c)安全关联的基本组合安全关联的基本组合2 2、IPSecIPSec提供的服务提供的服务 IPSec在IP层提供安全服务,使得系统可以选择所

41、需要的安全协议,确定该服务所用的算法,并提供安全服务所需任何加密密钥。访问控制连接完整性数据源认证拒绝重放数据包保密性(加密)有限信息流保密性IPSecIPSec提供的服务提供的服务IPsec的特点:流量安全,减轻负担;防止IP旁路;应用透明;方便使用。AHESP(仅加密)ESP(加密+认证)访问控制连接完整性数据源认证拒绝重放包保密性有限保密性 3.3 PGP PGP(Pretty Good Privacy)开发:由美国在上世纪九十年代初开发的一个完整电子邮件安全软件包。功能:加密、认证、数字签名和压缩等 算法:PGP并没有使用什么新概念,它只是将现有的一些(如MD5、RSA,以及IDEA等

42、)综合在一起。q数字签名 PGP的数字签名采用RSA/SHA-1算法。q消息加密 采用IDEA或CAST-128或3DES+Diffle-Hellman或RSA算法。q消息认证 采用MD5算法q数据压缩 ZIPq邮件兼容 PGP将来加密文件生成 RADIX 64格式的编码文件。q数据分段3.3.1 PGP的主要服务的主要服务 1、PGP身份验证 PGP的认证过程几点说明1)符号:2)RSA的强度保证了发送方的身份;3)MD5的强度保证了签名的有效性;4)DSS/SHA-1可选替代方案;5)签名与消息可以分离。2、保密性 PGP加密性功能(1 1)符号说明:)符号说明:(2)对称密码:IDEA(

43、或3DES)、64位CFB方式。(3)不需要专门的会话密钥交换协议。(4)每次通信随机产生一个会话密钥Ks的以保证一次一密,增强了保密强度。(5)公开密钥算法的长度决定安全性。保密与认证同时运用 当保密与认证两种服务都需要时,发送者先用自己的私钥签名,然后用会话密钥加密,再用接收者的公钥加密会话密钥。保密与认证同时运用 数据压缩 数据压缩对邮件传输或存储都有节省空间的好处。压缩的位置发生在签名后、加密前。若压缩之前生成签名,验证时无须压缩,压缩算法的多样性。若在加密前压缩,压缩的报文更难分析,增加了安全系数。3、E-mail兼容性 消息加密后是任意的8位字节,需要转换到ASCII格式。基数64

44、将3字节输入转换到4个ASCII字符,并带CRC校验。长度扩大33%,与压缩综合后,分组长度为:1.330.5M=0.665M。基数64变换 将3字节(24bit)的输入先转换成4个ASCII字符,每个ASCII字符在分别扩充33%,成为4个字节(32bit),如图 所示。基数 64变换 (a)A发送消息流程 (b)B接收消息流程4、PGP报文的发送与接收报文的发送与接收1.密钥管理 PGP系统密钥管理涉及密钥产生、密钥环、密钥注销等。(1)密钥。PGP系统使用四种类型的密钥:会话对称密钥、公钥、私钥、基于口令短语的对称密钥。PGP系统对密钥要求:需要一种生成不可预知(随机)的会话密钥的手段;

45、需要某种手段来标识具体的密钥;为了密钥的更换与分组,一个用户拥有多个公钥/私钥对。每个PGP实体需要维护两个文件,一个文件保存自己的公钥/私钥对,另一个文件保存通信对方的公钥。3.3.2 PGP的工作原理的工作原理 (2)密钥环。PGP系统中每个用户所在节点要维护两个文件:私钥环和公开密钥环。私钥环用做存储该节点用户自己的公钥/私钥对。其中部分各字段的作用:UserID:通常是用户的邮件地址。(一名字或重用一名字多次)。Private Key:用户自己的私钥,(系统生成公/私钥对中的私钥)。Public Key:用户自己的公钥,(系统生成公/私钥对中的私钥)。KeyID:密钥标识符,包括64个

46、有效位(KUa mod 264)。KeyID同样也需要PGP数字签名。(3)会话密钥的产生。IDEA生成128位的随机数作为会话密钥。输入包括一个128位的密钥和两个64位的数据块作为加密的输入。使用CFB方式,CAST-128产生两个64位的加密数据块,这两个数据块的结合构成128位的会话密钥。(算法基于ANSI X12.17)。(4)消息加密。使用IDEA(或CAST-128或3DES)加密。(5)发送消息的格式。PGP的报文格式,一个报文包含三部分成员:报文部分、密钥部分。密钥部分并不是密钥本身,而是密钥的标识符,因为用户可能拥有多个公开密钥。时间戳时间戳密钥密钥ID公钥公钥加密的私加密

47、的私钥钥用户用户ID时间时间戳戳密钥密钥ID公钥公钥拥有者信拥有者信任任用户用户ID密钥合理密钥合理性性签名签名签名信签名信任任私钥环的通用结构私钥环的通用结构 公钥环的通用结构公钥环的通用结构 PGPPGP的工作原理的工作原理PGPPGP的报文格式的报文格式 2.PGP报文的生成 (1)发送方处理消息的过程(如图 所示):签名:PGP用发送者(用户A)的User ID(IDA)作为索引,从私钥环中得到用户A的私钥,PGP提示输入口令短语,来恢复用户A的私钥KRa;构造签名部分。加密:PGP产生一个会话密钥Ks,并加密签名和报文;PGP用接收者(用户B)User ID(IDB)从公钥环中获取其

48、公钥KUb;构造消息的会话密钥部分。PGPPGP的工作原理的工作原理PGPPGP的工作原理的工作原理PGP报文的发送(从用户A到用户B)2.PGP报文的生成 (2)收方处理消息的过程(如下图):解密:PGP用报文会话密钥部分的 密钥 ID字段作为索引,从私钥环中查找接收者(用户B)的私钥;并提示用户输入口令短语来恢复私钥;然后恢复会话密钥并且解密报文。认证:PGP使用报文签名密钥部分的密钥ID字段作为索引,从公钥环中查找发送者(用户A)的公钥KUa;恢复传输的报文摘要;对接收的报文计算报文摘要,与传来的报文摘要相比较,以认证报文。*公钥管理公钥管理PGPPGP的工作原理的工作原理PGPPGP的

49、工作原理的工作原理PGP报文的接收(从用户A到用户B)3.4 SSL 3.4.1 协议简介协议简介 SSLSSL在在TCP/IPTCP/IP协议栈中的位置协议栈中的位置IPHTTPFTPSMTPTCPSSL or TLSSSL协议分为两层协议。,它建立在可靠的传输协议(如TCP)之上,为更高层提供基本的安全服务,如提供数据封装、压缩、加密等基本功能的支持。另一层是建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。它由三个协议组成:SSL握手协议(SSL Handshake Protocol)SSL更改密码规格协议(SSL Change C

50、ipher Spec Protocol)SSL警报协议(SSL Alert Protocol SSL Protocol StackSSL Protocol StackIPSSL更改密码规格协议SSL 告警协议HTTPTCPSSL 记录协议SSL 握手协议SSL中协议中两个重要概念:SSL连接(connection):在OSI分层模型的定义中,连接是提供一种合适类型服务的传输。而SSL的连接是点对点的关系。连接是暂时的,每一个连接和一个会话关联。SSL会话(session):一个SSL会话是在客户与服务器之间的一个关联。会话由握手协议创建。会话定义了一组可供多个连接共享的加密安全参数。会话用以避

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(电子商务安全与网上支付-课件(3).ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|