[ipsec][crypto] IKEv2的协商交互分析】的更多相关文章

一: 无论协商了什么样的加密算法.DH都交换一块长度为32byte的内存,作为key. IKE和esp的key,分别基于这块内存生成. 二: 当esp的算法协商没有指定dh group时,rekey将不会交换新的秘钥.而一直使用IKE sa的秘钥. 这个时候,每次child rekey,只交换新的spi和nonce. 这个时候,不是PFS的. 三: IKEv2在协商阶段的两组信息交换, 第一组包含:KEY EXCHANGE,IKE sa的算法协商. 第二组包含:AUTH身份认证,IPSEC sa…
前言 接上篇:[ipsec][crypto] 有点不同的数字证书到底是什么 本篇内容主要是上一篇内容的延伸.抽象的从概念上理解了证书是什么之后,我们接下来 从实践的角度出发,以IKEv2和TLS两个协议为例子,熟悉一下数字证书认证在协议上的实现. author: classic_tong, date:20190914 一 IKE 我是利用strongswan来搭建的这样的实验环境的.协商双方配置为使用证书的方式. 为此我自签名了一个根证书,并为IKE双方各自签名了其证书. 生成自签名的证书的方法…
IKEv2协议协商流程: (IKE-SA-INIT 交换)第二包 文章目录 IKEv2协议协商流程: (IKE-SA-INIT 交换)第二包 1. IKEv2 协商总体框架 2. 第二包流程图 3. openswan源码学习 3.1 ikev2parent_inI1outR1() 3.2 ikev2parent_inI1outR1_tail() 3.3 ikev2_parse_parent_sa_body() 4. 小结 4.1 SA载荷中加密套件算法选择 4.2 密钥交换KE和随机负载Nonc…
相关学习资料 http://www.rfc-editor.org/rfc/rfc2131.txt http://baike.baidu.com/view/7992.htm?fromtitle=DHCP协议&fromid=1989741&type=syn http://blog.chinaunix.net/uid-20530497-id-2203830.html http://www.datacentersky.com/dhcp-message-format.html http://www.…
前言 前言是在写完了全文之后回头补的.本意是想完全抽象的把证书的抽象逻辑意义表达出来,因为你能找到的大部分 资料都深陷在技术细节与行业规范里.只有其型没有其理,没有什么比理解一个事物的内在合理性更有乐趣的了. 所以忍不住表达的欲望想把他们写出来. 无奈改了几版,始终写的混乱.所以,每一个能读完的人,我都对你的支持表示感谢,如果有再深入讨论的 意愿,请和我联系. 很遗憾理解了九成,表达出来却只剩下五成.原谅我表达欠佳. [防扒乱入]  author: class_tong  date: 20190…
1 简述 storngswan的配置里用一种固定格式的字符串设置了用于协商的预定义算法.在包协商过程中strongswan将字符串转换为固定的枚举值封在数据包里用于传输. 协商成功之后,这组被协商选中的枚举值会通过netlink接口以xfrm定义好的字符串形式,传递给内核,内核再将字符串转换成pfkey定义的枚举值,最终进行加密设置. DPDK的话,也有其统一的一组枚举值的抽象.在调用不同的cryptodev pmd时,会想这组值转换为对应的值或操作,如转变成openssl对应的API调用. 见…
文章目录 1. IKEv2 协商总体框架 2. 第一包流程图 3. openswan源码学习 3.1 ikev2parent_outI1() 3.2 ikev2parent_outI1_withstate() 3.3 ikev2_parent_outI1_common() 4. 注意事项 4.1 关于此报文中涉及的对IKEv2引入的"新特性"说明 4.2 在IKEv1与IKEv2在SA载荷结构上的不同之处: 1. IKEv2 协商总体框架 IKEv1协议建立一对IPSec SA,使用主…
Androidapi.JNIBridge负责和JNI交互.,既然要交互,那么首先就是需要获得JNI的运行环境,Android本身内置的就有一个Java(Dalvik)虚拟机.所以这个第一步就肯定是要这个虚拟机和我们当前的运行线程环境关联.这时候Androidapi.JNIBridge中的TJNIResolver就出场了.GetJNIEnv这个函数就是, class function TJNIResolver.GetJNIEnv: PJNIEnv; var PActivity: PANativeA…
IV IV是指初始化向量. 在我们当前讨论的场景中: 在IPSec ESP使用AES-GCM加密 IV有两个含义: 1. ESP报文封装时的IV,RFC中称为 AES-GCM IV +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Initialization Vector | | ( octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+…
AAD 全称:Additianal Authenticated Data 翻译成中文就是附加的验证数据. 在理解AAD之前,需要理解什么是AEAD: AEAD,简单的来说就是一份数据在完成加密的时候同时完成了消息认证,或者反过来. 见:[crypto] AEAD是啥 也就是说,加密用的数据和消息认证用的数据是一样的. 好,那么下面引出一个场景,就是加密还是同样的加密,但是消息认证需要给丰富的信息才能完成.比如序号. 这个时候多出来的那个需要就叫做附加验证数据,即AAD. 那么这段数据的长度就是A…