--------------------------- 摘要 数字签名 数字证书

用户A:

  A_privateKey

  A_publicKey

李四: 拥有A_publicKey

王五: 拥有A_publicKey

示例1:

 王五给用户A写信, 写完后用用户A的公钥加密, 然后发给用户A。

 用户A收到加密信件后,用私钥解密,看到信件内容。

示例2:

 用户A给王五回信,写完后用户Hash函数(MD5/sh1)生成信件摘要(digest),然后通过私钥给摘要进行加密生成数字签名(signature).

 将签名和信件一起发给王五.

 王五收到信件和签名后,用用户 A的公钥对签名解密得到摘要(digest),从而证明是用户A发的信件.

 王五再对信件内容进行Hash函数再与摘要对比,一致说明信件内容未被篡改。

示例3:

 李四为了欺骗王五,偷偷将王五保存的公钥A_publicKey 换成李四_publicKey,然后冒充用户A给王五回信.

 李四通过Hash函数MD5(信件内容)生成摘要,然后通过李四_private私钥进行对摘要加密生成数字签名,最后将数字签名和信件一起发给王五.

 王五收到后通过李四公钥对数字签名进行解密得到摘要,然后通过Hash函数MD5(信件内容)比对摘要一致性,说明信件内容未被篡改。

 其实是完美欺骗,怎么解决?

 

示例4:

 由于王五无法确认自己的公钥是用户A还是李四的,所以上当受骗,王五有个办法分辨:

 让用户A找CA中心申请一个CA证书,CA证书中心用自己的私钥,对用户A的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)

 从此以后用户A给王五回信时,除了数字签名还附上数字证书(CA公钥),王五收到数字证书(CA公钥)后通过CA公钥解开证书得到用户A的公钥,对比拥有的公钥辨别是否是用户A的公钥。

总结:

(1)信息 + HASH = 摘要    摘要 + 私钥 = 数字签名(给收方做对比用的,验证收发内容是否一致)

(2)公钥 + 相关信息 + CA私钥 = 数字证书(验证发送者是否正确,是可信任的公钥)

对摘要Hash函数: MD5、SHA1、SHA256、SHA512

------------------- Hash函数、加密

Hash函数(散列算法):单向不可逆

 MD5、SHA1、SHA256、SHA512、md4、CRC-32

对称加密: 加密和解密使用同一个密钥,特点:速度快,适用数据加密

 DES、3DES、AES

非对称加密: 加密和解密使用不同密钥(私钥和公钥),特点: 由于计算量大至速度慢,但是安全,适用数字签名及数据量小

 RSA、DSA、ECC

国密:

 中国国家标准的密码算法,国家密码管理局认定.

   SM2:基于椭圆曲线密码学的非对称加密算法,类似于国际上的ECDSA。-> 非对称加密

   SM3:一种密码散列函数,设计上与SHA-256类似。--------------->  Hash函数

   SM4:一种对称密钥加密算法,类似于AES,用于数据加密。--------->  对称加密

   SM9:也是一种基于标识的加密算法。------------------------->  非对称加密

------------------- https 传输

Web服务器的https的SSL/TLS证书:   协议版本: TLSv1.2 TLSv1.3;

  先SSL/TLS握手通过非对称加密算法,再传输数据通过对称加密算法.

  一句话: SSL/TLS证书使用非对称加密算法来安全地交换密钥进行握手,然后通过对称加密算法进行数据传输保证效率。

  注: 非对称采用公钥加密,私钥解密。

      指定了协议版本,服务器将只接受使用TLSv1.2和TLSv1.3版本的连接。

------------------ OpenSSH 和 OpenSSL

OpenSSH 是使用 SSH 协议进行远程登录的连接工具。OpenSSH 提供了大量的安全隧道功能、多种身份验证方法和复杂的配置选项。

       包含组件如: ssh、scp、sftp、sshd、ssh-keygen产生RSA或ECDSA密钥,用来认证用。

OpenSSL 包含众多加解密算法,在 1.1.1 版本后支持了国密算法SM2、SM3以及SM4。

查看版本: ssh -V

 OpenSSH_9.4p1, OpenSSL 1.1.1k  FIPS 25 Mar 2021

OpenSSH是一个网络协议,用于提供安全的数据传输。SSH的主要功能包括:

   安全远程登录:允许用户通过加密的方式远程登录到服务器。

   远程命令执行:在远程服务器上安全地执行命令。

   文件传输:通过SCP(Secure Copy Protocol)或SFTP(SSH File Transfer Protocol)安全地传输文件。

   端口转发:通过SSH隧道实现端口转发,增强安全性。

   X11转发:允许远程显示图形界面。

OpenSSL是一个开源的加密工具包,提供了一个广泛的加密库,包括以下功能: 加密工具

   加密算法:提供包括对称加密和非对称加密在内的多种加密算法。

   证书管理:用于生成、管理和验证X.509证书。

   SSL/TLS协议:支持SSL和TLS协议的实现,用于安全通信。

   密码生成:可以生成安全的随机密码。

   加密文件:能够加密和解密文件。

   密钥管理:生成、存储和管理密钥。