0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于基于GPRS/CDMA和CSP实现移动IPSec VPN安全接入终端系统的设计

电子设计 来源:计算机安全 作者:聂旻,谭成翔,汪海 2021-03-29 10:28 次阅读

1 引言

由于移动公网的广泛发展和手机PDA 的大力普及,移动终端作为固网上业务服务器的访问接入终端也变得越来越常见。然而,移动终端通过基于GPRS/CDMA的移动公网接入业务服务器的过程存在着较大的安全风险。在没有执行任何安全保护措施的情况下,移动终端就与业务服务器进行数据传输,很容易导致双方传输的数据被别有用心的人截取或者篡改,如果这些数据涉及到商业敏感信息,这将对双方的利益带来巨大的损失。并且,移动终端虽然体积小巧,方便携带,也容易丢失和被盗,再加上设备的非授权使用,授权用户的不合理或者恶意的行为,这些全都会带来安全威胁。因而,寻找给移动终端和业务服务器的访问过程增加安全性的解决方案是人们追求的目标。IPSec VPN技术是目前普遍使用的方法,先在公共网络上建立一个私有隧道,然后才在这个隧道上进行双方的数据传输。这样,安全性确实会得到一定的提高,但是如果没有智能卡的帮助,安全性还是会大打折扣。因此,针对这种情况,设计了一个基于智能卡的移动IPSec VPN安全接入终端系统,本文重点介绍该系统中CSP的开发。

2 相关背景

2.1智能卡与PC/SC规范

智能卡是一张内含嵌入式集成电路芯片的信用卡般大小的塑料卡,具有储存信息量大,数据保密性好,抗干扰能力强,储存可靠,读写设备简单,使用灵活,操作速度快,脱机工作能力强,易于携带等特点。本系统所使用的智能卡是一张特制的内含有交换密钥对,签名密钥对和证书用以提供加解密、认证等服务的电子卡。

PC/SC规范是一套为集成电路卡(ICC)与个人计算机系统设计进行交互的规范,能够让智能卡方便地访问WindoW平台。其主要优点就是让应用程序不必为了与智能卡通信而去了解智能卡读卡器的细节,应用程序通过PC/SC规范和智能卡读卡器通信,后者再通过ISO7816与智能卡进行通信来获取智能卡提供的服务,其传输的包结构是TPDU。

2.2 Crypto API体系结构与CSP

Crypto API是微软提供的一套公共接口,包含了一系列的函数,为应用程序提供加解密、数字签名、哈希等安全服务,而应用程序不必关心其具体实现。不同的供应商可以开发独立的加密模块,这些模块成为加密服务提供者(Cryptographic Service Provider CSP),完成密钥生成/交换、加解密、数字签名、认证等服务的真正模块。微软默认的CSP是RSA Based Provider,使用RSA公司的加密算法。一个系统中可以加载多个CSP模块,它们相互独立。应用程序可以使用任意一个CSP模块,而不必关心它的具体实现,每个CSP都对Crypto API进行不同的实现。

Crypto API的体系结构如图1所示。

基于基于GPRS/CDMA和CSP实现移动IPSec VPN安全接入终端系统的设计

从图1可以看出,它分为应用层:系统层和加密服务提供层。处于应用层的应用程序通过Crypto API来调用CSP模块提供的各种服务。

3 软硬件结合的CSP开发

本文介绍的移动安全接入终端系统在WINCE下开发,使用WIND0w MOBILE 5.0 SDK。系统分两层,彼此间相互独立,上层进行拨号,下层给上层提供CSP支撑,上下两层通过系统来整合。CSP可以基于软件实现,也可以基于硬件实现,还可以基于软硬件结合实现。基于软件实现的C SP,其使用的密钥对及算法与操作系统有关,安全性不高;而基于硬件实现的CSP虽然安全性较高,但是费用昂贵;而基于软硬件实现的CSP, 由于将密钥技术对生成和加解密操作与操作系统分离,所以其密钥的管理和加解密比基于软件的CSP安全提高了很多,而与安全性方面没有多少关系的部分使用软件实现,费用比基于硬件实现的CSP降低了许多,可以说是一种比较折中的选择。本系统使用的CSP采用软硬件结合的方案, 目标是提供一个基于SDIO智能卡的CSP。哈希、解密等功能是不需要硬件实现的, 因此这些部分可以用软件实现。而WINCE系统中包含了这部分的软实现,所以在设计中可以利用现有资源,只在需要硬实现的部分才对卡进行操作,这样既提高了性能又不影响安全性。

在对卡的调用中, 命令和响应报文要符合IS07816-4标准,因此需要一个将数据根据智能卡指令组装成智能卡可识别的APDU的程序,由此程序负责数据格式的转换。

根据以上设计原理的分析,可得图2所示的CSP系统结构图。

将CSP的实现分为3个模块:CSP主程序模块、CSP图形界面模块、CSP智能卡访问模块

(1)CSP主程序模块

主程序模块是CSP的核心模块,实现CSP中的业务逻辑并以Crypto SPI标准接口形式提供。主程序模块通过调用图形界面模块的相应图形界面实现与用户的交互(在CRYPT—SLIENT标志未设置时)。主程序模块对智能卡的访问及数据传送都是通过智能卡访问模块来实现的。

(2)CSP图形界面模块

图形界面模块负责CSP与用户的交互实现。主要有卡片初始化时的PIN码设置界面和程序运行中提示用户输入PIN码以验证其合法性的界面。

(3)CSP智能卡访问模块

智能卡访问模块是CSP使用智能卡上服务的实现模块。它负责与智能卡建立连接,数据传输,释放连接等。它接收主程序模块的智能卡访问请求,并根据请求组织相应的APDU发送到智能卡,以及从卡上获取返回的结果,最终将结果数据提交给主程序模块。

将CSP划分成3个模块,可以降低程序各个模块之间的耦合度,实现起来比较灵活。如果需要更改程序界面就不需要去改变CSP主程序模块。同样,当使用另外一种智能卡时,只需要替换相应的智能卡实现模块,而不需要去改变主程序模块和程序界面,这样就可以很方便地将第三方的智能卡实现模块加载进来,实现对多智能卡的支持。

CSP主程序模块以DLL形式提供,是实现CSP的关键,其中的各个类都有具体的功能职责,并且通过组合和关联关系形成一定的层次关系。此外在CSP中,还有其他的辅助函数定义,如块加密时的编码与解码函数等。其类设计如下:

(1)CContext

CContext类对应了一个用户上下文对象,在逻辑上相当于密钥库。它通过组合关系包括了CSP中的其他类对象,并通过这些类对象来进行相应的操作。C C ontext作为用户上下文对象,是提供Crypto SPI中23个接口函数实现的对象。

(2)C Container

CContainer类对应了一个密钥容器,一个用户上下文往往包含多个密钥容器。C Container对象中会缓存其包括的证书信息,这里缓存交换密钥对证书和签名密钥对证书两个证书。

(3)CCard

CCard类代表了扩展卡类型。在这个类中封装了所有对卡的安全操作,包括验证、加解密、存储管理等。一个CCard对象会缓存对应扩展卡上的所有密钥容器对象,这样要访问密钥容器的相关信息就会变得方便、快捷。

(4)CRSAProvider

CRSAProvider类是用于调用系统提供的CSP的。它负责获取系统提供CSP的句柄,利用此句柄调用相关的功能实现以及释放得到的句柄。

(5)CPPManager

CPPManager类也是一个辅助控制类,它的定义只是为了使得程序更加清晰。它的功能是根据CPGetProvParam中参数的不同值取得CSP的相关信息。

(6)CHandleTable

CHandleTable类是一个辅助存储类,它用于存储CSP中密钥容器等对象的句柄。它采用Hash表结构来存储对象句柄,并且提供了相应的增加、删除、读取等功能。CSP编写测试完成后,必须要让微软对其CSPDLL进行签名,这样该C SP才能装进操作系统内。这步比较简单, 只需要将其DLL与一个资源描述文件作为附件发往cspsign@microsoft.com就可以了,签名周期一般为3天。完成签名后,CSP就可以安装到系统中工作了。在Windows Mobile 5.0系统中,需在注册表中注册该CSP,CSP安装完成,以后可以通过Crypto API接口调用CSP提供的安全服务了。

4 结束语

本文不仅对微软加密体系进行了详细的分析,而且结合移动安全终端系统,对智能卡上的CSP的开发进行了充分的介绍和分析。CSP通过标准的Crypto SPI接口嵌入到微软加密体系中,使用户可以通过Crypto API接口来使用智能卡上所提供的高安全性的加密服务,来满足日益增加的网络安全需求。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84534
  • 服务器
    +关注

    关注

    12

    文章

    8116

    浏览量

    82518
  • GPRS
    +关注

    关注

    21

    文章

    980

    浏览量

    128623
收藏 人收藏

    评论

    相关推荐

    GPS/GPRS定位定向导航系统车载终端应用设计与实现

    GPS_GPRS定位定向导航系统车载终端应用设计与实现一、引言     目前,随着人民生活水平的提高,交通工具越来越多,
    发表于 09-26 17:00

    怎么实现GPS_GPRS定位定向导航系统车载终端应用设计?

    本文介绍了作者设计的一种车载监控系统(以下简称为车载系统),并重点介绍了车载系统终端的设计与实现。该系统
    发表于 05-18 06:57

    基于防火墙钩子的IPSec VPN研究与实现

    针对采用网络驱动接口规范(NDIS)实现IPSec VPN 系统过程中存在的问题,提出一种基于防火墙钩子的IPSec
    发表于 03-24 08:53 23次下载

    基于Linux的XFRM框架下IPSec VPN的研究

    针对现有 IPSec VPN 系统在效率和可靠性方面存在的问题,提出并改进了一种基于Linux最新内核平台的 IPSec VPN网关
    发表于 04-13 09:31 31次下载

    基于IPSecVPN网关设计

    根据IPSec标准, 重点研究安全策略、高性能内核实现、高性能加密算法和高性能密钥管理机制, 研制一个能提供具有较强的互操作能力、使用方便和容易进行升级的VPN网关设备。设计
    发表于 04-24 10:47 11次下载

    Windows平台中IPSec VPN的设计与实现

    介绍了在Windows 平台下实现IPSec VPN 的方法。首先介绍了基于NDIS 中间层技术,接下来介绍了使用NDIS 中间层技术实现IPSec
    发表于 06-17 08:04 26次下载

    IPSecCDMA2000分组数据服务节点中的应用

    在介绍IPSec 协议基本原理的基础上,分析了CDMA2000 系统在引入分组数据业务后的安全需求,详细描述了在CDMA2000 分组数据服
    发表于 08-11 09:46 26次下载

    基于IPSec下的嵌入式VPN 的研究

    基于IPSecVPN 是目前应用最广泛、最有发展前途的一种网络安全解决方案,结合嵌入式VPN 的理论和实际,提出IPSec 结合S3C4
    发表于 08-18 10:24 13次下载

    基于三层隧道技术的IPSec-VPN技术

    本文介绍了虚拟专用网技术及其基于网络的VPN 所具有的优点,分析了三层隧道协议的优势,三层隧道的IPSec安全技术,提供了VPN 解决方案,给出了
    发表于 08-19 10:22 20次下载

    帧中继环境下IPSec VPN的配置实现

    介绍了VPN 的基本概念和应用,并对Ipsec 协议作了一个简要的介绍,分析了IPSec协议的安全特点。最后通过一个实例介绍了帧中继广域网环境下端-端的配置
    发表于 08-29 10:41 8次下载

    基于L2TP/IPSEC安全隧道技术方案

    分析L2rI’P协议实现VPN时存在的安全问题,提出一种将L2TP协议和IPSec协议相结合,利用IPsec为L2rI’P协议提供保护的
    发表于 01-08 08:25 16次下载

    基于TrustZone的移动终端云服务安全接入方案

    可信云架构为云计算用户提供了安全可信的云服务执行环境,保护了用户私有数据的计算与存储安全.然而在移动云计算高速发展的今天,仍然没有移动终端接入
    发表于 01-13 09:59 0次下载
    基于TrustZone的<b class='flag-5'>移动</b><b class='flag-5'>终端</b>云服务<b class='flag-5'>安全</b><b class='flag-5'>接入</b>方案

    一文道尽SSL VPNIPSEC VPN 的区别

    Ipsec 一般用于“网到网”的连接方式。比如分公司内的主机和总公司内的主机有通信需求,这时候可以用ipsec vpn在两个公司之间建立隧道。把两个站点的本地要通过vpn进行互访的网段
    的头像 发表于 03-31 09:23 6023次阅读

    Juniper防火墙IPSec VPN的配置

    Juniper 所有系列防火墙(除部分早期型号外)都支持 IPSec VPN,其配置方式有多种,包括:基于策略的 VPN、基于路由的 VPN、集中星形
    的头像 发表于 04-03 11:31 2811次阅读

    如何通过使用Docker来快速搭建IPsec VPN Serve?

    VPN技术在保障网络通信安全和隐私上发挥着重要作用。IPsec VPN是其中一种常用的VPN模式。
    发表于 05-19 10:58 1w次阅读
    如何通过使用Docker来快速搭建<b class='flag-5'>IPsec</b> <b class='flag-5'>VPN</b> Serve?