zoukankan      html  css  js  c++  java
  • 公钥加密,摘要算法MD5,SSH相关概念

    1.公钥加密,又叫非对称加密,一般指的是用一组密钥来保证通信的安全。(公钥,私钥)成对存在且惟一,典型的公钥算法有 RSA(计算出的是1024位,128字节),顺便提一下与公钥加密算法相对应的就是传统的 私钥加密(对称加密),典型的有DES算法。

    2.数字签名的过程和作用

    公钥一般用来加密信息,而私钥更多用来加密摘要,如网站要给个人发送网页信息,为了确保网页信息确实是由该网站发出的并且中途没有被修改,则先对网页信息进行MD5摘要计算(生成32位十六进制的摘要),这个摘要就被称为数字签名。

    第一步,个人接收到网站发过来的信息和数字签名,用该网站的公钥解密数字签名,如果可以正确解密,则证明确实是由该网站主动发出的网页,而且数字签名具有不可否认性,因为只有签名的一方具有私钥,能进行加密的动作;第二步,对网页同样进行MD5摘要计算,将得到的摘要与刚刚解密出来的摘要进行比对,如果一样,则证明网页文件中途没有被篡改,这即叫作验证数据的完整性。

    3.为了公证密钥对与发行方的一一对应性,需要证书中心(CA),CA用自己的私钥对网站信息及网站的公钥一起进行私钥加密,这样就表明这对密钥合法,值得信任,浏览器今后就用CA的公钥解密出网站的公钥。可以放心的使用对应网站的公钥。与没有数字证书不同的是,现在网站给用户发送信息时,要将信息,数字签名,数字证书一起发送。

    4.在SSH中,不存在证书中心。假如我们是A主机,向B主机发出登陆请求,那么B就将它的公钥发给我们,如果我们信任这个公钥,则用这个公钥加密我们的密码,发给B。这里存在一个问题,如果中间人C冒充B,将C自己的公钥发给我们,我们以为是B,依然用收到的公钥加密并回传,那么C通过用私钥解密就可以得到我们的密码。这样C就可以去登陆B了,这就是中间人攻击。

    我们用SSH首次登陆一个主机时,它会提示无法确定主机的真实性,并会给出RSA公钥的指纹(将1024位128字节的RSA公钥进行MD5摘要计算,压缩成128位16字节的数据),怎样认证,没有其它办法,远程主机或者网站必须公示它的公钥指纹,我们自己进行核对是否一致,如果信任就直接进行登陆。

  • 相关阅读:
    [置顶] java 通过classloader加载类再通过classforname实例化
    Linux内核源代码解析——用户发送数据包的起源之sendto
    POJ 2774 Long Long Message&&HDU 1403 Longest Common Substring&&COJ 1203
    add-two-numbers-ii
    【转载】React初学者入门须知
    【Todo】【转载】ES6的学习记录
    【转载】Java中如何写一段内存泄露的程序 & ThreadLocal 介绍和使用
    【Todo】深入理解Javascript系列
    【转载】什么是优秀技术团队
    【转载】React入门-Todolist制作学习
  • 原文地址:https://www.cnblogs.com/enjoy-ourselves/p/3716116.html
Copyright © 2011-2022 走看看