Java安全:代码签名信任建立与用户认证授权
1. 建立签名代码的信任
1.1 代码签名概述
代码签名自JDK 1.1发布时引入,它为基于与代码签名者的信任关系做出信任决策提供了手段。在JDK 1.1的代码签名模型中,由一个或多个受信任方签名的代码被有效地授予了不受限制的执行权限,即代码不被放入沙箱。而在Java 2中,我们可以更加灵活,只给予完成任务所需的最小权限集,这体现了Java 2遵循的最小特权原则。
1.2 数字签名保障消息安全
数字签名是确保消息完整性的常用技术,这里主要介绍使用公钥密码学和单向哈希函数这两种基本安全原语的数字签名。数字签名不仅能保证数据完整性,还可用于身份验证。
数字签名的工作原理如下:
1. 消息签名者计算消息的单向哈希值,得到的结果即摘要。
2. 对摘要进行签名,也就是用签名者的私钥对其进行加密。
3. 摘要用于确保消息的完整性,签名则保护摘要的完整性。
验证消息是否被篡改的过程如下:
1. 验证者计算消息的哈希值。
2. 用签名者的公钥解密签名。
3. 比较两个摘要值,如果相同,则证明消息完整到达。
验证者依赖于只有与用于解密签名的公钥相对应的私钥才能正确加密摘要这一事实,以此证明是该私钥用于签署消息。如果公钥绑定到公钥证书,验证者可以确定签名者的身份,但公钥证书的存在并不足以完全信任证书内容,还需遍历认证路径到可信锚点。
1.3 JAR文件格式概述
JAR文件格式基于跨平台的ZIP存档格式构建,定义了标准结构和存档条目,用于描述存档内容、完整性控制以及签
超级会员免费看
订阅专栏 解锁全文
378

被折叠的 条评论
为什么被折叠?



