密钥交换协议IKEv2的一种实现方案第23卷第6期2021年12月郑州轻工业学院(自然科学版)JOURNALOFZHENGZHOUUNIVERSITYOFLIGHTINDUSTRY(NaturalScience)V01.23No.6Dec.20o8文章编号:1004—1478(2021)06—0078—03密钥交换协议IKEv2的一种实现方案刘骥宇,季超,母军臣(1.商丘师范学院软件学院,河南商丘476000;2.河南大学计算中心,河南开封475001;3.开封大学软件学院,河南开封475000)摘要:基于新一版密钥交换协议IKEv2的新特性,提出了一种Linux操作系统下IKEv2的实现方案.设计和开发中充分借鉴了面向对象的程序设计思想,将整个系统进行了合理的分割与抽象,提高了程序代码的可读性,可维护性,可复用性和可扩展性.关键词:IPsec;IKEv2协议;密钥交换中图分类号:TP393.08文献标志码:AAnimplementationschemeofkeyexchangeprotcolIKEv2LIUJi.yu,JIChao,MUJun.chen(1.S~wareAcademy,ShangqiuTeachersCollege,Shangqiu476000,china;2.CompCenter,HenanUniv.,Kaireng475001,China;3.SoftwareAcademy,KangUniv.,Kang475000,China)Abstract:BasedonthenewcharacteristicsofIKEv2ofthenewversion,animplementationapproachofIKEv2underLinuxwasproposed.Inviewoffacingtheclient,thesystemwasdividedandabstractedSOastorealizethereadability,maintenance,productivityandsustainabilityoftheproceducre.Keywords:IPsec;IKEv2protocol;keyexchange0引言IKE的用途是在IPSec通信双方之间,自动建立起共享平安参数及验证过的密钥,即建立平安关联关系0J.但是IKE第l版本是一种混合型协议,其复杂性一直受到业界广泛的批评.另外,它还存在易受攻击,功能冗余等缺乏.所以IETF一直在对现有版本IKE的不合理局部积极地征集修改意见.IPSec工作组于2005年l0月推出了最新版本的IKE协议——IKEv2.我国对IKEv2的研究尚处于起步阶段,还没有完善的实现方案出现.本文将在对IKEv2协议深入理解的根底上提出一个Linux操作系统下的实现方案.1IKEv2的新特性IKEv2对第1版本的主要改良及其新特性如下:1)IKEvl协议是由IPseeDOIE,ISAKMPI和收稿日期:2007一l2一O8基金工程:河南省自然科学基金工程(0511011400);河南省教育厅自然科学基金工程(2006520023)作者简介:刘骥宇(1978一),男,河南省商丘市人,河南大学硕士研究生,主要研究方向为计算机网络与信息平安第6期刘骥宇等:密钥交换协议IKEv2的一种实现方案?79?IKE3个协议组成的一种混合型协议,IKEv2将它们整合在了一个文档中.2)IKEv2对IKEvl的重要改进之一是精简了协商的流程.3)载荷方面也做了相应的精简和重组.在IKEv2中,目的端可以选择初始端所提议的TS的一个非空子集.IKEvl中,提案载荷,转换载荷,属性载荷的内部关系复杂,不利于工程的实现.IKEv2那么取消了这3种载荷,使其作为平安联盟载荷的不同子结构结合在一起.IKEv2通过设置新的AUTH载荷,使各种认证机制只影响这一载荷,从而使交换信息得到了统一,使整个协议更简洁,效率更高.IKEv2还设置了独立的加密载荷.载荷方面的变化还有很多:ISAKMP头中用通信双方的SPI取代Cookie,通过在每个载荷头部增加一个鉴定标志来更好地向前兼容,去掉了解释域,形式字段和Commit,AuthenticationOnly标志位,取消签名载荷和杂凑载荷,添加配置载荷和扩展认证载荷等.4)为了增强平安性,IKEv2采用了不记录状态的Cookie_6J.另外,IKEv2参加了扩展认证来重用遗传认证,详见RFC3748.在采用其他认证方式时,通信双方对自己的消息中从SPI开始的局部和对方的Nonce进行签名,从而阻止反射攻击.消息头的改变(例如增加版本标志和ID)也增加了其他攻击的难度.这些修改使协议能够适用于更多场合中动态sA的创立与维护,功能更加强大.2IKEv2的实现方案根据协议的特点,笔者在Linux操作系统上采用C++实现了一个IKEv2系统.2.1系统设计系统的总体结构图如图1所示.其中,IKEv2初始化模块的主要功能是设置IKE初始化参数,加载平安策略.IKEv2管理模块负责处理用户的命令并调用相应的处理函数,与协商处理模块进行交互.协商处理模块是核心模块,主要负责监听和处理网络和内核消息,协商SA.加密模块实现了加密算法,完整性检验算法,伪随机函数和Diffie—Hellman组.超时处理模块那么负责处理超时事件.处...