Java - 数字签名与数字证书

发布时间:2024年01月24日

在这里插入图片描述

概述

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钥匙公开出去则叫公钥。公钥可以复制多把给很多人用。

在这里插入图片描述

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

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

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


数字签名

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

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

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

在这里插入图片描述

举个例子:

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

在这里插入图片描述

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

  • 1、这封信的内容怎么证明没有被篡改过?

  • 2、怎么证明这个信是李四写的,难道不是别人冒充的?

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

主要步骤如下:

李四:

  • 1、李四生成一对密钥C和D,C作为私钥留给自己,D作为公钥给张三

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

在这里插入图片描述

张三:

  • 1、收到信后先用自己的私钥把信解出来,并用hash生成摘要

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

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


数字证书

数字证书是一种用于验证网络通信中各方身份信息的电子文档,也称为数字标识。它是由权威的第三方机构(CA)颁发的,通常采用国际标准X.509格式。数字证书中包含了一系列关于证书所有人的信息,如姓名、公钥、有效期等,以及CA的签名。

数字证书基于密码学原理,利用数字签名、加密、解密等技术,在Internet上建立起有效的信任机制。其主要功能包括:在网络通信中标识通讯各方身份信息;对网络用户在计算机网络交流中的信息和数据进行加密或解密,保证信息和数据的完整性和安全性。

数字证书的格式遵循ITUTX.509国际标准,包含证书版本信息、序列号、签名算法、发行机构名称、有效期、证书所有人名称、公开密钥等信息。用户在浏览网络数据信息或进行网上交易时,可以利用数字证书保障信息传输及交易的安全性。

数字证书是目前国际上最成熟并得到广泛应用的信息安全技术之一。通过数字证书,可以在网络上建立起可信的虚拟世界,保障网络通信的安全性。


继续上面的案例 :

王五想冒充李四给张三写封信,他偷偷拿了张三的电脑,把里面李四的公钥D换成他自己的,然后用自己的私钥对信件摘要加密,用张三的公钥B对信件内容加密。把这封冒牌信发给张三。

怎么解决这种偷梁换柱的问题呢?张三只要证明李四给的公钥就是李四本人的就行。张三要求李四拿他的公钥去公证处做一下公证,然后将公钥以数字证书的形式发给张三。


根证书

根证书是数字证书的一种,也称为根CA证书或根CA证书颁发机构。根证书是数字证书体系的基础,它是全球数字证书体系的层次。根证书的作用是验证其他数字证书的真伪,从而确保安全通信的可靠性。

根证书由全球的数字证书颁发机构(CA)发行,例如Symantec、DigiCert、Comodo等。数字证书颁发机构通过签名和验证数字证书,为网络通信提供了一定的安全保障。数字证书颁发机构颁发的证书,都被数字签名,并被公钥体系结构加密,以确保其完整性和真实性。

根证书的作用是建立信任链,确保用户与网站或服务之间的通信是安全和可信的。当用户访问一个使用SSL/TLS协议的网站时,浏览器会查看该网站的证书是否由受信任的根证书颁发机构签名。如果该网站的证书是由受信任的根证书颁发机构签名,那么浏览器就会认为该网站是安全的,并允许用户与该网站进行加密通信。

根证书的安装意味着对这个CA认证中心的信任。从技术上讲,数字证书其实包含三部分,用户的信息、用户的公钥、还有CA中心对该证书里面的信息的签名。也就是说,用户在使用自己的数字证书之前必须先下载根证书。



申请ca证书


完整流程

小结

文章来源:https://blog.csdn.net/yangshangwei/article/details/135825316
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。