java jca_Java加密体系结构(JCA)参考指南

JCA简介

Java平台强调安全性,包括语言安全性、密码学、公钥基础设施、身份验证、安全通信和访问控制。

JCA是java平台的重要部分,它包含了“provider”架构和一系列数字签名、消息摘要、证书和证书认证、加密(对称/非对称 流式/分组 加密),秘钥生成和管理、安全随机数生成API。这些API是的开发者可以十分简单的把安全集成到应用代码中。JCA架构设计上遵循如下准则:

实现独立: 应用程序不必自己实现安全算法,但是它们可以从java平台获取安全服务。安全服务是在providers (参考Cryptographic Service Providers)中以可插拔的方式实现的。应用程序可能依赖多个独立的providers 来实现安全功能。

实现互操作性: provider是跨应用程序互操作的。具体来说,应用程序不绑定到特定的provider,provider也不绑定到特定的应用程序。

算法可扩展性 Java平台包括许多内置的providers,它们实现了一组基本的安全服务,这些服务在今天被广泛使用。然而,有些应用程序可能依赖于尚未实现的新标准或专有服务。java平台支持安装定制的provider来扩展内置的providers。

JCA设计原则

JCA是围绕以下原则设计的

实现独立性和互操作性

算法独立性和可扩展性

实现独立性和算法独立性是互补的;您可以使用加密服务,比如数字签名和消息摘要,而不用担心实现细节,甚至不用担心构成这些概念基础的算法。虽然不可能完全独立于算法,但是JCA提供了标准化的、特定于算法的api。当不需要实现独立性时,JCA允许开发人员指定特定的实现。

算法独立性是通过定义加密“引擎”(服务)类型和定义提供这些加密引擎功能的类来实现的。这些类称为引擎类,比如MessageDigest, Signature, KeyFactory, KeyPairGenerator, and Cipher

实现独立性是通过使用基于“provider”的体系结构来实现的。实现独立性是通过使用基于“提供者”的体系结构来实现的。加密服务提供者(CSP)与“provider”是两个等价的术语,(请参阅加Cryptographic Service Providers

)指实现一个或多个加密服务的包或一系列包,如数字签名算法、消息摘要算法和密钥转换服务。程序可以简单地请求实现特定服务(如DSA签名算法)的特定类型的对象(如签名对象),并从安装的providers实现中选择一个。

实现互操作性意味着各种实现可以相互协作、使用彼此的密钥或验证彼此的签名。例如,对于相同的算法,一个provider生成的密钥可以被另一个provider使用,一个provider生成的签名可以被另一个provider验证。

算法的可扩展性意味着可以很容易地添加适合支持引擎类的新算法。

Provider架构

Providers包含一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值