PKI - 数字签名与数字证书

 作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题


代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等


联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。码炫课堂的个人空间-码炫码哥个人主页-面试,源码等

释放21集全网最深ConcurrentHashMap的vip视频,复现每一行源码

202403212040464251.png

概述

SSL是一种安全协议,用于在网络传输中提供数据加密、身份验证和完整性保护。它基于传输层协议(如TCP),并为其提供加密和安全功能。

  1. 对称加密和非对称加密 :

    • 对称加密 :使用相同的密钥进行加密和解密。
    • 非对称加密 :使用两个密钥:公钥用于加密,私钥用于解密。
  2. 数字签名 :用于验证数据的完整性和身份验证。发送方使用私钥对数据签名,接收方使用公钥验证签名。

  3. 数字证书 :由可信第三方颁发的电子文档,其中包含有关个人或组织的身份信息以及公钥。

  4. SSL协议 :基于这些工具和概念,SSL协议提供了以下几个关键功能:

    • 数据加密:通过使用非对称加密算法(如RSA或Diffie-Hellman),为传输的数据提供端到端加密。
    • 身份验证:服务器向客户端证明其身份,通常通过使用数字证书。
    • 密钥交换:协商一个共享的加密密钥,用于对称加密算法(如AES)。
    • 数据完整性:通过使用消息认证码(MAC),确保数据在传输过程中没有被篡改。
  5. 应用场景 : SSL在网络交易、银行、电子邮件和许多其他需要保护敏感信息的场景中广泛使用。

  6. 替代品 :由于SSL的某些安全问题,其后续版本TLS(传输层安全)已成为其替代品。TLS被认为是更安全和更现代的协议。

要充分利用SSL/TLS提供的保护,需要正确配置和管理服务器和客户端。此外,定期更新和检查证书也是非常重要的,以确保安全性和有效性。


在了解ssl之前,先要了解对称加密、非对称加密、数字签名、数字证书。因为ssl是基于这些构建出来的。

对称加密

  • 对称加密只有一把密钥,明文用这把密钥加密后可以转化为密文,密文再用同一把钥匙解密。就像家里门锁,只能有一把钥匙打开或者锁上。当然可以拿这把钥匙去配多把一样的给多个人用,这样拿到这个钥匙的人都能对门进行锁上和打开操作。
  • 常用的对称加密算法有DES、3DES、AES等。
  • 对称加密的优点是加密速度快,适合对大量信息进行加密,缺点是密钥一旦丢失将导致密文泄漏。

非对称加密

非对称加密有两把钥匙对,A和B,用A加密只能用B解密,用B加密也只能用A解密。有一把钥匙可以公开出去,另一把钥匙自己留着,公开出去的叫公钥,自己留着的钥匙叫私钥。

比如A钥匙自己留着,钥匙A叫私钥,B钥匙公开出去则叫公钥。公钥可以复制多把给很多人用。

202403212040467672.png

使用两把密钥:公钥和私钥。公钥用于加密,而私钥用于解密。这种方法的优点在于,即使公钥被泄露,只要私钥保持安全,信息仍然是安全的。因此,非对称加密在密钥管理上更为安全。然而,它的缺点是加密速度慢,不适合对大量信息进行加密。

常用的非对称加密算法有RSA、ECC等。

在实际应用中,通常会将对称加密和非对称加密结合使用,以提高安全性和效率。例如,可以使用非对称加密来安全地交换对称加密的密钥,然后使用对称加密来加密实际的数据。这样既可以利用对称加密的高速性,又可以保证密钥交换的安全性。


数字签名

数字签名是一种电子签名,通常用于验证消息的真实性和完整性。它是一种数学算法,利用公钥加密领域的技术实现。数字签名创建个人或实体独有的虚拟指纹,用于识别用户并保护数字消息或文档中的信息。

在数字签名的过程中,发送方会用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密。这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方。接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,再用发送方的公用密钥来对报文附加的数字签名进行解密。如果这两个摘要相同,接收方就能确认该数字签名是发送方的,从而验证消息的真实性和完整性。

数字签名是非对称密钥加密技术与数字摘要技术的应用,通常用于电子邮件、信用卡交易或数字文档等场景。它比其他形式的电子签名更安全,因为只有信息的发送者才能产生别人无法伪造的一段数字串,这个数字串同时也是对信息的发送者发送信息真实性的一个有效证明。

202403212040473833.png

举个例子:

张三要求李四给他写一封加密信,打算用非对称加密方法。张三自己先生成一对密钥A和B,A作为私钥留给自己,B作为公钥给了李四。李四收到李四的公钥后就开始写信,并用李四给的公钥B对信进行加密。李四把写好的信邮递给了张三,张三用自己的私钥解开信件。

202403212040476844.png

张三收到李四的信后会有两个疑问:

  • 1、这封信的内容怎么证明没有被篡改过?
  • 2、怎么证明这个信是李四写的,难道不是别人冒充的?

要解决这两个问题就要用到数字签名技术了。

主要步骤如下:

李四:

  • 1、李四生成一对密钥C和D,C作为私钥留给自己,D作为公钥给张三
  • 2、李四写完信后对信的内容用Hash函数对信生成一段摘要,把这段摘要用 私钥C加密 后付在信的后面一起发给张三。

202403212040481535.png

张三:

  • 1、收到信后先用自己的私钥把信解出来,并用hash生成摘要
  • 2、用李四的公钥把摘要密文解出来,跟自己生成的摘要进行对比,如果一致则说明信没有被篡改过,而且可以肯定这封信就是李四写的。

由此可见,数字签名是利用信息摘要和非对称加密证明信息的完整性(没被篡改)和信息发送方的身份的一种技术。</

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值