应用背景介绍
在一个大系统中往往需要很多网络终端或者一些网络设备,这些设备互通消息一般走的是网络ip协议,但是协议栈提供的ip协议并不能保证信息交互的安全性,第三方可以监听通信链路上的报文进行窃听或者篡改操作来攻击系统,为了解决这个问题引入了ipsec。
ipsec实现
ipsec协议只是一种通用标准,大家都可以拿去做一些修改来适用当前的应用场景。但是基础的东西不能变,比如信息交换阶段、计算协商密钥阶段等。
信息交换
发起方将自己的id、设备证书、临时公钥等信息发给对方,对方收到后也将自己的id、设备证书以及计算后的认证码等信息返回,并计算得到协商密钥,发起方收到信息后也计算协商密钥,至此双方信息交换完毕。
计算协商密钥
通过Ecc椭圆曲线算法计算出双端通信密钥,一般还需要结合端设备自身的一个派生密钥进行抑或操作生成最终的业务通信密钥,同时协商过程中交互的报文还需要防篡改,一般通过报尾添加认证码来保证。密码计算过程可用专业密码芯片来计算或用fpga来增加性能。