目录
(一)总部——多分支:多个Tunnel接口借用同一个物理接口地址,一个Tunnel接口对应一个分支。
(二)总部——多分支:总部采用安全策略组方式与分支建立多条IPSec隧道。
一、整个IPsec工作过程
1. 启动IKE: 当路由器接收到与访问列表匹配的内容时,将启动 IKE 进程,启动隧道创建。
2. IKE阶段1: 协商安全联盟以构建 IKE 阶段 1 隧道(ISAKMP 隧道)。
说明:
(1)被称之为ISAKMP隧道,是因R1和R2之间交互的报文叫ISAKMP报文(承载在UDP报文上,端口号为500)
(2)双方交互后,统一了加密算法、认证或HASH算法、DH组(以及用于构建加密密钥的材料),形成了ISAKMP隧道,并通过隧道采用预共享密钥或证书方式进行对等体双方的身份确认。
(3)此阶段的目的是对接下来双方需要进行交互的参数进行加密和认证,这些参数在阶段2形成一个隧道叫IPSec隧道,直接服务于业务数据。
3. IKE阶段2: 在IKE阶段1隧道内,建立IKE阶段2隧道(IPsec隧道)。
说明:
(1)利用IKE阶段1形成的隧道对对方选择的是ESP还是AH协议,ESP/AH中的HASH和加密算法是什么,还有采用的是传输模式还是隧道模式进行交互,业务数据的保护将基于这些参数。本阶段隧道所谓IPsec隧道建立了。
(2)ESP/AH报文中索引值SPI字段来自于阶段1中ISAKMP报文交互时产生的SPI值(或Cookie值)。
4. 数据传输: 通过 IKE 阶段2隧道保护用户发送的数据。
5. 终止隧道: 当没有用户数据需要保护时,IPsec 隧道将在一段时间后终止。
二、IKE阶段1
IKE 阶段 1 的主要目的是建立可用于 IKE 阶段 2 的安全隧道。
可以将第一阶段分解成三个小步骤:
第 1 步:谈判
具有应保护流量的对等方将启动 IKE 阶段 1 协商。两个对等方将就以下项目进行协商:
- 散列(HASH/认证):使用散列算法来验证完整性,比如 MD5 或 SHA。
- 身份验证:每个对等方都必须证明他是谁。两个常用选项是预共享密钥或数字证书。
- DH 组:DH 组确定在密钥交换过程中使用的密钥的强度。较高的组数更安全,但计算时间更长。
- 生存周期 : IKE 阶段 1 隧道能保持多久?生命周期越短,它就越安全,因为重建它意味着还将使用新的密钥构建所需材料。每个厂商使用不同的生命周期,常见的默认值为 86400 秒(1 天)。
- 加密:使用什么算法进行加密?例如,DES、3DES 或 AES。
第 2 步:DH 密钥交换
一旦协商成功,两个对等方就会知道使用什么策略。接下来他们将用协商的 DH 组来交换密钥构建所需材料。最终结果将是两个对等方将拥有一个相同的密钥。
第 3 步:身份验证
最后一步是两个对等方将使用他们在协商中商定的身份验证方法相互进行身份验证。当身份验证成功时,表示完成了 IKE 阶段 1,并建立了一个双向的 IKE 阶段 1 隧道(又名 ISAKMP 隧道)。这意味着两个对等方都可以在此隧道上发送和接收东西。
上述三个步骤可以使用两种不同的模式完成:
- 主模式(Main Mode):提供身份保护。
- 野蛮模式(Aggressive Mode):协商速度更快,但不提供身份保护。
主模式使用六条消息,而野蛮模式仅使用三条消息。主模式被认为更安全。
主模式时报文交互情况如下图1-6(来自网络):
交互报文1:
交互报文2:
交互报文3:
交互报文4、5、6:
野蛮模式下的报文交互如下图1-3(来自网络):
三、IKE阶段2
IKE 阶段 2 隧道(IPsec 隧道)实际上将用于保护用户数据。建立 IKE 阶段 2 隧道只有一种模式,称为快速模式。
就像在 IKE 阶段 1 中一样,对等方将就一些项目进行协商:
- IPsec 协议:使用 AH 还是 ESP?
- 封装模式:传输模式还是隧道模式?
- 加密:使用什么加密算法?DES、3DES 还是 AES?
- 身份验证:使用什么身份验证算法?MD5 还是 SHA?
- 生命周期:IKE 阶段 2 隧道的有效期是多久?当隧道即将到期时,将刷新密钥构建所需材料。
- (可选)DH 交换:用于 PFS(完美前向保密)。
PFS 是可选的,并强制对等方再次运行 DH 交换以在每个 IKE 阶段 2 快速模式下生成新的共享密钥。
这种协商发生在我们的 IKE 阶段 1 隧道的保护范围内,因此报文中看不到任何东西。
报文交互过程如下(来自网络):
四、IPsec协议
AH 和/或 ESP 是我们用来实际保护用户数据的两种协议。它们都可以用于传输或隧道模式。AH 提供身份验证和完整性,但不提供任何加密。ESP 是更受欢迎,因为它可能加密IP流量。
AH报文头:
ESP报文头:
传输模式:
隧道模式:
综上,IPSec阶段,或阶段2需要协商的内容主要有:加密算法、HASH(认证)算法、ESP或AH、隧道模式/传输模式。
数据包在ESP+隧道模式下的装与拆的过程(来自网络):
装包过程:
1、在原IP报文末尾添加尾部(ESP trailer)信息。由于所选加密算法可能是块加密,那么当最后一块长度不够时就需要进行填充(padding),附上填充长度(pad length)方便解包时顺利找出用来填充的那一段数据。Next header标明被加密的数据报文的类型,如TCP。
2、将原IP报文以及第1步得到的ESP尾部作为一个整体进行加密。具体的加密算法与密钥由SA给出。
3、为第2步得到的加密数据添加ESP头部。ESP头由两部分组成,SPI和序号(sequence number)。加密数据与ESP头合称为“xxx”。
4、附加完整性度量结果(ICV,Integrity check value)。对第三步得到的“xxx”做摘要,得到一个完整性度量值并附在ESP报文的尾部。
5、加上新的IP头。新构造的IP头附在ESP报文的前面组成一个新的IP报文。注意这个新的IP头的目的地址跟源地址可以不一样。协议类型为50,说明它里面装的是一个IPsec报文。
拆包过程:
1、接收方收到数据报文后,发现协议类型是50,知道这是一个IPsec包。首先查看ESP头,通过里面的SPI决定数据报文所对应的SA。
2、计算“xxx”部分的摘要,与附在末尾的ICV做对比,如果一样的话说明数据是完整的。否则可以断定所收到的报文已经不是原来的报文了。
3、检查Seq里的顺序号,保证数据是新到的。
4、根据SA所提供的加密算法和密钥,解密被加密过的数据,即“xxx”。得到原IP报文与ESP尾部(trailer)。
5、根据ESP尾部里的填充长度信息,我们可以找出填充字段的长度,删去后就得到原来的IP报文。
6、最后根据得到的原IP包的目的地址来进行转发。
五、华为设备配置命令
(一)安全提议 xxx proposal
安全提议(Proposal)指的是,双方对需要保护的数据进行处理的方式和参数。
1、IKE安全提议
ike proposal proposal-number
authentication-method { pre-share | rsa-signature | digital-envelope }
authentication-algorithm xxx
encryption-algorithm xxx
dh xxx
2、IPSec安全提议
ipsec proposal proposal-name
transform { ah | esp | ah-esp }
ah authentication-algorithm xxx
esp authentication-algorithm xxx
esp encryption-algorithm xxx
encapsulation-mode { transport | tunnel }
(二)IKE对等体 ike peer
采用IKE动态协商方式建立IPSec隧道(ike阶段1-->ike阶段2后建立)前,协商的双方各方面属性必须一样,或者必须是对等体,才能开启协商。
ike peer peer-name
version { 1 | 2 },缺省启用IKEv2版本。
exchange-mode { main | aggressive | auto }(可选),IKEv1阶段1协商模式。缺省主模式。
local-address ipv4-address(可选),配置IKE协商时的本端IP地址。缺省情况下,根据路由选择到对端的出接口,将该出接口地址作为本端IP地址。一般情况下本端IP地址不需要配置。
remote-address { [ vpn-instance vpn-instance-name ] { ipv4-address | host-name host-name } | authentication-address start-ipv4-address [ end-ipv4-address ] }(可选),配置IKE协商时的对端IP地址或域名。缺省情况下,系统没有配置IKE对等体的对端地址或域名。
ike-proposal proposal-number,引用IKE安全提议。 proposal-number是一个已创建的IKE安全提议。
配置身份认证参数。预共享密钥认证(pre-share)| RSA签名认证(rsa-signature)| RSA数字信封认证(digital-envelope)
(三)IPSec安全框架 ipsec profile
一个IPSec安全框架相当于一个IPSec安全策略,与IPSec安全策略不同的是,安全框架由名称唯一确定,且只能通过IKE协商方式配置。
IPSec安全框架无需通过ACL定义数据流,而是保护所有路由到IPSec虚拟隧道接口的数据流。在IPSec虚拟隧道接口下应用IPSec安全框架后只会生成一条IPSec隧道,并对所有路由到该隧道接口的数据流进行IPSec保护,简化了安全策略管理的复杂度。 为保证IKE协商成功,安全框架中所有配置的参数必须在本端和对端相匹配。
ipsec profile profile-name
proposal proposal-name,在安全框架中引用IPSec安全提议。proposal-name是一个已创建的IPSec安全提议。
ike-peer peer-name,在安全框架中引用IKE对等体。peer-name是一个已创建的IKE对等体。
tunnel remote interface interface-type interface-number(可选),配置IPSec隧道的IKE协商报文出接口。
说 明:
1、IPSec安全框架引用的IKE对等体不需要指定本端地址tunnel local,因为IPSec安全框架进行IKE协商时,选用的本端地址是通过GRE或IPSec虚拟隧道接口的源地址指定的,IPSec安全框架所引用的IKE对等体中的tunnel local配置不生效。
2、采用IPSec安全框架时,IKE协商使用的对端地址优先选用IPSec隧道接口下配置的destination,只有在IPSec隧道接口下没有配置destination时,才会使用IKE对等体下配置的remote-address。remote-address和destination命令同时配置时,必须确保两者配置的IP地址一致,否则会导致IKE协商失败。如果要IKE对等体冗余,则不能在IPSec虚拟隧道接口下配置destination,而要在安全框架引用的IKE对等体中配置remote-address。
(四)IPSec安全策略 ipsec policy
IPSec安全策略是创建SA的前提,它规定了对哪些数据流采用哪种保护方法。
配置IPSec安全策略时,通过引用ACL和IPSec安全提议,将ACL定义的数据流和IPSec安全提议定义的保护方法关联起来,并可以指定SA的协商方式、IPSec隧道的起点和终点、所需要的密钥和SA的生存周期等。
一个IPSec安全策略由名称和序号共同唯一确定,相同名称的IPSec安全策略为一个IPSec安全策略组。IPSec安全策略分为手工方式IPSec安全策略、ISAKMP方式IPSec安全策略和策略模板方式IPSec安全策略。用户可根据实际需要选择一种配置。
下图为 IPSec安全策略组的组成:
手工方式IPSec安全策略
手工方式IPSec安全策略所有的安全参数都需要手工配置,配置工作量大,因而适用于小型静态环境。 手工方式IPSec安全策略需要用户分别针对出/入方向SA手工配置认证/加密密钥、SPI等参数,并且隧道两端的这些参数需要镜像配置,即本端的入方向SA参数必须和对端的出方向SA参数一样;本端的出方向SA参数必须和对端的入方向SA参数一样。
ipsec policy policy-name seq-number manual
security acl acl-number
proposal proposal-name
tunnel local ipv4-address,配置IPSec隧道的本端地址(起点)。
tunnel remote ip-address,配置IPSec隧道的对端地址(终点)。
sa spi outbound { ah | esp } spi-number,配置出方向SA的SPI。
sa spi inbound { ah | esp } spi-number,配置入方向SA的SPI。
sa string-key { inbound | outbound } ah cipher string-key,配置AH协议的认证密钥(以字符串方式输入)。
sa string-key { inbound | outbound } esp cipher string-key,配置ESP协议的认证密钥(以字符串方式输入)。
ISAKMP方式IPSec安全策略
ISAKMP方式IPSec安全策略适用于对端IP地址固定的场景,一般用于分支的配置。
ipsec policy policy-name seq-number isakmp
security acl acl-number
proposal proposal-name
ike-peer peer-name
tunnel local { ipv4-address | applied-interface }(可选),配置IPSec隧道的本端地址。
tunnel remote { applied-interface | interface interface-type interface-number }(可选),配置IPSec隧道的IKE协商报文出接口。
(五)ACL方式建立IPSec隧道
在一个接口上应用一个IPSec安全策略组,实际上是同时应用了IPSec安全策略组中所有的IPSec安全策略,从而能够对不同的数据流采用不同的IPSec联盟进行保护。 当从一个接口发送数据时,将按照从小到大的序号查找IPSec安全策略组中每一个IPSec安全策略。如果数据流匹配了一个IPSec安全策略引用的ACL,则使用这个IPSec安全策略对数据流进行处理;如果没有匹配,则继续查找下一个IPSec安全策略;如果数据与所有IPSec安全策略引用的ACL都不匹配,则直接被发送,即IPSec不对数据流加以保护。
接口应用IPSec安全策略组的配置原则:
- IPSec安全策略应用到的接口一定是建立隧道的接口,且该接口一定是到对端私网路由的出接口。误将IPSec安全策略应用到其它接口会导致VPN业务不通。
- 一个接口只能应用一个IPSec安全策略组,一个IPSec安全策略组也只能应用到一个接口上。
- 当IPSec安全策略组应用于接口后,不能修改该安全策略组下安全策略的引用的ACL、引用的IKE对等体。
说明:
- 在Tunnel接口上应用IPSec安全策略,并执行命令source指定该接口的地址时,必须执行命令tunnel local配置隧道的本端地址,否则会导致IKE协商失败。
- 多分支接入总部的场景中,总部采用多个Tunnel接口借用同一个物理接口地址时,总部可以通过IKE对等体中的对端IP或对端ID来识别分支接入的Tunnel接口(仅IKEv1野蛮模式支持对端ID方式)。
- 多分支接入总部的场景中,如果总部出现部分Tunnel接口的接口地址借用了物理接口地址、部分Tunnel接口的Source地址借用了物理接口地址或部分Tunnel接口的隧道本端地址借用了物理接口的虚地址混合配置,容易造成IKE对等体和Tunnel接口的映射关系发生错误,导致IPSec隧道建立失败。
(六)虚拟接口方式建立IPSec隧道
配置虚拟隧道
虚拟隧道接口(即Tunnel接口)是一种三层逻辑接口,针对协议类型为GRE、mGRE或IPSec的逻辑接口,设备可提供IPSec保护功能。它建立在IKE协商的基础上。通过配置虚拟隧道接口,并在虚拟隧道接口视图下应用IPSec安全框架使得IPSec隧道建立。 协议类型为IPSec的Tunnel接口的IP地址可以手工配置,也可以通过IKEv2协商动态申请。后者在大规模分支接入总部的场景中,可减少分支设备的配置和维护工作量。
说明:
- 多分支接入总部的场景中,总部采用多个Tunnel接口借用同一个物理接口地址时,总部可以通过IKE对等体中的对端IP或对端ID来识别分支接入的Tunnel接口(仅IKEv1野蛮模式支持对端ID方式),如果总部Tunnel接口执行命令destination指定了分支接口的地址,则总部优先根据此命令识别分支的接入。
- 多分支接入总部的场景中,如果总部出现部分Tunnel接口的接口地址借用了物理接口地址、部分Tunnel接口的Source地址借用了物理接口地址混合配置,容易造成IKE对等体和Tunnel接口的映射关系发生错误,导致IPSec隧道建立失败。
interface tunnel interface-number
tunnel-protocol { gre [ p2mp ] | ipsec },配置隧道接口的封装模式。
ip address ip-address { mask | mask-length } [ sub ],配置Tunnel接口的IPv4私网地址。
source { [ vpn-instance vpn-instance-name ] source-ip-address | interface-type interface-number [ standby ] },配置Tunnel接口的源地址或源接口。
destination [ vpn-instance vpn-instance-name ] dest-ip-address(可选),配置Tunnel接口的目的地址。
ipsec profile profile-name [ shared ],在Tunnel接口上应用IPSec安全框架,使其具有IPSec的保护功能。
tunnel-protocol:
隧道接口的封装模式根据实际需要设置为IPSec、GRE或者mGRE方式,才能在Tunnel口下绑定IPSec安全框架。 IPSec:Tunnel接口建立IPSec隧道,保证在Internet上传输单播数据的安全保密性。 GRE:Tunnel接口实现GRE over IPSec功能,除了可以传输单播数据,还可以传输组播数据。先对数据进行GRE封装,再对GRE封装后的报文进行IPSec加密,完成对数据安全可靠的传输。
destination:
当IPSec虚拟隧道接口的目的地址未配置时,可使用IPSec安全框架引用的IKE对等体下配置的对端地址主动发起协商。当IPSec虚拟隧道接口下的目的地址和IKE对等体下的对端地址均未配置时,本端只能被动接受对端发起的协商。 如果隧道接口的封装模式设置为GRE方式,则两端都需要配置目的地址。
ipsec profile:
一个Tunnel接口只能应用一个IPSec安全框架。未指定shared时,一个IPSec安全框架最多应用在4个Tunnel接口上;指定shared时,一个IPSec安全框架最多应用在64个Tunnel接口上。 仅mGRE类型的Tunnel接口支持配置shared参数。 多个Tunnel接口指定同一个出接口时,这些Tunnel接口必须应用相同的IPSec安全框架,并配置shared参数,否则两端无法建立IPSec隧道。
六、华为设备配置举例
(一)总部——多分支:多个Tunnel接口借用同一个物理接口地址,一个Tunnel接口对应一个分支。
Router A:
#
acl number 3000
rule 5 permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
acl number 3001
rule 10 permit ip source 10.1.1.0 0.0.0.255 destination 10.1.3.0 0.0.0.255
#
ipsec proposal tran1
esp authentication-algorithm sha2-256
esp encryption-algorithm aes-256
#
ike proposal 10
encryption-algorithm aes-256
dh group14
authentication-algorithm sha2-256
authentication-method pre-share
integrity-algorithm hmac-sha2-256
prf hmac-sha2-256
#
ike peer b
pre-shared-key cipher %^%#W)04NhZ:bP=~"=KQu\CN6KcK#NE5:(Os2L57]r5I%^%#
ike-proposal 10
remote-address 1.1.5.1
ike peer c
pre-shared-key cipher %^%#W)04NhZ:bP=~"=KQu\CN6KcK#NE5:(Os2L57]r5I%^%#
ike-proposal 10
remote-address 1.1.6.1
#
ipsec policy map1 10 isakmp
security acl 3000
ike-peer b
proposal tran1
ipsec policy map2 10 isakmp
security acl 3001
ike-peer c
proposal tran1
#
interface GigabitEthernet1/0/1
ip address 1.1.3.1 255.255.255.0
#
interface GigabitEthernet1/0/3
ip address 10.1.1.1 255.255.255.0
#
interface Tunnel0/0/0
ip address unnumbered interface GigabitEthernet1/0/1
tunnel-protocol ipsec
ipsec policy map1
#
interface Tunnel0/0/1
ip address unnumbered interface GigabitEthernet1/0/1
tunnel-protocol ipsec
ipsec policy map2
#
ip route-static 0.0.0.0 0.0.0.0 1.1.3.2
ip route-static 10.1.2.0 255.255.255.0 Tunnel0/0/0
ip route-static 10.1.3.0 255.255.255.0 Tunnel0/0/1
#
(二)总部——多分支:总部采用安全策略组方式与分支建立多条IPSec隧道。
Router C:
#
ipsec policy policy1 10 isakmp
security acl 3002
ike-peer rut1
proposal tran1
ipsec policy policy1 11 isakmp
security acl 3003
ike-peer rut2
proposal tran1
#
interface GigabitEthernet0/0/1
ip address 60.1.3.1 255.255.255.0
ipsec policy policy1
#
interface GigabitEthernet0/0/2
ip address 192.168.3.2 255.255.255.0
#
ip route-static 60.1.1.0 255.255.255.0 60.1.3.2
ip route-static 60.1.2.0 255.255.255.0 60.1.3.2
ip route-static 192.168.1.0 255.255.255.0 60.1.3.2
ip route-static 192.168.2.0 255.255.255.0 60.1.3.2
#
(三)配置虚拟隧道接口建立IPSec隧道
分支子网较为庞大,有大量需要IPSec保护的数据流,可基于虚拟隧道接口方式建立IPSec隧道,对Tunnel接口下的流量进行保护,不需使用ACL定义待保护的流量特征。
Router A:
#
ipsec proposal tran1
esp authentication-algorithm sha2-256
esp encryption-algorithm aes-128
#
ike proposal 5
encryption-algorithm aes-128
dh group14
authentication-algorithm sha2-256
authentication-method pre-share
integrity-algorithm hmac-sha2-256
prf hmac-sha2-256
#
ike peer spub
version 1
pre-shared-key cipher %^%#JvZxR2g8c;a9~FPN~n'$7`DEV&=G(=Et02P/%\*!%^%#
ike-proposal 5
#
ipsec profile profile1
ike-peer spub
proposal tran1
#
interface Tunnel0/0/0
ip address 192.168.1.1 255.255.255.0
tunnel-protocol ipsec
source 1.1.1.1
destination 2.1.1.1
ipsec profile profile1
#
interface GigabitEthernet1/0/0
ip address 1.1.1.1 255.255.255.0
#
interface GigabitEthernet2/0/0
ip address 10.1.1.1 255.255.255.0
#
ip route-static 2.1.1.0 255.255.255.0 1.1.1.12
ip route-static 10.1.2.0 255.255.255.0 tunnel0/0/0
#
(四)配置虚拟隧道接口建立GRE over IPSec隧道
企业希望对分支与总部之间相互访问的流量(包括组播数据)进行安全保护。由于组播数据无法直接应用IPSec,所以基于虚拟隧道接口方式建立GRE over IPSec,对Tunnel接口下的流量进行保护。
Router A:
#
ipsec proposal tran1
esp authentication-algorithm sha2-256
esp encryption-algorithm aes-128
#
ike proposal 5
encryption-algorithm aes-128
dh group14
authentication-algorithm sha2-256
authentication-method pre-share
integrity-algorithm hmac-sha2-256
prf hmac-sha2-256
#
ike peer spub
version 1
pre-shared-key cipher %^%#JvZxR2g8c;a9~FPN~n'$7`DEV&=G(=Et02P/%\*!%^%#
ike-proposal 5
#
ipsec profile profile1
ike-peer spub
proposal tran1
#
interface Tunnel0/0/0
ip address 192.168.1.1 255.255.255.0
tunnel-protocol gre
source 1.1.1.1
destination 2.1.1.1
ipsec profile profile1
#
interface GigabitEthernet1/0/0
ip address 1.1.1.1 255.255.255.0
#
interface GigabitEthernet2/0/0
ip address 10.1.1.1 255.255.255.0
#
ip route-static 2.1.1.0 255.255.255.0 1.1.1.2
ip route-static 10.1.2.0 255.255.255.0 tunnel0/0/0
#
七、认证/HASH/指纹/摘要算法
(一)效果展示
hash generator online | encode-decode.com
(二)各种算法
md2
md4
md5
sha1
sha224
sha256
sha384
sha512/224
sha512/256
sha512
sha3-224
sha3-256
sha3-384
sha3-512
ripemd128
ripemd160
ripemd256
ripemd320
whirlpool
tiger128,3
tiger160,3
tiger192,3
tiger128,4
tiger160,4
tiger192,4
snefru
snefru256
gost
gost-crypto
adler32
crc32
crc32b
fnv132
fnv1a32
fnv164
fnv1a64
joaat
haval128,3
haval160,3
haval192,3
haval224,3
haval256,3
haval128,4
haval160,4
haval192,4
haval224,4
haval256,4
haval128,5
haval160,5
haval192,5
haval224,5
haval256,5
八、对称加密算法
(一)特点和用途
加解密使用相同密钥,加密速度快,适用加解密大文件。
(二)名称说明
AES-128-CBC
- AES: 加密算法的名称。 这里叫高级加密标准。其他对称加密算法有:DES、3-DES等。
- 128 : 密钥大小。 AES 加密使用 3 种密钥大小(128 位、192 位和 256 位)。AES 中的块大小也是 128 位。
- CBC: 加密模式。 指加密算法的输入端除了明文和加密密钥外,还会有其他参数,比如初始向量 IV、附加消息 F等。有多种加密模式,加密模式不同,算法的工作速度、并行性和安全级别则不同。常见模式包括CBC(密码块链接),ECB(电子密码本),CFB(密码反馈),CTR(计数器)等,其他模式有GCM(伽罗瓦计数器模式)等。
(三)各种算法
aes-128-cbc
aes-128-cbc-hmac-sha1
aes-128-cfb
aes-128-cfb1
aes-128-cfb8
aes-128-ctr
aes-128-ecb
aes-128-ofb
aes-128-xts
aes-192-cbc
aes-192-cfb
aes-192-cfb1
aes-192-cfb8
aes-192-ctr
aes-192-ecb
aes-192-ofb
aes-256-cbc
aes-256-cbc-hmac-sha1
aes-256-cfb
aes-256-cfb1
aes-256-cfb8
aes-256-ctr
aes-256-ecb
aes-256-ofb
aes-256-xts
aes128
aes192
aes256
bf
bf-cbc
bf-cfb
bf-ecb
bf-ofb
camellia-128-cbc
camellia-128-cfb
camellia-128-cfb1
camellia-128-cfb8
camellia-128-ecb
camellia-128-ofb
camellia-192-cbc
camellia-192-cfb
camellia-192-cfb1
camellia-192-cfb8
camellia-192-ecb
camellia-192-ofb
camellia-256-cbc
camellia-256-cfb
camellia-256-cfb1
camellia-256-cfb8
camellia-256-ecb
camellia-256-ofb
camellia128
camellia192
camellia256
cast
cast-cbc
cast5-cbc
cast5-cfb
cast5-ecb
cast5-ofb
des
des-cbc
des-cfb
des-cfb1
des-cfb8
des-ecb
des-ede
des-ede-cbc
des-ede-cfb
des-ede-ofb
des-ede3
des-ede3-cbc
des-ede3-cfb
des-ede3-cfb1
des-ede3-cfb8
des-ede3-ofb
des-ofb
des3
desx
desx-cbc
rc2
rc2-40-cbc
rc2-64-cbc
rc2-cbc
rc2-cfb
rc2-ecb
rc2-ofb
rc4
rc4-40
rc4-hmac-md5
seed
seed-cbc
seed-cfb
seed-ecb
seed-ofb
aes-128-ccm
aes-128-gcm
aes-192-ccm
aes-192-gcm
aes-256-ccm
aes-256-gcm
blowfish
id-aes128-ccm
id-aes128-gcm
id-aes192-ccm
id-aes192-gcm
id-aes256-ccm
id-aes256-gcm
九、DH组
(一)DH
DH,即Diffie-Hellman算法。在Internet这类不安全网络上,通信双方通过DH算法最终得到相同的密钥(对称密钥)。
(二)DH原理
略。
(三)DH组
dh-group— 用于密钥建立的 Diffie-Hellman 组。
group1— 768 位模指数 (MODP) 算法。
group2— 1024 位 MODP 算法。
group5— 1536 位 MODP 算法。
group14— 2048 位 MODP 组。
group15— 3072 位 MODP 算法。
group16— 4096 位 MODP 算法。
group19— 256 位随机椭圆曲线组以素数(ECP 组)算法为模。
group20— 384 位随机 ECP 组算法。
group21— 521 位随机 ECP 组算法。
group24— 具有 256 位素数阶子组的 2048 位 MODP 组。
建议使用group14, group15, group16, group19, group20, 或group21代替group1, group2, 或group5。
声明:转载请注明来源!