用 Kerberos 为 J2ME 应用程序上锁,第 3 部分: 建立与电子银行的安全通信(上)
2010-03-30 00:00:00 来源:WEB开发网核心提示:回顾本系列的 第一篇文章,它介绍了移动银行 MIDlet 应用程序,用 Kerberos 为 J2ME 应用程序上锁,第 3 部分: 建立与电子银行的安全通信(上),并解释了 Kerberos 是如何满足这种应用程序的安全要求的,文章还描述了 Kerberos 用来提供安全性的数据格式,(在我的“用单点登录
回顾本系列的 第一篇文章,它介绍了移动银行 MIDlet 应用程序,并解释了 Kerberos 是如何满足这种应用程序的安全要求的。文章还描述了 Kerberos 用来提供安全性的数据格式。
本系列的 第二篇 文章展示了如何在 J2ME 中生成 ASN.1 数据类型。介绍了如何用 Bouncy Castle 加密库进行 DES 加密,并用用户的密码生成 Kerberos 密钥。最后将这些内容放到一起并生成一个 Kerberos 票据请求。
在本系列文章中开发的 Kerberos 客户不要求某个特定的 Kerberos 服务器,它可以使用所有 KDC 实现。
不管所选的是什么 KDC 服务器,必须告诉服务器移动银行 MIDlet 的用户在对 TGT 的请求中不需要发送预认证数据( padata , 本系列第一篇文章的图 2 中显示的 KDC-REQ 结构的第三个字段)。
根据 Kerberos 规范,发送 padata 字段是可以选择的。因此,KDC 服务器通常允许配置特定的用户,使得对于所配置的用户不需要 padata 字段就可以接受 TGT 请求。为了尽量减少 Kerberos 客户机上的负荷,必须告诉 KDC 服务器接受电子银行移动用户的不带 padata 的 TGT 请求。
在这个例子中,我使用了 Microsoft 的 KDC 服务器以试验基于 J2ME 的移动银行应用程序。在本文 源代码下载 中的 readme.txt 文件包含了如何设置 KDC 服务器、以及如何告诉它接受不带 padata 字段的 TGT 请求的指导。(在我的“用单点登录简化企业 Java 认证”一文中,我使用了同一个 KDC 服务器展示单点登录。有关链接请参阅 参考资料。)
赞助商链接