咱们常常会见到数字签名和数字证书的身影,比方拜访一些不安全的网站时,浏览器会提示,此网站的数字证书不可靠等。那么终究什么是数字签名和数字证书呢?本文就将经过一个场景深入浅出的介绍数字签名和数字证书的概念!
Bob有两个密钥,一个叫公钥PublicKey,一个叫私钥PrivateKey。
Bob的公钥是公之于众的,一切需求的人都能够取得公钥,但Bob的私钥是自己私有的。密钥用来加密信息,将一段能够了解阅览的明文信息,用密钥进行加密,变成一段‘乱码’。因而,只要持有正确密钥的人,才能重新将这段加密后的信息,也便是‘乱码’,恢复成能够了解阅览的实在信息。Bob的两个密钥,公钥和私钥都能够将信息进行加密,而且能用对应的密钥将信息解码,也便是说,假如用Bob的公钥将信息加密,那么能够而且只能够用Bob的私钥将信息解码,反之,假如用Bob的私钥将信息加密,那么能够且只能够用Bob的公钥将信息解码!
所以Bob就能够使用自己的公钥和私钥进行信息的加密传输!
比方,Susan想要和Bob进行通讯,考虑到信息的安全性,Susan能够使用Bob公之于众的公钥对所要传输的信息进行加密。这样,Bob收到信息后,就能够用自己的私钥对信息进行解码。假定此时有人窃取了Susan传给Bob的信息,可是因为没有Bob的私钥,无法对信息进行解码,所以即便窃取了信息,也无法阅览了解。
可是虽然黑客们无法解码Susan传给Bob的信息,却能够对信息进行篡改,损坏原有的信息,这样Bob收到被篡改的信息之后,再用自己的私钥进行解码,就会与Susan原本想要传达的信息出现不共同,这样也就相当于损坏了Susan和Bob的信息传输!学术上,咱们将这种行为称为损坏信息的完好性!通俗的说,便是我得不到的信息,你也别想得到!
所以,现在的问题便是,咱们怎样确保信息的完好性,也便是确保信息不被损坏,或许说,当信息被损坏之后,接收方能够辨认出,这个时分的信息是被损坏过的,就将其丢掉。
数字签名就能够解决上述的问题!根据数字签名,接收方接收到信息之后,能够判断信息是否被损坏过,假如没有被损坏,就能够正确的解码,假如被损坏,就直接丢掉。
数字签名能够确保对信息的任何篡改都能够被发现,然后确保信息传输进程中的完好性。
那么数字签名是怎样完成对完好性确保的呢?关键技能便是hash,也便是哈希技能。
首要,Bob先对即将传输的信息进行hash,得到一串绝无仅有的字符,一般把hash之后的内容称为信息摘要messagedigest。咱们都知道,hash往往是不可逆的,便是说,咱们无法根据hash后的内容推断出hash前的原文。一起,不同的原文,会形成不同的hash结果,而且结果的差异是巨大甚至毫无规则的。也便是说,对原文进行再纤细的修正,得到的hash后的内容都会与未经修正的原文的hash内容截然不同。这样就确保了黑客对原文的任何修正都会被发现!
Bob一起将hash后的信息摘要,用自己的私钥进行加密,这样就确保只要Bob的公钥才能对信息摘要进行正确的解码,这样就确保了信息摘要一定是来自Bob的,也便是起到了一个绝无仅有的签名的作用。
加密后的信息摘要实践便是数字签名的内容。
最终,Bob再将数字签名附加到原文信息的后边,这样就形成了一个完好的带数字签名的信息报文。
Bob将带数字签名的信息报文传输给Pat。
Pat接收到信息之后,先使用Bob的公钥对数字签名进行解码,得到信息摘要,假如成功解码,就阐明数字签名是来自Bob的,因为数字签名是Bob使用自己的私钥进行加密的,只要Bob的公钥能够进行解密。然后,Pat将信息原文进行hash得到自己hash的信息摘要,再与之前解码数字签名得到的信息摘要进行对比,假如相同,就阐明原文信息是完好的,没有被篡改,反之,则承认信息被损坏了。
好像现在,使用公钥和私钥以及数字签名,咱们能够确保信息传输进程中的私密性和完好性。但还存在一个问题,便是公钥分发的问题,咱们假如确保Bob的公钥被正确的分发给了Susan或许Pat等人呢?假定现在有一个中间人,他劫取了Bob发给Pat的公钥,然后私自假造了一个假的公钥并加上Bob的名字,发给了Pat,这样就导致Pat永远实践上便是在跟中间人通讯,和Bob也实践上在跟中间人通讯,但都以为在跟对方通讯。因而,现在的问题便是,Pat怎样承认收到的公钥真的是Bob的公钥,而不是别人假造的!
这个问题,其实能够类比一下实践生活中的问题。咱们知道,公钥和私钥是成对存在的,也便是一个人一般都有一对独有的公钥和私钥。就好像咱们每个人都有一个独有的身份证,咱们把公钥类比为实践中的身份证,当咱们在面临一个陌生人的时分,咱们为了信赖对方,一般能够查看对方的身份证,但此时就存在一个和上面中间人问题相同的缝隙,便是万一对方给的身份证是一个假的假造的身份证呢?也便是万一对方给的是一个假的公钥呢?咱们怎样辨认真伪?实践中,咱们往往会有一个身份证真伪的辨认器,一般公安局等组织会有,也便是咱们能够使用身份证真伪的辨认器承认这个身份证的真假。咱们细心考虑这个机制,实践上便是引入了一个独立的第三方机制,国家作为一个独立的第三方,给咱们每个人创建了一个身份证,当咱们需求验证身份证的真伪的时分,咱们只需求找这个独立的第三方提供的真伪辨别服务就能够验证身份证的真伪。
所以,相似的咱们解决公钥分发问题的思路也便是引入一个独立的威望的第三方组织。
假定现在有一个数字证书的威望认证中心,这个中心会给Bob创建一个数字证书,这个数字证书包含了Bob的一些信息以及Bob的公钥。
那么,此时,想要跟Bob进行通讯的人,就能够查看Bob的数字证书,然后向威望的数字证书的认证中心,去认证这是不是实在的Bob的数字证书,假如是,就能够从数字证书中获取到Bob的公钥,然后进行安全的通讯。一起,就像实践生活中相同,咱们不论进行任何涉及到资金或许安全问题的时分,都需求出示自己的身份证,而且对方会验证你的身份证的真假,也便是说,一个持有假身份证的人,或许没有身份信息的人是获取不了别人的信赖的。同理,在网络通讯中,假如在数字证书的认证中心中查询不到信息,那么就阐明这样的通讯方是不安全的,是不值得信赖的!另一方面,数字证书除了解决了公钥分发和身份认证的问题,还加强了安全性。
详细的使用数字证书的通讯进程如下:
Bob想要和Pat进行通讯,首要就要奉告Pat自己的公钥,Bob先向Pat发送自己的数字证书,Pat收到数字证书后,会向威望的数字证书认证中心进行认证,承认是否是Bob的数字证书。(这个认证的进程,实践上也是经过公钥和私钥的机制,Pat会根据数字证书的类别,查找发布这个数字证书的中心的公钥,然后用相应的公钥对证书进行家解码,假如能正确解码则阐明这个数字证书确实是此中心公布的,然后根据解码后的信息验证是否是Bob的数字证书,最终从解码后的信息中,获取Bob的公钥)。
然后,Pat能够使用Bob的公钥对Bob的数字签名进行解码,验证是否是Bob的数字签名,假如能正确解码,就阐明数字签名是由Bob的私钥进行加密的。然后就进行完好性的验证,将信息原文进行hash,得到信息摘要,并与数字签名解码后得到的信息摘要进行对比,假如共同,就阐明信息是完好的没有被篡改的!
上述的公钥分发和数字签名验证的进程好像很复杂,但实践上,就跟咱们验证身份证真伪相同,咱们一般有一个辨认器,只要将身份证放上去就能够得到结果,后边的实践进程往往不需求咱们关心,网络通讯中也是如此,往往会提供一个友好的用户接口,想要验证数字签名或许数字证书,其实就类似于咱们点击一下按钮相同简单!,
Tips:本站所有资源均收集自互联网,分享目的仅供学习参考,资源版权归该资源的合法拥有者所有。
Tips:若本站所发布的资源侵犯到您的合法权益,请及时联系 hqteam@qq.com 删除!
暂无评论内容