一种基于公钥技术的3G安全体系结构及其实现

资源类型:pdf 资源大小:282.00KB 文档分类:工业技术 上传者:张莹

相关文档

批量下载下列文档

文档信息

【作者】 张方舟  王东安  叶润国  徐浩  宋成 

【关键词】认证和密钥协商 3G 无线公钥基础设施 安全套接字层 安全体系 

【出版日期】2005-04-11

【摘要】通过分析3G安全体系结构和移动通信系统的安全威胁,得出了3G体系结构存在的安全隐患。针对这些安全隐患,结合WPKI的相应特点,该文提出了一种基于SSL握手协议的用户与服务网络的AKA机制,即在3G体系结构中部署WPKI体系,使得无线终端侧实现了私密性、数据完整性等保护功能。最后模拟实现了一套完整的鉴权认证过程,实验结果表明:该机制能够很好地完成无线终端侧和服务网络之间双方的身份认证、加密传输、完整性保护等在3G安全体系中非常必要的功能。

【刊名】计算机工程与应用

全文阅读

1前言移动通信中的安全问题正受到越来越多的关注,人们在得到使用移动通信的便利的同时,对通信中的信息安全也提出了更高的要求。在模拟蜂窝移动通信中基本上没有采用什么安全技术,对用户的信息是以明文传送[1]。GSM系统与第一代的模拟移动通信系统相比,在无线链路安全方面,进行了很多的改进,通过加密方式传递用户信息,对移动用户采用了“询问-响应”认证协议进行认证[2]。尽管2G系统在安全性方面有了大的进步,但它仍然存在许多不足。3G移动通信系统中的安全技术是在GSM的安全基础上建立起来的,它克服了GSM中的安全问题,并增加了新的安全功能。对于上面提到的GSM网络中的安全缺陷,在3G安全体系中作了改进。比如:增加了用户对网络进行身份认证的机制;数据传输加密密钥由64位增加到128位,而且用户可以与网络协商加密算法;增加了数据完整性保护机制;增加了安全操作对用户的可见性等。但是3G系统也不是完美无缺的,它也存在一些安全隐患。该文结构如下:第二部分首先分析无线公钥基础设施(WPKI,WirelessPKI)[3]的数字证书在PKI基础上对于无线应用环境的改进,然后介绍了数字证书的申请和下载的两种方案,最后给出了WPKI在无线终端侧验证证书有效期的两种方法;第三部分首先分析了3G安全体系中存在的问题,并结合WP-KI的特性,给出了WPKI组件在3G安全体系结构下的部署方案;第四部分讨论原型系统的实验/开发环境,并给出了详细的程序设计流程;第五部分总结该文和说明进一步的工作。2WPKI介绍WPKI相对于Internet环境中的用户(如PC)而言,无线终端具有不同的特性。无线设备计算环境受到以下因素的制约:较小功率的CPU、较小的内存、受限的功率消耗、功能较弱的输入设备等。所以,在无线终端需要对PKI数字证书的存储以及验证过程进行相应的修改,从而适应无线设备的弱点。WPKI是通过对传统的PKI[6]进行优化,扩展后应用到无线环境中去的。WPKI与PKI一样都是通过管理密钥和证书来执行移动电子商务策略。WPKI主要解决管理电子商务的策略问题,并为无线应用环境提供安全服务。WPKI的优化主要包括对证书格式进行简化,从而减少存储容量。另外WPKI采用椭圆曲线密码算法(ECC,EllipticCurveCryptography)[3]而不是传统的RSA算法,这可以大大提高运算效率,并在相同的安全强度下减少密钥的长度。由于WPKI证书格式是PKIX证书的子集,所以可以在标准PKI中保持互操作性。2.1WPKI数字证书为了适应无线设备的特点,现在使用的PKI数字证书需要改进为更加紧凑的证书格式。为了减小证书的存储空间,WPK提出两种方案[3]:方案一,为服务器端使用的证书定义了一个新的证书格式———WTLS证书。与标准的X.509证书相比,减少一些字段CertificateSerialnumber、IssuerUniqueID等。这种证书格式在很大程度上缩小了证书存储空间。方案二,使用ECC算法,缩短密钥长度,从而达到缩减证书尺寸的目的。ECC算法的数论基础是有限域上的椭圆曲线离散对数问题,现在还没有针对这个难题的亚指数时间算法,因此在当今公钥密码体制中,ECC算法具有每比特最高的安全强度。ECC算法使用较短的密钥就可以达到和RSA算法相同的加密强度,比如使用密钥长度为160bit的ECC算法与使用密钥长度为1024bit的RSA算法相比较,具有相同的安全性。2.2数字证书的申请和下载证书申请的过程如下[3]:(1)密码生成:证书申请者生成公钥和私钥密码对。(2)匹配策略信息:不同的CA机构会要求申请者提供不同的信息以证实其身份,如机构名称、通讯地址等,申请者必须按CA机构的要求提供这些信息。(3)数据传递:证书申请者把其生成的公钥和身份验证信息传送给CA机构,申请者在传送前经常会利用CA证书对数据进行加密。(4)身份验证和证书生成:CA机构证实申请者提交的信息如果申请者提交的信息能满足其要求,则为申请者生成数字证书。(5)证书传递和加载:CA机构把证书传送给申请者,申请者在收到证书后把其安装到自己的计算机里。为了适应无线终端较弱的处理能力,数字证书的下载有两种方案可行,一种是在USIM卡上实现无线终端的加密模块另一种方案是用K-Java方式实现加密模块。这两种方案,一种是用硬件实现,另一种是用软件实现[3]:方案一,将用户证书及私钥存放在USIM卡中。申请下载用户证书的方式可以有三种:(1)离线申请离线下载:离线申请就是用户到RA受理点录入用户信息,申请证书。一般用户在第一次开通服务的时候可以采用这种离线方式,发行USIM卡的时候把用户证书一并发布,直接通过相应的设备,把用户的证书写入USIM卡,然后再放到用户的无线终端上使用。(2)离线申请在线下载:用户到RA受理点录入用户信息申请证书。但是证书下载是调用USIM卡的相关接口,签发PKCS#10的证书申请书,然后连同用户申请证书获得的识别码和授权码一并提交。(3)在线申请在线下载:在线申请就是用户直接在无线终端录入用户信息,进行证书的申请。证书下载是调用USIM卡的相关接口,签发PKCS#10的证书申请书,然后连同用户申请证书获得的识别码和授权码一并提交。方案二:基于K-Java的证书申请和下载。证书申请和下载的方式有两种:(1)传统申请证书:传统的证书申请模式,通过对RA提交证书申请,获得证书的识别码和授权码。然后在无线终端输入识别码和授权码,通过连接证书下载门户,进行证书下载。通过这种方式下载证书,可以通过RA系统对证书进行挂起、恢复、注销、更新等操作。(2)通过手机直接申请:直接通过无线终端向证书下载门户提交证书申请,证书下载门户为用户申请证书,然后下载证书,最终将证书返回到无线终端,这种方式简化了用户的操作,但是增加了CA的负担。另外,采用这种方式,用户不能在RA系统进行证书的注销等操作。2.3无线/移动终端验证证书在基于PKI的公钥加密体系中,客户端计算机最大的负荷在于验证对方的证书。需要验证的内容对于无线终端而言是很大的运算量。为了减小无线终端的计算量,WPKI提出了两种在无线终端验证证书有效期的方法:方法一,使用短时效证书SLC(ShortLivedCertificate)。SLC把证书有效期做成与基本的CRL更新周期类似,这样无线终端不需要进行对证书的CRL验证的工作。虽然一般的证书有效期为一年,但针对有效期低于或等于24小时的证书可以假设不需要对CRL进行额外的验证,这样极大地减少了无线终端的运算量,但是CA需要更高频率地向用户发布新的证书,增加了许多负担。方法二,使用实时验证证书状态的OCSP(OnlineCertifi-cateStatusProtocol)。因为无线终端进行证书验证比较困难,所以可以向第三方(OCSP服务器)申请证书验证,这样客户端只需接收其结果。无线终端把接收到的服务网络的证书发送给OCSP服务器,并查询它的有效性。OCSP服务器完成相应的证书验证过程以后,向无线终端发送证书的有效信息。33G安全体系问题分析及基于WPKI组件的3G安全解决方案3.13G安全体系漏洞的分析通过对3G安全体系的研究,以及对移动通信系统的安全威胁的研究[4,5],可以看到3G的安全体系仍然存在一些缺陷。3G安全体系的薄弱环节主要存在于鉴权认证阶段,主要总结出以下几点:(1)由于用户在不同的PLMN之间漫游,这些不同PLMN甚至可以是在不同的国家,为了对用户进行鉴权认证,本地网络(HE/HLR)会把用户的鉴权五元组发送到漫游的网络的VLR/SGSN,在这个过程中,用户鉴权向量组,穿过不同的网络,很容易受到攻击。(2)在用户开机注册到网络的时候,或者网络无法从TMSI恢复出IMSI的时候(比如VLR/SGSN的数据库错误),用户将向网络以明文形式发送IMSI,这是非常不安全的做法,是很容易遭到中间人攻击的。(3)加密密钥和加密算法在3G中,不再是固定的(比如GSM网络中的A5加密算法是固定的)[2]。但是必须要有一种安全的方法让用户和网络之间对加密密钥和加密算法进行协商。3.2方案设计根据3G安全体系结构的上述漏洞,结合WPKI技术的特点,该文设计一种把WPKI应用到3G安全体系中的解决方案,来解决3G中存在的上述安全隐患,增强3G网络的安全强度。特别是对于现有的用户与服务网络之间进行身份认证,协商密钥和加密算法的机制,从而使得现有的3G无线接入部分更加安全。为了解决3G中的安全问题,参考安全套接字层(SSL[7],SecureSocketsLayer)协议中的握手协议,提出下面的解决方案:在3G网络中部署WPKI组件,建立基于SSL的认证与密钥协商机制(AKA,AuthenticationandKeyAgreement)。详细内容如下:(1)在3G网络中加入认证中心和注册中心(CA/RA),用于验证用户身份,发放和恢复证书。(2)每个用户都拥有一对在入网的时候由PLMN产生的密钥对(公钥+私钥)。其中,私钥存储在用户的USIM卡中。(3)3G网络中每一个参与AKA过程的网络组件(比如VLR/SGSN),必须有一对密钥以及相应的数字证书。(4)3G网络中每一个参与AKA过程的网络组件(比如VLR/SGSN),必须持有现有的PLMN中存在的所有认证中心(CA)的公钥。(5)3G网络中至少有一个隶属于PLMN中的CA的存储数据库,存储所有的数字证书。(6)3G网络中至少有一个隶属于PLMN中的CA的证书恢复数据库(CRL-database),核心网中的所有网元都可以访问到它,进而作证书验证。为了将WPKI技术引入到3G安全体系中,必须加入WP-KI必备的组件,来完成身份认证、密钥协商、数据加密、证书验证等功能。参照3G安全体系结构,设计了增加WPKI组件以后的网络结构,如图1所示。图1引入WPKI的3G网络体系结构从图中可以看出,3G网络体系结构中增加了WPKI必需的组件CA/RA和CR/CRL。4基于SSL的AKA过程的方案实现为了验证3G网络中WPKI技术实施的可行性,笔者对基于SSL的鉴权认证过程进行了模拟,主要针对在无线终端侧实现鉴权认证的相关功能进行编程实验验证。4.1开发环境为了验证上面提出的基于SSL的AKA过程,利用Nokia研究中心的实验设备,搭建了如下所述的实验环境:Nokia6600手机(支持Symbian操作系统)、实验无线网络环境。无线终端开发工具及环境:Symbian操作系统、采用J2ME结合MIDP2.0进行开发。并采用了JSR177[8]的安全操作API。服务器端的程序采用VisualC++开发。SUN的JSR177专家组发布的SATSA(SecurityandTrustServicesAPI)开发包[9]提供了包括证书验证、加解密算法在内的完整的安全元素。SATSA是专门为无线终端安全服务而整合的一个“安全元素”(SecurityElement),作为J2ME设备的一个组件,提供以下功能:(1)安全地保存敏感数据,比如用户私钥、公钥(根)证书、个人信息等。(2)为数据加密、数据完整性保护提供加解密操作。(3)完成数字签名。(4)提供一个J2SE的加密函数库的子集。为了实现这些功能,SATSA定义了四个可选包:SATSA-APDU、SATSA-JCRMI、SATSA-PKI、SATSA-CRYPTO。其中,笔者主要使用了SATSA-PKI和SATSA-CRYPTO两个包中的类。SATSA-PKI提供产生数字签名和用户证书、密钥等管理的功能。它包括两个包:javax.microedition.pki(生成证书请求)和javax.microedition.securityservice(生成数字签名)。SATSA-CRYPTO包提供了私钥管理、生成摘要、数字签名等功能,并且可以完成对数据的加解密操作。java.security、java.security.spec用来获得公钥、计算“摘要”和产生数字签名。javax.crypto、javax.cryp

1 2

引证文献

问答

我要提问