关于数字证书和数字签名的一些认识

加密,本质上就是将一串明文,通过某种方式,转变成一串密文。

而加密中又有对称加密和非对称加密之分,其中非对称加密则是认识数字签名和数字证书的基础。

简单来说,非对称加密方式的原理是生成一对密钥对,包含公钥和私钥,在展现上可以理解成就是一串字符串,我们可以利用ssh keygen来生成这样的一对密钥,如下:


其生成对应的文件如下:


首先,看看私钥文件的内容,如下:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAtNJHVPDKM9r/ZaqT+2Df0FhQzUUZqIngrMG1mco4IhHIffpw
83rIzNQZVHD/H78bvgDhSGaTeZhB49CNVUrvILkl479RjmtsrTJHE1xUilNTDedv
M8ASkmkPdxuNYyKIO3aNM5Jo+uEF2G//V1eCJBqm9flvb9v2djAmeFMJRSB7/rQl
VbGqMkjdE+j5oTSu/IAB37y/72fPGt0eEvdksA2ByyYbv9KcU8AbSHrhSgSJbOyF
RLUJejTZnj5uSfjrcdxFVysaqaduPxwRBGqGpSPTtks99Rqp/QZH34dm/BwTeqiX
c1tva0c9z6Ap0P56d7xekyY8XWvWgQGeKd+VJQIBIwKCAQEAhlMQavwD7AHFCbHq
RbWtk3TOT1fnLL4x32tTtBKQGU8J9y8SE/TPrhnm7kVPznC1hdTEnC7xNcGQCFHI
E3l+cBSCi+01RTnbs9w0zI27JO1w5cHdlChIT4E+sEBaZuZz1GayCQ2tEiOAr2kk
FP8teefpvgnAfvssHUhXF44kJLfL8mq3bEkCQUk7XcYlnafgdsfNbYTb9IlHWDOq
TJtc/wQnqTeCFD+VuYWga6KGYjBFp4udZS0RBW8+Z5QdgPlITKlpvKhq86NdWFpl
UwbTgnPB1k8s2UezeVEkEADMLtdF8v4Fv0rM40ELbnlbw2UJxc9dw8BoEjrdQuG2
zRDTcwKBgQDbFTqoRs74ANCA+NRKu3V59Bl9rjJCObFtY11vGUo1P5HzheCAG8HL
xLHSHj1LzZDBPTo1C78ruyMn8YwUTxcn6GbFdPRMWJ1yFWnwkKl85Arj+Cwa9ol9
CZrY6WOCqwnsPDPcN9QkaMWeWTADt5c2KWMzQPao5rU9SuFLCZWMHwKBgQDTSode
wgpC2ZXHRDstfdNffDIqu6ZpTv2VXk3Tko1F8c6T9Swdw+KastpnXkVDC/e5MJ3B
RHRG1Uq2SKYK4PSnIkKsn1QW9V9NRnOEXJpPfcvg9j5mnv9slQgNL13lJbVJFOOz
fvFelYKtnMzIHDfeiP0ZaDZp1FOqb8kYH+52OwKBgFFfqBKd9RpJcgQEpp9qMvLI
YT1PVH7/fGp1XTfk0muMo+y8sni52kRfADgZ3EC6ETHU6bvua5PmbCTHboszUb5d
ooPa+6dUHTkAo7EfyeyPNz67Q5T8fDXBvSv+6nJcySvb2L+Cc137B5KWJ8bdynMz
8aVSpMJkUfIxwWUDj1FNAoGBAMc3pDTFlKVuEOBziEDVuKp8adCFCp3OIksBJM7M
AYsXMHzf2SNg65ksSkQ0T+7CJBUB89N7DovtrNfA1xGSRcInnfM3I2YajQ5YXkmZ
I8dKuOoMvn4DoF8QLCmwUTcjjatONcZ/ANWFpxi4aU72CMqBKSaVdSH0FF7ebSVf
73bJAoGBAIr8sYR/6zJex/oFoY5R/s2KfLZXglc7k5k9lsWNpWbCTP1A7UjlOEqw
wtK11oH4W5FDScTn//uGv6kehMgnHMIjZbacHhcJ0JF6Av2Utxl49CqYzSRerC0i
xOAEeVAAqSsO+zuprFb20wKCEqN290uz7SheRFZ81TYWoIJfYeeH
-----END RSA PRIVATE KEY-----

以.pub后缀的文件,我们就可以把其当估公钥,其内容如下:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtNJHVPDKM9r/ZaqT+2Df0FhQzUUZqIngrMG1mco4IhHIffpw83rIzNQZVHD/H78bvgDhSGaTeZhB49CNVUrvILkl479RjmtsrTJHE1xUilNTDedvM8ASkmkPdxuNYyKIO3aNM5Jo+uEF2G//V1eCJBqm9flvb9v2djAmeFMJRSB7/rQlVbGqMkjdE+j5oTSu/IAB37y/72fPGt0eEvdksA2ByyYbv9KcU8AbSHrhSgSJbOyFRLUJejTZnj5uSfjrcdxFVysaqaduPxwRBGqGpSPTtks99Rqp/QZH34dm/BwTeqiXc1tva0c9z6Ap0P56d7xekyY8XWvWgQGeKd+VJQ== sheepjtgjfc@163.com

以上这样由ssh keygen生产的公私钥,一般是用在由ssh机制登陆远程服务器中用的,比如Git的远程服务器上一般就会有一个SSH 公钥库来维持我们的公钥,利用这种非对称加密的机制来验证我们的身份了。

而验证身份其实就是验证签名,就相当于我们在某张纸上签了个名,别人要来证明这是我们签的一样。

现实中我们在纸上签名,那么在互联网通信过程中呢,那就是数字签名了。

数字签名

数字签名,其实就是拿我们的私钥对想要签名的内容进行加密的过程。

为什么数字签名能够在互联网中发挥作用呢?这是基于其两个特性。

1)防篡改

比如小明现在用自己的私钥将内容加密之后(签名),然后传给小红,小红可以用小明的公钥进行解密,从而看到内容。

而在这个过程中,虽然其他人也有可能拿到小明的公钥去解密数据,然后看到数据的内容,但是其没有办法将数据修改之后,再重新加密,然后送给小红,因为没有小明的私钥。

所以小明签名过的内容传给小红,就一定还是那些内容,没法篡改。

2)防抵赖

第二个问题就是,你一旦签了名,你就不能耍赖,不认账,为什么?

因为只要能用你的公钥来解来这数据,就说明这数据一定是用你的私钥来加密的,而私钥理论上来说,只有你一个人有,那么就一定是你用私钥来加密的,那么就是你签的名。

数字证书

从上面的情况来看,数字签名很靠谱,但是细心的人就会发现,小明的公钥去哪里拿?

让小明直接将公钥发给小红?那小红又怎么知道这是不是真的小明啊?面对面?直接用U盘?=_=!!!

那么只有找一个我们两方都信任的第三方机构来为我们作公证了,这个机构就是证书中心,也就是俗称的CA了。

小明如果去申请一个数字证书,那么证书里面会包含小明的自然信息,包括姓名呀,机构等等之类的,还有小明想要提供给别人验证的公钥,而最重要的是证书中心对这份证书的签名,这样我们才对验证这份证书的签名。

到这里,又出现一个矛盾了,我们又要去找谁来验证这份证书上的签名是不是证书中心的呀,解决方案是又再找一个第三方机构来对这个机构来颁发证书。。。。,于是就构成了证书链。

但是最后总会出现一个机构,我们没有办法来验证其真实有效性,我们只能去选择相信它,于是它就变成了根证书。

根证书就是那些不需要,也没办法去进行真伪验证的证书。

这个时候小红手上就有了小明的数字证书,它就能够对接收到的所谓小明的信息进行验证,如果验证通过了,那么就能证明是小明发送给它的,接下去,一起愉快的玩耍了。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字签名是一种用于验证和确保数字数据完整性、认证身份和防止篡改的技术。它基于公钥密码学的原理。数字签名使用私钥对数据进行加密生成签名,然后使用对应的公钥进行验证签名的有效性。 数字签名的过程包括以下步骤: 1. 生成密钥对:首先,需要生成一对密钥,包括一个私钥和一个公钥。私钥由签名者保留,公钥可以公开发布。 2. 数据签名:签名者使用私钥对要签名的数据进行加密生成签名。这个签名是唯一的,任何对数据进行篡改都会导致签名验证失败。 3. 签名验证:接收者使用签名者的公钥对接收到的数据和签名进行解密和验证。如果解密后的签名与解密后的数据匹配,说明数据完整且未被篡改。 数字证书是用于证明公钥的真实性和拥有者身份的电子文档。数字证书由权威机构(如数字证书颁发机构)颁发,其中包含公钥、证书持有者信息和颁发机构的数字签名数字证书的作用是确保公钥的合法性和信任,以及提供验证身份的方式。它可以用于安全通信、身份认证、数据完整性保护等多个领域。 在使用数字证书进行数字签名时,签名者的公钥会包含在数字证书中,接收者可以使用数字证书中的公钥对签名进行验证。数字证书数字签名可以保证证书的真实性和可靠性。 总结来说,数字签名是一种通过加密和解密技术,用于验证数据完整性和身份认证的方法。而数字证书则是一种包含公钥、身份信息和数字签名的电子文档,用于证明公钥的真实性和拥有者身份。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值