SSL中ECC数字证书的设计与实现.doc
《SSL中ECC数字证书的设计与实现.doc》由会员分享,可在线阅读,更多相关《SSL中ECC数字证书的设计与实现.doc(13页珍藏版)》请在三一办公上搜索。
1、SSL中ECC数字证书的设计与实现第24卷第12期2007年12月计算机应用与软件ComputerApplicationsandSoftwareV01.24No.12Dec.2007SSL中ECC数字证书的设计与实现陆洁茹朱艳琴(江苏工业学院计算机科学与工程系江苏常州213164)(苏州大学计算机科学与技术学院江苏苏州215006)摘要针对当前SSL协议中使用RSA证书的局限性,提出了将ECC数字证书应用于SSL握手协议的交互过程,并且设计和实现了签发及验证该ECC证书的PKI系统.关键词ECCPKISSLX.509证书数字签名密钥协商DESIGNANDIMPLEMENTATIoNoFECCD
2、IGITALCERTIFICATEINSSLPRoToCoLLuJieru?ZhuYanqin(DepartmentofComputerScienceandEngineeringJiansuPolytechnicUniversity,ChangzhOU213164,Jiangsu,China)(ComputerScienceandTechnologySchool,SoochowUniversity,Suzhou215006,Jiangsu,China)AbstractConsideningthelimitationofusingRSAcertificateinSSLprotocol,ECCdi
3、gitalcertificateisappliedtoSSLhandshakeprotocolAPKIsystemisdesignedandimplementedformakingandverifyingtheECCcertificate.KeywordsECCPKISSLX.509certificateDigitalsignatureKeyexchange0引言安全套接字层SSL(SecureSocketLayer)协议是网络安全传输中使用最广泛的协议.它位于TCWIP层和应用层之间,为应用层程序提供一条全透明的安全网络传输通道.该协议目前普遍使用的是RSA公钥密码体制.考虑到ECC(Ell
4、ipticCurveCDptography)与RSA相比的强大优势,本文使用ECC数字证书传递ECC公钥,并将ECDSA签名应用于SSL协议中,以缓解使用RSAEI益产生的瓶颈问题.1基于ECC的SSL握手协议设计1.1SSL协议概述SSL协议分为握手和数据传输两个阶段.握手阶段对服务器进行认证并确立用于保护数据传输的加密密钥,一般采用公钥密码体制实现.握手完成后,数据被分成经过保护的记录进行传输.使用SSL协议虽然保证了两台机器的安全通信,但给网络传输造成了额外的负荷.目前SSL主要使用RSA公钥实现身份认证和密钥协商.由于ECC具有安全性能高,密钥长度短,计算量小,处理速度快,占用存储空问
5、小和带宽要求低等更强大优势,用ECC代替RSA应用于SSL协议能够显着提高SSL的性能.1.2基于ECC数字证书的SSL握手过程本文在SSL握手协议中引入ECC数字证书,将ECC数字证书作为ECC公钥及证书所有者身份信息的载体,提供身份认证,ECDH密钥协商和完整性等服务.握手过程分为四个阶段进行,如图1所示.客逋信双方建Servertlello立一次连接Certificate服务器端发送nificaReques证书并索要客ServerIIelloDone户端证书roninPtp客户端发送证clientKyExchall书,密钥交换以及证书验证消息CertificateVerifyChange
6、CipherSp!协商共享密钥,Finished双方发送结束握手消息LIllkslleO图1SSL握手协议1.2.1第一阶段通过两条消息在客户端和服务器端之间建立安全联系:协商同一个协议的版本号,加密组,压缩方法及产生随机值.本文选择的加密组是TLSECDHECDSAWITHRC4128一SHA,即使用ECDH密钥协商算法,ECDSA签名算法,SHA消息摘要算法和RC4128加密算法.1.2.2第二阶段服务器端发送Certificate消息,即服务器的ECC证书.证书中的主体公钥Q和公钥算法参数中的椭圆曲线基点G将被用于客户端的ECDH密钥协商.服务器端发送cercificateRequses
7、t消息,要求客户端提供主收稿日期:20051223.江苏省自然科学基金项目(BK2004039)资助.陆洁茹,硕士生,主研领域:计算机网络安全.第12期陆洁茹等:SSL中ECC数字证书的设计与实现39体公钥用作ECDSA签名的证书进行身份认证.服务器端发送ServerHelloDone消息,握手协议的Hello段结束,服务器等待客户端响应.1.2.3第三阶段客户端发送Certificate消息.作为对服务器端Certifica.teRequsest消息的响应,客户端发送基于ECDSA公钥的证书.该证书与服务器端证书不同,仅用于客户端的身份认证,不用于ECDH密钥协商.因为ECDH密钥协商算法要
8、求双方密钥基于同一条椭圆曲线生成,在实际应用中会造成一定的局限性.仅采用ECC汪书用作身份认证,既发挥了它的优势,又保证了实现的灵活性和安全性.客户端发送clientKeyExchange消息.客户端收到服务器端ECC证:枵并验证其有效性和真实性后,从中解析服务器主体公钥Q及椭圆曲线参数.客户端基于该椭圆曲线生成临时密钥对用于ECDH密钥协商,其中公钥为Q:kG(k为客户端私钥):计算共享密钥K:QXk.将Q通过此消息发送给服务器.客户端发送CertificateVerify消息:客户端在Certificate消息中发送了基于ECDSA公钥的ECC数字证书,表示该证书绑定的主体公钥用于ECDS
9、A数字签名.客户端使用与该公钥匹配的私钥对上面所有收到和发出的消息进行ECDSA签名,并把签名信息附在该消息中发送给服务器.1.2.4第四阶段服务器端获得客户端ECC证书后,先验证合法性,再验证该证书类型是否是它在cenicateRequest消息中要求客户端所发送的证书类型.服务器端获得客户端用于密钥协商的公钥Q后,协商出共享密钥K=QXk(k为服务器端私钥).此时,通信双方已经协商出共享密钥,可以用于后序数据传输的加密解密.服务器端获得客户端ECDSA签名信息后,从客户端ECC证书中解析出主体公钥,用ECDSA算法验证签名信息.如果验证通过,则客户端确实拥有与该公钥匹配的私钥,他的身份真实
10、有效.当ChangeCipherSpec消息验证密钥交换过程成功后,Finished消息立即发送,之后,双方就可以开始发送应用层数据了.2数字证书结构在SSL握手阶段,服务器端和客户端分别提供了基于ECC的数字证书用于身份认证和密钥协商等安全服务.这就需要设计出ECC数字证书的格式并实现证书的签发.2.1数字证书格式数字证书即网络身份证,由可信第三方发证机构为用户签发.它包含用户的公钥以及一些其他信息,带有发证机构的数字签名,具有不可伪造性.X.509是当前使用最广泛的一种证书格式.它的结构如表1所示.表1X.509证书结构字段描述CertificateFommtVersion证书版本号(vl
11、,v2,v3)CertificateSerialNumber证书序列号SignatureandHashing证书签发者的签名和Hash算法AlgorithmfortheCA标识证书签发者的签名算法参数(可SignatureAlgorithmParameters选)IssuerName证书签发者唯一标识名证书有效期(包括生效和失效时ValidityPeriod间)SubieetNanle主体(证书所有者)唯一标识名SubjectPublicKey主体公钥算法标识AlgorithmIdentifierSubjectPublicKey主体公钥算法参数AlgorithmParametersSubjec
12、tPublicKey主体公钥Extensions证书扩展项(可选)CASignature证书签发者的数字签名目前的数字证书大多是RSA证书,ECC证书与其不同之处主要有:主体公钥信息和证书签发者的签名信息.2.2ECC数字证书文法描述2.2.1主体公钥信息(1)主体公钥算法标识ECC公钥的对象标识(OID)为1.2.840.10045.2.1,表示ECPublicKey.(2)主体公钥算法参数双方使用ECC证书通信时,有时不仅需要知道对方的公钥值,还需要知道对方的公钥是基于哪条椭圆曲线生成的.例如,双方进行ECDH密钥协商时就要求ECC公钥基于同一条椭圆曲线生成.该字段主要包括的参数有选定的曲
13、线curve,基点base,基点的阶n,余因子cofator以及用于标识素数域或二进制域的fieldlD.该结构用ASN.1文法描述如下:Parameters:=CHOICE;ecParametersECParameters,namedCurveCURVES.&id(CurveNames),implicitlyCANULLECParameters:=SEQUENCEversionINTEGERecpVerl(1)(ecpVer1),fileldlDFieldlDFieldTypes,curveCurve.baseECPoint,orderINTEGER,cofactorINTEGERO
14、PTIONAL,.通常有三种方法指定参数:直接指定,可用于签发自签名证书.由标准中指定的OID来表示,用于使用标准推荐的椭圆曲线产生的密钥.为了保证安全性,通常不建议用户自定义生成椭圆曲线,而是使用标准中推荐的椭圆曲线(如FIPS标准中由NIST定义的椭圆曲线).省略,椭圆曲线参数从颁发者根证书中继承,本系统cA为用户颁发的证书采用该方法.(3)主体公钥根据ECC算法,公钥是ECPoint类型,表示椭圆曲线上的一个点,将该值作为BITSTRING类型的ASN.1编码保存在该字段中.2.2.2证书签发者签名信息(1)签名算法标识CA使用SHA1消息摘要算法和ECDsA签名算法对证书签名,OlD为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SSL ECC 数字证书 设计 实现
链接地址:https://www.31ppt.com/p-2397127.html