投递文章投递文章 投稿指南投稿指南 RSS订阅RSS订阅

java对安全性的支持(论文)

来源:iT堂整理 发布时间:2008-01-06 收藏 投稿 字体:【

验证签名
²        [ 同生成签名一样先取得签名对象]

²        [用公钥初始化签名对象]  sig.initVerify(pubKey);

²        [取得被签名的数据] sig.update(buffer, 0, len);

²        [验证] boolean verifies = sig.verify(sigToVerify);

 

关于访问控制支持
Policy

在SUN 的java 包中的对安全的支持的接口( Interface )
java.security.Certificate
java.security.Key
java.security.Principal   可以提供 identify 的任何实体
java.security.PrivateKey
java.security.PublicKey
 

在 java.security.acl 还提供了支持访问控制的接口

java.security.acl.Acl  多个 acl 的入口的集合
java.security.acl.AclEntry  acl 的入口
java.security.acl.Group  一组 Principal
java.security.acl.Owner  Acl 的管理者
java.security.acl.Permission  控制信息
 

运用自己的算法类和 Java JDK 支持完成网络银行原型
     前段时间我用 java 实现了课程中几个重要的算法 : 加密的 des 算法, 通过大数类的支持实现了 RSA 算法 , MD5 函数及带密码的签名算法, 但由于我还没有找到比较好的 Java 处理字节流的方法,所以接口不是很清晰,特别是用了大数类,使得网上的数据传输比较麻烦, 而目前我又没办法找到 java 对 RSA 和 加密算法的支持代码 [ 可以从网上的 JCE 部分找到 ], 这部分就使用了我编的算法, 加上时间关系我不能实现用x.509 标准来表示公钥等,所以系统的设计不是很流畅,权当是课后的一次练习。

系统设计
大致的示意图:
< 由于钱目前不能通过 Internet  传输,这里认为客户端是一个管存取钱的代理 >

客户端界面
 
Client代理
 
客户端界面
 
Client代理
 
Server代理

                                TCP/IP  Web

 

Server代理
 
          事务处理中心
 
 Client代理 向客户端提供的接口有:

0.  Login ( [in] Uid , [in] password )

1.         UpdateBalance([ in ] AccountNumber , [ int ] AccountHolder ,[ in ] AccountBalance ,[out] errInfo)

存/取操作。BankServer 确认用户帐号和用户后更改用户的存款数目。

2.         CloseAccount([ in ] AccountNumber , [ int ] AccountHolder ,[ in ] AccountBalance )

消户。BankServer 确认用户帐号和用户后将户头取消。

 安全性方面的测略
²         由于要求在流览器中实现,在本地存取证书的方式是不可行的,对于用户身份认证还是采取了传统的 uid + PWD 的形式,但为了保密,在上传时先用银行的公钥用 RSA 算法加密 [ 该信息直接放在 Applet 的参数中 ]

²         由于没有证书管理措施,不妨认为用户是先执有效证件到银行开户以后取得帐号,设置了密码。用户在每次连接前先生成自己的一份证书,在Log in 时将公钥用x.509的格式[ java 类支持]上传给银行, 由于我自己的算法没法和java 类兼容,所以会话密钥用我自己的方式再上传给银行

²         银行每次确认连接后保留收到的用户的公钥证书。

²         用户形成命令后,先签名然后用约定的会话密钥对数据进行加密。

²         银行收到数据后,先用会话密钥解密,然后检查数据签名,对返回结果用会话密钥加密。

最新评论:
评论内容:请自觉遵守互联网相关政策法规。
用户名: 密码: 匿名 注册
热门文章
随机推荐
About iTtang - 联系方法  - 专题列表 - 友情链接  -  高级搜索   -  帮助中心  -