基于B/S下的IC智能卡的安全问题解决方案
2005-09-19 15:12
357 查看
最近在很多社区都有人问到B/S下的IC卡的读写,当然要用ActiveX了,不知道有没有其他好的办法。
但是他们都忽略了一个问题----安全性。
B/S下的IC卡的读写需要使用ActiveX来辅助完成,ActiveX是下载到每个客户端执行的,任何个用户都可以得到该ActiveX。如果对IC卡在安全性方面要求很高,在加密数据或密码的过程中很难做到完美,原因是客户端的ActiveX需要配合脚本如js或vbs来完成,而客户端脚本通常都是透明的,目前尚未找到特别安全的基于B/S的解决方案。
我在实际应用中用到两种方法:
第一种:利用加密解密技术
流程如下:
1.用户的浏览器发出浏览登陆网页的请求。
2.服务器生成一个长的随机串A,并纪录A,把这个串写在网页中的activex的参数里。
3.浏览器收到该页面, 显示,并创建 activex 实例, acrivex 实例将此字串发给刷卡机, IC卡用其内部的算法(复杂的如私钥加密)对A加密,返回串 B 到 activex实例。
4.网页提交时, 将 activex实例 中的B读出, post给 服务器。
5.服务器收到B后, 使用相应的算法(复杂的如公钥解密)算出 xA, 比较 A?=xA, 就知道使不是合法登陆了。
第二种方法, 利用 M$的用户验证方法。
客户机先利用IC卡登陆本地系统(M$有此项接口), 之后,利用M$身份认证机制,让 服务器检查,是不是指定的用户。
个人认为,你用第一种会更好点。
但是他们都忽略了一个问题----安全性。
B/S下的IC卡的读写需要使用ActiveX来辅助完成,ActiveX是下载到每个客户端执行的,任何个用户都可以得到该ActiveX。如果对IC卡在安全性方面要求很高,在加密数据或密码的过程中很难做到完美,原因是客户端的ActiveX需要配合脚本如js或vbs来完成,而客户端脚本通常都是透明的,目前尚未找到特别安全的基于B/S的解决方案。
我在实际应用中用到两种方法:
第一种:利用加密解密技术
流程如下:
1.用户的浏览器发出浏览登陆网页的请求。
2.服务器生成一个长的随机串A,并纪录A,把这个串写在网页中的activex的参数里。
3.浏览器收到该页面, 显示,并创建 activex 实例, acrivex 实例将此字串发给刷卡机, IC卡用其内部的算法(复杂的如私钥加密)对A加密,返回串 B 到 activex实例。
4.网页提交时, 将 activex实例 中的B读出, post给 服务器。
5.服务器收到B后, 使用相应的算法(复杂的如公钥解密)算出 xA, 比较 A?=xA, 就知道使不是合法登陆了。
第二种方法, 利用 M$的用户验证方法。
客户机先利用IC卡登陆本地系统(M$有此项接口), 之后,利用M$身份认证机制,让 服务器检查,是不是指定的用户。
个人认为,你用第一种会更好点。
相关文章推荐
- 基于P2P网络的实时通信系统的安全问题与解决方案
- 基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
- DLL 基于IHE ITI-ATNA技术规范的区域医疗信息共享安全问题解决方案
- 基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
- 基于B/S下的IC智能卡的安全问题
- 基于httpclient网络框架库在android 6.0sdk问题的直接解决方案
- Ajax访问Xml Web Service的安全问题以及解决方案
- JavaWeb 项目安全问题及其解决方案
- Ajax访问Xml Web Service的安全问题以及解决方案
- Java WEB安全问题及解决方案
- 摘要 MAC,PIN,磁道密钥 在平时的工作中,很少接触安全这块内容,最近需要自己独立完成安全这块内容,在开发中遇到的问题会在下面的理解中得到相应的解决。 在交易平台中,基于安全考
- Mysql的事务和事务的隔离级别,读写引发的安全问题以及解决方案
- JavaWeb 安全问题及解决方案
- SimpleDateFormat 的线程安全问题与解决方案
- SimpleDateFormat的线程安全问题与解决方案
- Java多线程安全问题及解决方案
- linux下的selinux安全阻止问题及解决方案
- 关于pageadmin配置过程中没有安全选项的问题解决方案
- 基于Tomcat服务的系统JSP页面不加载SWF问题的解决方案
- 基于Android中Looper , Handler , Message的线程池,轻松解决Sqlite数据库的线程安全问题