ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:100.64KB ,
资源ID:18851748      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18851748.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Microsoft Word 文档Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Microsoft Word 文档Word下载.docx

1、用户的登录认证可以保留日志用于以后追溯,即可防伪造又可防抵赖。 2身份认证原理2.1数字签名数字签名的产生和验证过程: Alice产生文件的单向散列值。 Alice用她的私人密钥对散列加密,以此表示对文件的签名。 Alice将文件和散列签名送给Bob。 Bob用Alice发送的文件产生文件的单向散列值,同时用Alice的公钥对签名的散列解密。如果签名的散列值与自己产生的散列值匹配,签名是有效的。数字签名具有以下特性: 完整性。因为它提供了一项用以确认电子文件完整性的技术和方法,可认定文件为未经更改的原件。 可验证性。可以确认电子文件之来源.由于发件人以私钥产生的电子签章惟有与发件人的私钥对应的

2、公钥方能解密,故可确认文件之来源。 不可否认性。由于只有发文者拥有私钥,所以其无法否认该电子文件非由其所发送。2.2身份认证流程如下:在实际的部署中,认证服务器的功能可以在应用服务器实现。步骤说明: 浏览器打开应用登录页面,里面包含一个被签名的随机数,随机数在应用服务器端产生,记作RS 浏览器调用Ekey对RS进行签名 Ekey返回对RS的签名,记作SS2_C(RS) 浏览器提交表单,里面包含用户证书SCertC和签名SS2_C(RS),并用PKCS#7的SignedData封装 应用服务器把RS和SignedData交给认证服务器验证6. 认证服务器解开SignedData里面的签名内容、用

3、户证书和数据签名,比较签名内容是否和RS相同,证书是否有效,签名是否有效,若都有效,再查询该证书对应的用户ID。返回验证成功消息及用户账号7. 应用服务器返回登录成功页面,给以该用户账号使用应用服务该流程的优点是:l 挑战-响应机制:客户端在发起认证请求时,服务器端首先产生并返回一个随机数(挑战);客户端在提交认证请求时,将数字签名后的随机数发送到服务器端(响应),由服务器端比较本地的随机数和收到的随机数,以校验认证请求的有效性,从而有效防止截获和重放攻击。 数字签名机制:客户端提交的认证请求,均由客户端认证组件调用eKey进行签名处理。eKey随身携带,其中的私钥不可复制,保证了私钥的唯一性

4、,由于数字签名不可伪造和篡改,服务器端通过校验客户端用户证书和数字签名的有效性,并结合认证数据库鉴别用户身份。3数字证书登录认证的实现以下讨论如何实现数字证书在Web应用中作登录认证。3.1SSL方式SSL在握手过程中,服务端接受客户端证书SSL的用户端认证:CertificateRequest消息指示客户端要进行客户端认证,并就服务器愿意接受的认证类型提供指导:struct ClientCertificateType certificate_types; DistinguishedName certificate_authoritiesCertificateRequest;enmu rsa_

5、sign(1),dss_sign(2),rsa_fixed_db(3),dss_fixed_dh(4), (255)ClientCertificateType;opaque DistinguishedNamecertificate_types指示支持哪种类型的客户端证书。certificate_authorities指示服务器愿意接受哪些CA签发的客户端证书。Certificate消息是客户端向服务端提交的表明身份的数字证书链,证书链的第一个证书就是表明用户身份的数字证书。 ASN.1Cert certificate_listCertificate;opaque ASN.1CertCertif

6、icateVerify消息用于真正的客户端认证。它包含由客户端私钥签名的消息,签名内容为自ClientHello到本消息(不包含本消息)所收发的所有握手消息。且由于这些握手消息带有导出主密钥(master_secret)的随机数,所以本消息可以防止被重放。struct Signature signature; CertificateVerify;select (SignatureAlgorithm) case anonymous: struct ; case rsa: digitally-signed struct opaque md5_hash16; opaque sha_hash20; ;

7、 case dsa: Signature;CertificateVerify.signature.md5_hash=MD5(handshake_messages);CertificateVerify.signature.sha_hash=SHA(handshake_messages);3.1.1WEB服务器设置WEB服务器设置成需要客户端认证。iis需要首先在服务端和客户端都安装CA证书链,可以通过MMC控制台对计算机帐户受信任根证书进行添加tomcat需要首先在服务端和客户端都安装CA证书链,可以在JDK目录下的cacerts进行添加修改c:/tomcat/conf/server.xml,添

8、加如下内容:3.1.2得到客户端证书当WEB服务器设置成需要客户端认证时,客户端在建立SSL链接时会提交用户证书链,证书链的第一个即是表明用户身份的个人证书。j2ee% page import=java.security.cert.X509Certificate %if(request.isSecure() /判断是否采用SSL final String attname= javax.servlet.request.X509Certificate X509Certificate chain= (X509Certificate)request.getAttribute(attname);/客户证

9、书链 if(chain = null) out.println(没有客户端证书链); return; X509Certificate userCert= chain0; /客户证书 %.net c#% Page Language=C#% Import Namespace=System.Security.Cryptography.X509Certificatesif(Request.IsSecureConnection) HttpClientCertificate hCert = Request.ClientCertificate; if (hCert = null) Response.Writ

10、e(没有客户端证书 X509Certificate2 cert = new X509Certificate2(); try cert.Import(hCert.Certificate); catch (Exception e) Response.Write(e.Message); .3.2表单方式表单方式的原理是:服务器产生一个随机数;客户端用数字证书对应的私钥随机数签名,把随机数、用户证书、数字签名以PKCS#7格式打包发送到服务器;服务器再分析此PKCS#7数据包,得到签名随机数、用户证书和数字签名,再验证这3个元素是否有效。3.2.1客户端调用CAPICOM的JS脚本(capicom.j

11、s)var CAPICOM_CURRENT_USER_STORE = 2;var CAPICOM_STORE_OPEN_READ_ONLY = 0;var CAPICOM_ENCODE_BASE64 = 0;var CAPICOM_ENCODE_BINARY = 1;var CAPICOM_INFO_SUBJECT_SIMPLE_NAME = 0;var CAPICOM_INFO_ISSUER_SIMPLE_NAME = 1;var CAPICOM_INFO_SUBJECT_EMAIL_NAME = 2;var CAPICOM_INFO_ISSUER_EMAIL_NAME = 3;functi

12、on SelectMySignCert() /cert store var mystore = new ActiveXObject(CAPICOM.Store mystore.Open(CAPICOM_CURRENT_USER_STORE,My,CAPICOM_STORE_OPEN_READ_ONLY); var certs= mystore.Certificates; /myca sign certs/ var mycacerts= certs; var mycacerts= new ActiveXObject(CAPICOM.Certificates for(i=1;i=certs.Cou

13、nt;i+) /check issuer var issuer=certs.Item(i).IssuerName; if(issuer.indexOf(CN=MYCA)headtitle登录页面meta http-equiv=Content-Type content=text/html; charset=GBKscript src=./capicom.js/scriptscript language=javascriptfunction submitform() var signature= SignText(%=challenge% if(signature=null)return; for

14、m1.passport.value= signature; form1.submit();/headbodyobject id=oCAPICOM codeBase= #version=2,0,0,3 classid=clsid:A996E48C-D3DC-4244-89F7-AFA33EC60679/objectform name=form1 action=verify.aspx method=POST button点击提交登录证书. onclick=submitform()/form/body/html3.2.2服务端JDK1.5中自带的JCE并不支持PKCS#7,.net framewor

15、k是支持的。登录判断逻辑(verify.aspx)System.Security.Cryptography.Pkcs string challenge = (string)Session; = null; if(challenge=null)没有随机数 string p = Request.Form byte cmsDer = Convert.FromBase64String(p); SignedCms cms = new SignedCms(); try cms.Decode(cmsDer); cms.CheckSignature(true); catch(Exception e) string challenge2 = Encoding.Default.GetString(cms.ContentInfo.Content); if (challenge.Equals(challenge2)随机数不匹配 Response.Write(challenge + : + challenge2);登录成功3数字证书与现有用户帐户的绑定用户用数字证书登录后。WEB应用提供一个帐户绑定页面,页面提示用户输入原用户名和口令。后台再验证用户提交的用户名和口令,通过验证后,把该用户/口令对应的用户ID和用户的登录证书摘

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1