作业帮 > JAVA > 教育资讯

JavaME安全策略(二):利用SATSA高级API进行加解密

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 11:45:32 JAVA
JavaME安全策略(二):利用SATSA高级API进行加解密
JavaME安全策略(二):利用SATSA高级API进行加解密JAVA
【51Test.Net - JAVA】
一、使用JCRMI与Java智能卡通信
APDUConnection提供了对智能卡的低级别访问。这种访问级别不适合没有毅力的人使用;它要求牢固理解智能卡基本原理以及针对智能卡上特定应用程序的应用通信协议。这类接口完全能够进行抽象,这正是JCRMI的用途。
JCRMI使用来自Java的RMI体系结构的概念,允许在支持Java的智能卡上直接使用Java进行智能卡操作(如需更深入地理解RMI在Java中的工作原理,请参阅第11章)。无须在单个位和字节级别上进行操作,你可以连接到卡上的Java智能卡应用程序,接收该应用程序的存根接口,然后远程调用其方法。
从本质上讲,将GCF Connector类和你指定的AID结合,可以充当远程Java对象的寄存器;使用JavaCardRMIConnection实例的getInitialReference方法,获取对表示卡上的远程应用程序的存根的引用。
就像使用APDUConnection一样,可能会发生异常;如果未插入卡,智能卡应用程序不存在,或者如果Java ME应用程序没有权限使用智能卡接口,都会出现异常。注意,如果智能卡在正在使用远程对象时被拔出,对远程对象的访问显然会失败;重新插入智能卡之后,需要将Java ME应用程序重新连接到智能卡应用程序。
JCRMI接口在以下方面比Java RMI或Java RMI OP受到的限制更多。
q远程类只能实现最多15个接口。
q远程方法只能返回简单的Java类型(boolean、byte、short、int以及这些类型的一维数组)。
q参数和返回值按值进行交换,除了远程对象引用。
与APDUConnection一样,使用JavaCardRMIConnection实例需要一定的权限;需要在应用程序的JAD文件或清单文件中插入javax.microedition.jcrmi权限。与使用APDUConnection一样,此特权只适用于经营商、制造商或第三方可信领域中的应用程序。
二、利用SATSA高级API进行加解密
除了SATSA定义的两个可选包可用于连接加密硬件外,还有两个包能够实现如今的许多移动应用程序所需的常见加密操作。SATSA-CRYPTO包包含java.security包、java.security.spec包、javax.crypto包以及javax.crypto.spec包的一个子集,提供了用于公私钥管理、消息摘要、签名验证以及数字加密的API。SATSA-PKI安全包包含javax.microedition.pki和javax.microedition. securityservice,定义了支持基本用户证书管理的类。JAVA