作为一组面向IBM i平台的Java应用程序编程接口,IBM Java Toolbox for i主要用于访问IBM i的数据与 资源。而数据与应用的安全性是从事IBM i应用开发者需要考虑的重要因素之一。通过依赖IBM Java Toolbox for i与IBM i之间的SSL通信,上层客户端应用程序可有效解决与IBM i服务器交互过程中的出现数据安全问题 。本文的目标是结合SSL加密技术,IBM i相关的SSL证书管理组件——IBM i 数字证书管理器(或DCM),指导 读者如何利用IBM Java Toolbox for i实现安全访问IBM i数据与资源的目标。
从结构划分上,文章分为5部分。本文先简单介绍SSL技术的基本概念与工作原理。在熟悉SSL的基础知识之 后,第二部分将介绍针对IBM i平台SSL证书的数字证书管理器DCM。第三部分的目标是使用DCM创建一个SSL证 书,并且与IBM Java Toolbox for i的ProgramCall主机服务器关联,这样,就保证了客户端应用程序可以安 全地使用IBM Java Toolbox for i远程调用IBM i的涉及银行账户等敏感信息的RPG应用。在第四部分中,我们 将结合示例说明如何使用IBM Java Toolbox for i以编程的方式实现与IBM i的SSL连接。最后一部分是总结。
为方便读者更好理解,我们针对样例应用程序的简单说明如下:
1. 基于普通方式调用RPG程序QUERYCUSTINFO.PGM根据客户身份证ID,查询数据库获取客户基本信息。
2. 基于SSL的方式调用RPG程序QUERYCUSTACCOUNT.PGM根据客户提供的身份证ID,查询数据库获取客户的银行 账户信息。
之所以选择以SSL与NON-SSL两种对比方式举例,是希望读者根据自身需要选择是否SSL加密通信,毕竟安全 性通常是以牺牲性能为代价的。
SSL工作原理
Secure Sockets Layer(或SSL),是为网络通信提供安全及数据完整性的一种安全协议 。SSL协议提供的服务主要有:
(1) 认证用户和服务器,确保数据发送到正确的客户机和服务器;
(2) 加密数据以防止数据中途被窃取;
(3)维护数据的完整性,确保数据在传输过程中不被改变。
SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。SSL证书使得客户端浏览器和Web 服务器之间建立了一条SSL安全通道。
一份 SSL 证书包括一个公共密钥和一个私用密钥。公钥用于加密信息,私钥用于解密信息。
有关SSL的工作原理,参见图1:
图 1. SSL的工作原理