• # 数字签名&数字证书


    数字签名&数字证书


    参考资料:
    数字签名是什么?-阮一峰的网络日志
    数字签名和数字证书究竟是什么?知乎-chi


    数字签名

    1. A有一把公钥和一把私钥,私钥为自己所有,公钥在数字证书上,想给A发送信息的人B从A的数字证书上获取A的公钥。B的信息写完用A的公钥加密发送给A,A用私钥解密就看到了信件内容。这里要强调的是,只要A的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。

    2. 私钥加密的数据只有公钥才能解密

    3. A回信,使用数字签名,写完使用hash函数生成信件的摘要,再用私钥对摘要加密,生成数字签名,将数字签名附在信件下面,一起发给B。B收到后取下数字签名,使用A的公钥解密,成功解码得到摘要,表名数字签名来自A。然后对信件本身使用hash函数得到自己的hash信息摘要,与解码数字签名得到的债要进行对比,如果相同表名信息时完整的,没有被篡改,反之则确认信息被破坏了

    4. 有了数字证书之后,A给B发送信息,在签名的同时再附上数字证书


    数字证书

    1. 假设现在有一个数字证书的权威认证中心,这个中心会给Bob创建一个数字证书,这个数字证书包括了Bob的一些信息以及Bob的公钥

    2. 想要跟Bob进行通信的人,就可以检查Bob的数字证书,然后向权威的数字证书的认证中心,去认证这是不是真实的Bob的数字证书,如果是,就可以从数字证书中获取到Bob的公钥,然后进行安全的通信

    3. 就像现实生活中一样,我们不管进行任何涉及到资金或者安全问题的时候,都需要出示自己的身份证,并且对方会验证你的身份证的真假,也就是说,一个持有假身份证的人,或者没有身份信息的人是获取不了他人的信任的。同理,在网络通信中,如果在数字证书的认证中心中查询不到信息,那么就说明这样的通信方是不安全的,是不值得信任的!另一方面,数字证书除了解决了公钥分发和身份认证的问题,还加强了安全性。


    数字证书的实例(https协议)

    • 这个协议主要用于网页加密
    1. 服务器用自己的私钥加密网页之后,连同本身的数字证书一起发送给客户端

    2. 客户端(浏览器)的"证书管理器",有"受信任的根证书颁发机构"列表。客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内。
      如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告。

    3. 如果这张数字证书不是由受信任的机构颁发的,浏览器会发出另一种警告。

    4. 如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息。

  • 相关阅读:
    CocoaPods 安装教程
    iOS 如何使用第三方字库
    iOS 获取当前网络状态
    GitHub上README.md教程
    如何获取iOS软件包内容
    iOS中如何监测来电
    OS 如何选择delegate、notification、KVO?
    iOS-Block总结 && 全面解析逆向传值
    iOS面试题
    iOS优秀博客收录
  • 原文地址:https://www.cnblogs.com/sstealer/p/11149421.html
Copyright © 2020-2023  润新知