21
IPSEC 中中中中中中中中 中中中中中 许许 许许

IPSEC 中密钥交换协议的 研究与实现

  • Upload
    elton

  • View
    240

  • Download
    3

Embed Size (px)

DESCRIPTION

IPSEC 中密钥交换协议的 研究与实现. 许晶. 研究背景和意义. 作为 IPSEC VPN 的重要技术之一的 IKE 协议 对 IPSEC VPN 的安全性有着非常重要的作用。但 IKE 协议包含了太多的可选项和灵活性 , 系统过于 复杂。可以说,安全最大的敌人是复杂性,系统 越复杂,存在的安全漏洞就可能越多,安全评估 就越困难。. 安全体系结构. ESP 协议. AH 协议. 认证算法. 加密算法. 解释域 DOI. 策略. 密钥管理. IPSEC 协议 — 体系结构. IKE 协议的组成. - PowerPoint PPT Presentation

Citation preview

Page 1: IPSEC 中密钥交换协议的    研究与实现

IPSEC 中密钥交换协议的 研究与实现

许晶许晶

Page 2: IPSEC 中密钥交换协议的    研究与实现

研究背景和意义 作为 IPSEC VPN 的重要技术之一的 IKE 协议对 IPSEC VPN 的安全性有着非常重要的作用。但IKE 协议包含了太多的可选项和灵活性 , 系统过于复杂。可以说,安全最大的敌人是复杂性,系统越复杂,存在的安全漏洞就可能越多,安全评估就越困难。

Page 3: IPSEC 中密钥交换协议的    研究与实现

IPSEC 协议—体系结构安全体系结构

ESP 协议

密钥管理 策略解释域 DOI

认证算法加密算法

AH 协议

Page 4: IPSEC 中密钥交换协议的    研究与实现

IKE 协议的组成 ISAKMP 协议:它是一种密钥交换框架,独立 于具体的密钥交换协议。它定义了消息交换的 体系结构。 OAKLEY 协议:提出了基于模式的机制在两个 IPSEC 对等体之间达成相同加密密钥。 SKEME 协议:描述了一种通用的密钥交换技 术。这种技术提供了基于公钥的身份认证和快 速密钥刷新。

Page 5: IPSEC 中密钥交换协议的    研究与实现

IKE 交换模式 IKE 定义了 4 种可能的交换模式:主模式、野蛮模 式、快速模式和新群模式。前两个模式协商 SA ,用于 第 1 阶段的交换;后两个用于第 2 阶段的交换过程。无 论是主模式还是野蛮模式都包含 4 种认证方式: 预共享密钥认证 (Pre_shared Key) ; 公钥加密认证 (Public Encryption) ; 改进的公钥加密认证 (Revised Public Encryption) ; 数字签名认证 (Public Signature) 。

Page 6: IPSEC 中密钥交换协议的    研究与实现

对 DOS 攻击的分析与改进CKY_I= MD5 (secret_i ,源 IP│ 目的 IP│ 源 UDP 端口号│目的 UDP 端口号│时间 i) CKY_I= SHA(secret_i ,源 IP│ 目的 IP│ 源 UDP 端口号│目的 UDP 端口号│时间 i)

Page 7: IPSEC 中密钥交换协议的    研究与实现

对 DOS 攻击的分析与改进

CKY_R= MD5 (secret_r ,源 IP│ 目的 IP│ 源 UDP 端口号│ 目的 UDP 端口号│时间 r │CKY_I)

CKY_R= MD5 (secret_r ,源 IP│ 目的 IP│ 时间 r │ CKY_I)

Page 8: IPSEC 中密钥交换协议的    研究与实现

IKE 模块的总体框架

消 息 服 务 器 模块查 询更 改

用户管理接口 命令 数据 系统管理模块 读 / 写 信息

配置文件应用层核心层

日志文件 IKE 验 证 模块WINDOWS API

IKE状态库

命令

SA 数据库

Page 9: IPSEC 中密钥交换协议的    研究与实现

系统管理模块 系统管理模块负责整个系统的运行环 境和监控。它为用户显示系统的运行状态、 提供状态设置服务,为 IKE 守护进程提供 运行需要的参数。

Page 10: IPSEC 中密钥交换协议的    研究与实现

消息服务器模块框架

Whack_handle ()

消息服务器Sever 监听 内核消息接口

网络接口队列

时钟事件队列

管理消息接口

Handle_timer_event()

Comm_handle ()

Start IKE ()

Page 11: IPSEC 中密钥交换协议的    研究与实现

管理消息处理子模块函数名 函数功能

Add _ connection 添加协商隧道 Delete _ connection 删除协商隧道 Initiate _ connection 启动一个隧道的协商 Terminate _ connection 终止一个隧道的协商Load _ pre-shared_secrets 装载加密和公钥信息

Page 12: IPSEC 中密钥交换协议的    研究与实现

内核消息处理子模块Device Control ( ) ;# define WAIT_SA_NEGOTIATION_REQUEST# define SA_NEGOTIATION_REQUUEST# define STOP_IKE_LISTEN_THREAD# define SA_DOWNLOAD_FOR_SPDENTRY

Page 13: IPSEC 中密钥交换协议的    研究与实现

网络消息处理子模块 网络消息处理模块负责与协商的对方进行协商信息的交换,它既充当服务器又充当客户端角色。当监听 UDP / 500 端口时它是服务器,作为协商的响应者。当它发出协商请求时,它作为协商的发起者充当客户端。监听和发送都使用 UDP/500 端口。

Page 14: IPSEC 中密钥交换协议的    研究与实现

时钟事件处理子模块事件类型 处理方法

EVENT_REINIT_SECRET 调用 init _secret( )重新协商本地密钥素材并重新注册该事件 EVENT_RETRANSMIT 重传消息 ,当达到最大重传次数时就放弃 ,每次重传的时间间隔加倍 EVENT_SA_REPLACE 调用 ipsecdoi _replace函数更新

SA EVENT_SA_EXPIRE 用协商的新 SA代替该过期的 SA EVENT_SA_DISCARD 删除 SA

Page 15: IPSEC 中密钥交换协议的    研究与实现

IKE 验证模块 根据 IKE 协议的 RFC 文档,每种模式的协商过程都有固定的消息条数且每条消息的内容都作明确的规定。有差别的就是在不同的认证方式下,载荷的加密 / 解密方式有所不同。这样按照协商过程中接收到的消息来划分协商状态,每种状态都有对应的状态迁移函数。当协商过程中下一条消息到来,就调用此时状态所对应的迁移函数进行分析处理,验证通过就跃迁到下一个状态。

Page 16: IPSEC 中密钥交换协议的    研究与实现

IKE 状态库 IKE 在协商时必须要构建一个协商隧道,而且在协商期间还需要记录每个 SA 的状态、协商的密钥、算法等参数。所以在设计中采用了两个重要的数据结构来表示协商遂道和SA 的状态,分别是 connection 和 state 。

Page 17: IPSEC 中密钥交换协议的    研究与实现

IKE 模块的整体实现思路

Pluto 进程,完成 SA 的动态协商

调用 调用 Whack (.e xe) Lib Whack (.dll)

Pluto (.exe) Lib Pluto (.dll) 调用 调用

Gmp Lib (.dll)

Lib Base (.dll)

Lib Des (.dll)

Public 目录下公用函数

Whack .exe

发命令

Page 18: IPSEC 中密钥交换协议的    研究与实现

主要函数启动模块: main.cpp 监听模块: sever.cpp Whack 命令控制模块: whack.cpp 应用层与内核通信模块: kernel.cpp

Page 19: IPSEC 中密钥交换协议的    研究与实现

测试结果 initiating Main Mode STATE_MAIN_I1 : initiate STATE_MAIN_I2 : sent MI2 , expecting MR2 STATE_MAIN_I3 : sent MI3 , expecting MR3 STATE_MAIN_I4 : ISAKMP SA established initiating Quick Mode PSK+ENCRYPT+TUNNEL STATE_QUICK_I1 : initiate TEST Quick_Int1 is succeed STATE_QUICK_I2 : sent QI2 , IPSEC SA established

Page 20: IPSEC 中密钥交换协议的    研究与实现

结论 本文对 IKE 的安全性进行了分析,重点阐述了IKE 模块的设计和实现。该系统能够为 IPSEC动态协商 SA ,且可以更新维护。改进后的协议相对于原来的 IKE 协议在抵御 DoS攻击和抵御中间人攻击上也都有所增强。由于时间比较短,对模块的实现考虑得还不是很全面,因此在具体的实现上还显得有些粗糙,特别是与其它模块的互连上还需要进一步调试和完善。

Page 21: IPSEC 中密钥交换协议的    研究与实现

谢谢大家 !