java虚拟机学习之代码签名和认证

代码签名和认证

    java安全认证是为了保证class文件是值得信任的,并且class文件在到达用户虚拟机途中没有被改变,对一段代码作担保或者签名,必须首先生成一个公钥、私钥对。用户保管私钥,公钥公开。拥有公钥/私钥时,必须将要签名的class文件和其他文件放到一个jar文件中,然后使用工具对jar文件签名。

   签名步骤: 一、将jar文件进行单向散列计算,产生一个散列。二、将私钥对这个散列进行签名,签名后添加到jar文件的末尾  (持有私钥并需要将数据发出)

   认证步骤:一、对jar文件末尾的签名后的散列用公钥解密。二、用签名步骤方法对这个jar的未加密的class文件和数据文件计算出散列。三、判断两个散列是否相等。

                                                    

弊端:签名是为了让别人信任你,通过拿到你的公钥来认证你发的消息(私钥加密散列后),问题在于别人怎么拿到你的公钥,web下载的话可能会被恶意篡改。

     为了应对公钥可能的发布问题,建立了许多证书机构来为这些公钥做担保。通过证书结构的验证,证书机构用证书机构的私钥对将要发布的公钥进行签名,最终得到数字序列被称为证书。(还是存在隐患,证书机构的证书又怎么知道就是证书机构的呢)


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值