IPSec相关学习资源链接
https://blog.csdn.net/NEUChords/java/article/details/92968314
https://blog.csdn.net/qq_40390383/java/article/details/87473700
https://blog.csdn.net/tangyangyu123/java/article/details/80799742
IPSec简介
miner_k 2018-06-10 11:53:39 5269 收藏 27
展开
优点:
1.在网络层进行安全加密,便于公司和公司的信息传输的加密构建VPN
2.密钥协商的开销减少,只需要在公司出口的路由器上配置即可,不需要每个用户都做协商。
3.需要改动的应用程序很少,
缺点:
很难解决“抗抵赖”之类的问题。(A冒充B给对端发送数据)
IPv4 的头
IPSec 体系结构

有两个安全协议ESP协议和AH协议,在协议中涉及到加密算法和鉴别算法,在算法中涉及到密钥问题,故有密钥管理。IPsec 支持不同 的用户使用不同的策略。
IPSec 安全协议
AH:authentication Header 验证头部
为IP包,提供数据完整性校验和身份认证功能。
验证算法由SA指定。
认证的范围是整个包
完整性校验算法:MD5、SHA
身份认证:证书、签名、域共享的密码、
ESP:encapsulation security payload 封装安全负载
提供机密性、数据源验证、抗重播以及数据完整性等安全服务
加密算法和身份验证方法有SA指定。
机密性:数据加密算法:(MD5、RSA、DES)
IPSec 加密算法
IPSec 密钥管理
SA:security association 安全联盟
确保通信双方的密钥和算法一致
ISAKMP:定义了密钥管理框架
IKE 是目前正式确定用于IPsec的密钥交换协议(可以看做是ISAKMP的高版本)
两种模式
两种模式:传输模式和隧道模式

简介:
原始的IP包,是由低层封装高层。
传输模式封装原始的IP包,是在原始的IP报文中新增加了一个IPsec的头,并对tcp头、数据做加密处理。
使用隧道模式封装原始的IP包,是将原始的IP包整体作为需要加密的有效数据部分,直接在外面增加IPsec头,在最外面增加外部IP头。
AH头格式:

SPI:security parameter index 安全参数索引
标识此包使用的算法、密钥进行加密处理。
sequence number:序列号
authentication data(variable):可变长度的数据验证
封装后的具体的包格式,IPsec的封装部分就是AH的封装部分。


AH的处理过程
对于发送出的包的处理构造AH
创建一个外出SA(手工或通过IKE)
产生序列号 填充AH头的各字段 计算ICV(integrity check value
完整性检验值)内容包含:ip头中部分域、AH自身、上层协议数据。
AH头中的“下一头部”置为原IP报头中的“协议”字段的值,原IP包头的“协议字段置为51(代表AH)”
对于接收到的包的处理
分片装配 ,在不同的设备上mtu值不同,需要对接受到的数据分片装配
查找SA ,确定加密的算法和相关的密钥信息。 依据:目标IP地址、AH协议、SPI
检查序列号 ,看包是否存在重复出现
ICV检查,完整性检查
ESP协议

SPI:security parameter index 安全参数索引
标识此包使用的算法、密钥进行加密处理。
sequence number:序列号
payload Data(variable):可变数据的负载部分
authentication data(variable):可变长度的数据验证
padding(0-255bytes):填充数据部分
Pad length:填充信息的长度
Next Header:下一个头部信息


ESP协议的处理
对于发送出去的包的处理
查找SA
加密
封装必要的数据,放到payload data 域中,不同的模式,封装数据的范围不同
增加必要的padding数据 加密操作
验证
计算ICV,注意,针对加密后的数据进行计算。
对于接收到的包(inbound Packet)的处理:
分片装配
查找SA,依据:目标IP地址、ESP协议、SPI
检查序列号(可选、针对重放攻击) 使用一个滑动窗口来检查序列号的重放
ICV检查
根据SA中指定的算法和密钥、参数,对于被加密部分的数据进行解密
去掉padding
重构原始的IP包
安全联盟SA
SA是单向的(任何人根据SA的信息是无法逆推出,加密算法、密钥、鉴别算法)
SA是“协议相关”的。AH、ESP不同的协议对应和SA也不同
每个SA通过三个参数来标志[SPI、dst(src)、protocol]
安全参数索引SPI(security Parameters index):密码密钥的标号
对方IP地址
安全协议标识AH or ESP
SA 与IPsec 系统中实现的两个数据库有关
安全策略数据库(SPD)
安全关联数据库(SAD)
密码和密钥放在这两个数据库中,数据库只有双方知道其他人不知道,在调用的时候通过标号来调用。
R1和R2需要建立IPsec连接,
收发双方需要协商的方式确立安全策略数据库,安全策略中需要指定的身份认证的方法(证书或者是域共享密码),实现IPsec的过程中,既使用AH协议有用ESP协议,确定协议的切换时间,加密的方式是DES,以及切换加密协议的时间。
确立算法和密钥的数据库,
Internet 密钥交换协议-IKE
IKE协议
RFC2409 ,是0akley和SKEME协议的一种混合
基于ISAKMP框架
沿用0akley和SKEME的共享和密钥更新技术
SAKMP:I Internet security association and key management protocol
RFC 2408
定义如何检验安全联盟并初始化密钥
两个阶段的交换
第一阶段:建立ISAKMP SA —— IKE SA
双方(例如ISAKMP servers)商定如何保护以后的通讯,通信双方建立一个已经通过身份鉴别和安全保护的通道
此SA将用于保护后面的protocol SA的协商过程。
第二阶段:建立起针对其他安全协议的SA —— IPsec SA
这个阶段可以建立多个SA
此SA将被相应的安全协议用于保护数据或者消息的交换。
IPsec - VPN
IP安全协议:AH、ESP
数据加密标准: DES,3DES
公共密钥密码协议:Diffie-Hellman(DH)
散列算法(完整性):MD5,SHA-1
公钥加密算法:RSA
Internet密钥交换:IKE
证书授权中心:CA
————————————————
版权声明:本文为CSDN博主「miner_k」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/miner_k/java/article/details/80366793
IPSec、SSL、S-HTTP和S/MIME安全协议的比较
原文来自:http://hi.baidu.com/wjmd521/blog/item/8fecaf1361528ad1f7039e13.html
一.引言
由于许多网络攻击都是因网络协议如TCP/IP的固有漏洞引起的,因此,为了保证网络传输和应用的安全,出现了很多运行在基础网络协议上的安全协议,如IPSec、SSL、 S-HTTP、S/MIME等,下面对他们进行了简单的介绍,并对它们进行了比较。
二.四种安全协议简介
1.IPSec
IPSec 是Internet Protocol Security的缩写,它是设计为IPv4和IPv6协议提供基于加密安全的协议,它使用AH和ESP协议来实现其安全,使用 ISAKMP/Oakley及SKIP进行密钥交换、管理及安全协商(Security Association)。IPSec安全协议工作在网络层,运行在它上面的所有网络通道都是加密的。IPSec安全服务包括访问控制、数据源认证、无连 接数据完整性、抗重播、数据机密性和有限的通信流量机密性。IPSec使用身份认证机制进行访问控制,即两个IPSec实体试图进行通信前,必须通过 IKE协商SA,协商过程中要进行身份认证,身份认证采用公钥签名机制,使用数字签名标准(DSS)算法或RSA算法,而公通常是从证书中获得的; IPSec使用消息鉴别机制实现数据源验证服务,即发送方在发送数据包前,要用消息鉴别算法HMAC计算MAC,HMAC将消息的一部分和密钥作为输入, 以MAC作为输出,目的地收到IP包后,使用相同的验证算法和密钥计算验证数据,如果计算出的MAC与数据包中的MAC完全相同,则认为数据包通过了验 证;无连接数据完整性服务是对单个数据包是否被篡改进行检查,而对数据包的到达顺序不作要求,IPSec使用数据源验证机制实现无连接完整性服务; IPSec的抗重播服务,是指防止攻击者截取和复制IP包,然后发送到源目的地,IPSec根据 IPSec头中的序号字段,使用滑动窗口原理,实现抗重播服务;通信流机密性服务是指防止对通信的外部属性(源地址、目的地址、消息长度和通信频率等)的 泄露,从而使攻击者对网络流量进行分析,推导其中的传输频率、通信者身份、数据包大小、数据流标识符等信息。IPSec使用ESP隧道模式,对IP包进行 封装,可达到一定程度的机密性,即有限的通信流机密性。
2.SSL协议
安全套接层(Security Socket Layer,SSL)协议就是设计来保护网络传输信息的,它工作在传输层之上,应用层之下,其底层是基于传输层可靠的流传输协议(如TCP)。SSL协议 最早由Netscape公司于1994年11月提出并率先实现(SSLv2)的,之后经过多次修改,最终被IETF所采纳,并制定为传输层安全 (Transport Layer Security,TLS)标准。该标准刚开始制定时是面向Web应用的安全解决方案,随着SSL部署的简易性和较高的安全性逐渐为人所知,现在它已经成 为Web上部署最为广泛的信息安全协议之一。近年来SSL的应用领域不断被拓宽,许多在网络上传输的敏感信息(如电子商务、金融业务中的信用卡号或PIN 码等机密信息)都纷纷采用SSL来进行安全保护。SSL通过加密传输来确保数据的机密性,通过信息验证码(Message Authentication Codes,MAC)机制来保护信息的完整性,通过数字证书来对发送和接收者的身份进行认证。
实际上SSL协议本身也是个分层的协议,它由消息子层以及承载消息的记录子层组成。
SSL 记录协议首先按照一定的原则如性能最优原则把消息数据分成一定长度的片断;接着分别对这些片断进行消息摘要和MAC计算,得到MAC值;然后再对这些片断 进行加密计算;最后把加密后的片断和MAC值连接起来,计算其长度,并打上记录头后发送到传输层。这是一般的消息数据到达后,记录层所做的工作。但有的特 殊消息如握手消息,由于发送时还没有完全建立好加密的通道,所以并不完全按照这个方式进行;而且有的消息比较短小,如警示消息(Alert),出于性能考 虑也可能和其它的一些消息一起被打包成一个记录。
消息子层是应用层和SSL记录层间的接口,负责标识并在应用层和SSL记录层间传输数据或者对握 手信息和警示信息的逻辑进行处理,可以说是整个SSL层的核心。其中尤其关键的又是握手信息的处理,它是建立安全通道的关键,握手状态机运行在这一层上。 警示消息的处理实现上也可以作为握手状态机的一部分。SSL协议为了描述所有消息,引入了SSL规范语言,其语法结构主要仿照C语言,而是无歧义、精简 的。
3. S-HTTP
安全超文本传输协议(Secure HyperText Transfer Protocol,S-HTTP)是EIT公司结合 HTTP 而设计的一种消息安全通信协议。S-HTTP协议处于应用层,它是HTTP协议的扩展,它仅适用于HTTP联结上,S-HTTP可提供通信保密、身份识 别、可信赖的信息传输服务及数字签名等。S-HTTP 提供了完整且灵活的加密算法及相关参数。选项协商用来确定客户机和服务器在安全事务处理模式、加密算法(如用于签名的非对称算法 RSA 和 DSA等、用于对称加解密的 DES 和 RC2 等)及证书选择等方面达成一致。 S-HTTP 支持端对端安全传输,客户机可能“首先”启动安全传输(使用报头的信息),如,它可以用来支持加密技术。S-HTTP是通过在S-HTTP所交换包的特殊头标志来建立安全通讯的。当使用 S-HTTP时,敏感的数据信息不会在网络上明文传输。
4. S/MIME
S/MIME 是Secure / Multipurpose Internet Mail Extensions的缩写,是从PEM (Privacy Enhanced Mail)和MIME(Internet邮件的附件标准)发展而来的。S/MIME是利用单向散列算法(如SHA-1、MD5等)和公钥机制的加密体系。 S/MIME的证书格式采用X.509标准格式。S/MIME的认证机制依赖于层次结构的证书认证机构,所有下一级的组织和个人的证书均由上一级的组织负 责认证,而最上一级的组织(根证书)之间相互认证,整个信任关系是树状结构的。另外,S/MIME将信件内容加密签名后作为特殊的附件传送。
三.四种安全协议的比较
1.SSL与IPSEC
SSL与IPSEC在很多地方上是非常相似的。两种协议都有密钥协商,加密参数的握手阶段,之后还有加密数据的传输阶段。传输模式(TCP)下使用的IPSEC与SSL行为比较接近,它为通信数据但不包括IP头信息提供认证。
SSL与IPSEC的主要不同在于: (1)SSL用来保护在传输层(TCP)上通信的数据的安全,而IPSEC除此之外还用来保护在IP层上的数据包的安全,如UDP包。 (2)对一个已经在使用的系统,SSL不需要改动协议栈但需要改变应用层,与此相反,IPSEC不需要改变应用层但需要改变协议栈。 (3)SSL可以单向认证(仅认证服务器),但IPSEC要求双方认证。 (4)当涉及应用层中间节点,IPSEC只能提供链接保护,而SSL提供端到端保护。 (5)IPSEC受NAT影响较为严重,而SSL可以穿过NAT而毫无影响。
2.SSL与S-HTTP
S -HTTP是应用层的加密协议,它能感知到应用层数据的结构,而不是像SSL一样完全当作流来处理,也就是说,S-HTTP把消息当成对象进行签名或加密 传输,而SSL则主动把数据流分帧处理,而不理会消息的边界。也由于这样,S-HTTP可以提供基于消息的抗抵赖性证明,而SSL不可以。因此,S- HTTP比SSL更灵活,功能更强大,但是实现较困难,而使用也更困难,也因此现在使用基于SSL的HTTPS要比S-HTTP要更普遍。
3. SSL与S/MIME的比较
S/MIME 协议是专门用来保护E-mail安全的,也是一种应用层加密协议。而SMTP/SSL保护E-mail效果不是很理想,因为SMTP/SSL仅提供使用 SMTP的链路的安全,而从邮件服务器到本地的路径是用POP/MAPI协议,这无法使用SMTP/SSL来保护。相反S/MIME使用加密整个邮件的内 容后使用MIME数据发送,这种发送可以是任何一种方式,摆脱了安全链路的限制只需要收发邮件的两个终端支持S/MIME即可。
四.结论
IPSec 安全协议工作在网络层,SSL工作在传输层之上、应用层之下,S-HTTP和S/MIME都工作在应用层。相比较而言,SSL简单,应用广泛。因此,当所 需要的保护基于TCP并是直接连接而不是经过中介且较为简单时可以考虑SSL部署,但SSL不提供针对消息等对象的抗抵赖性证明,也不提供时间戳等上层所 需要用的标记。如果是比较复杂的安全要求,最好使用有专门针对性的安全协议,如电子邮件采用S/MIME协议,信用卡支付采用安全电子交易(SET)协 议。 |