新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于uCLinux的嵌入式无线IPSec VPN网关

基于uCLinux的嵌入式无线IPSec VPN网关

——
作者:清华大学 刘宇洪,薛涛,邵贝贝 时间:2007-01-26 来源:《单片机与嵌入式系统应用》 收藏


引言

随着网络和无线通信技术的发展以及无线数据传输能力的提高,无线数据传输的应用领域不断扩展,如图1所示,用户的移动设备可以通过cdma/gprs公众无线网络直接访问internet,进而访问自己的内部结构,省去了自己组网的费用,由于用户都希望保障其数据的安全,所以采用vpn技术成为其必然选择。

本文引用地址:https://www.eepw.com.cn/article/21543.htm

1 ipsec简介

ipsec的目标是为ip提供互操作高质量的基于密码学的一整套安全服务,包括访问控制、无连接完整性、数据源验证、抗重放攻击、保密性和有限的流量保密,这些服务都在ip层提供,可以为ip和上层协议提供保护。

ipsec的体系结构在rfc2401中定义,它通过两个传输安全协议——头部认证(ah)和封装安全负载(esp)以及密钥管理的过程和相关协议来实现其目标,ah提供无连接完整性、数据源验证和可选的抗重发攻击服务,esp可以提供保密性、有限的流量保密、无连接一致性、数据源验证和抗重发攻击。ah和esp都是基于密钥分配和流量管理的访问控制的基础,ah和esp都有两种模式:传输模式和隧道模式。传输模式用于保护主机间通信;而隧道模式将ip隧道里,主要用于保护网关间通信。

ipsec中用户通道向ipsec提供自己的安全策略(sp)来控制ipsec的使用,包括对哪些数据进行保护,需要使用哪些安全服务,使用何种加密算法,ipsec中安全关联(sa)是一个基本概念,它是一个简单“连接”,使用ah或者esp为其负载提供安全服务,则需要两个和更多个sa,同时由于sa是单向的,因此如果是双向保密通信,则每个方向至少需要一个sa。ipsec中有两个与安全相关的数据库,安全策略数据库(spd)和安全关联数据库(sad),前者定义了如何处理所有流入和流出ip数据处理的策略,后者包含所有(有效)sa有关的参数。

ah/esp中所使用的密钥的分配和sa管理都依赖于一组独立机制,包括人工和自动两种方式,ipsec定义了ike协议用于自动方式下的密钥分配和sa管理,ike中密钥分配和sa管理的过程分成两个阶段,第一阶段是密钥协商双方建立一个相互信任的、保密的安全通道,用户保护第二阶段密钥协商过程,第二阶段完成实际用于ipsec sa的协商。

ipsec的数据处理模型如图2所示,对流入/流出的数据首先确定其安全策略,如果需要安全服务,则要找到其相应的安全关联,根据安全关联,提供的参数进行ah/esp处理后完成流入/流出。

2 系统功能

本系统的主要功能是支持cdma和gprs两种方式接入internet,既可作为vpn服务器,又可作为vpn客户端。ipsec的密钥交换支持共享密钥方式和基于x.509的公开密钥方式。

3 系统的硬件实现

系统硬件构成如图3所示,无线接口采用的是wavecom cdma/gprs模块,基板采用的是freescale coldfire 5272。

4 系统的软件实现

linux的2.6内核中加入了对ipsec的支持,本系统采用的是基于linux2.6内核的ipsec-tools,整个系统中ipsec的相关软件结构如图4所示,linux2.6内核在其网络协议栈中提供对ah和esp支持,同时包括spd的实现和sad的实现,ipsec-tools包括setkey和racoon两个应用程序。setkey实现ipsec中spd管理和sad的人工管理,它需要使用linux内核支持ipsec用户管理接口。racoon是ipsec-tools中ike的实现,它需要内核支持pf_keyv2的接口,同时为了支持基于x.509证书的公开密钥身份验证方式,racoon需要使用openssl提供的libcryto加密库。ah/esp所使用的加密算法需要内核加密算法支持。

4.1 linux内核

在www.kernel.org下载并安装linux2.6.12内核,在www.uclinux.org下载其uclinux补丁。打上补丁后,通过make menuconfig进入linux的内核配置界面,选定如下所有配置:

4.2 openssl(libcrypto.a)

安装openssl 0.9.7 e源代码后,进入安装目录,修改其configure文件使用m68k-elf-gcc作为编译器。运行configure linux-m68k完成配置后,编译生成libcrypto.a。

4.3 ipsec-tools

依照uclinux中任何加入新的用户程序的文档,在uclinux的/user目录中加入ipsec-tools0.5.2软件包。进入ipsec-tools的安装目录,并在该目录下加入一个如下makefile(在这个makefile中需要指定内核头文件和openssl源代码的安装目录):

all:build $(make)-c build

编译生成setkey和racoon两个应用程序

5 ipsec-tools的使用

本系统的ipsec同时支持传输模式和隧道模式。作为vpn网关时只使用隧道模式。图5是两个ipsec网关间通信模型。192.168.1.100和192.168.2.100分别是两个网关外部接口的ip地址,它们分别保护172.16.1.0/24和172.16.2.0/24两个内部子网,下面以图5中外部ip为192.168.0.1的网关为例,介绍ipsec-tools中隧道模式下安全策略和密钥管理的方法。

5.1 安全策略

ipsec-tools中安全策略的管理由setkey完成。在setkey的配置文件setkey.conf中需要加入流入(in)、流出(out)、转发(fwd)三条安全策略规则。

5.2 密钥和sa的管理

(1)人工方式

setkey.conf中sa规则定义ipsev密钥和sa人工方式的管理。

(2)自动方式

自动方式的管理由racoon完成,racoon支持多种验证方式,包括预共享密钥和x.509证书方式,racoon的配置文件racoon.conf主要包括remote和sainfo两大部分,分别对应于ike交换的第一阶段和第二阶段,remote部分指定ike交换第一阶段的身份验证方式和加密、验证算法等参数,sainfo部分指定第二阶段的加密和验证算法。

预共享密钥方式下用户的预共享密钥保存在文件中,此时racoon.conf的配置如下(其中指定了预共享密钥所存放的文件):

在x.509证书方式下,racoon.conf的配置与共享密钥方式的基本相同,其指定了证书所在目录,自己的x.509的证书、自己的证书密钥和ca的证书。有关racoon中证书的生成请参照racoon和openssl的使用手册。

5.3 运行

在无线网关接入internet后,依次运行setkey和racoon。

结语

无线数据传输和ipsec的结合使得无线数据传输的应用领域进一步扩展,目前本系统已广泛应用于金融、保险、电力、监控、交通、气象等行业,在移动网络许可的条件下,任何采用以太网或串口的设备,如pc机、工控机、atm机、pos机、视频服务等,都可以方便、安全地通过本系统连接到internet上。

pos机相关文章:pos机原理




关键词:

评论


相关推荐

技术专区

关闭