数字签名和数字证书究竟是什么?

我们经常会见到数字签名和数字证书的身影,比如访问一些不安全的网站时,浏览器会提示,此网站的数字证书不可靠等。那么究竟什么是数字签名和数字证书呢?本文就将通过一个场景深入浅出的介绍数字签名和数字证书的概念!

Bob有两个密钥,一个叫公钥Public Key,一个叫私钥Private Key。


image.png

Bob的公钥是公之于众的,所有需要的人都可以获得公钥,但Bob的私钥是自己私有的。密钥用来加密信息,将一段可以理解阅读的明文信息,用密钥进行加密,变成一段‘乱码’。因此,只有持有正确密钥的人,才能重新将这段加密后的信息,也就是‘乱码’,恢复成可以理解阅读的真实信息。Bob的两个密钥,公钥和私钥都可以将信息进行加密,并且能用对应的密钥将信息解码,也就是说,如果用Bob的公钥将信息加密,那么可以并且只可以用Bob的私钥将信息解码,反之,如果用Bob的私钥将信息加密,那么可以且只可以用Bob的公钥将信息解码!

image.png

所以Bob就可以利用自己的公钥和私钥进行信息的加密传输!

比如,Susan想要和Bob进行通信,考虑到信息的安全性,Susan可以利用Bob公之于众的公钥对所要传输的信息进行加密。这样,Bob收到信息后,就可以用自己的私钥对信息进行解码。假设此时有人窃取了Susan传给Bob的信息,但是由于没有Bob的私钥,无法对信息进行解码,所以即使窃取了信息,也无法阅读理解。

image.png

但是虽然黑客们无法解码Susan传给Bob的信息,却可以对信息进行篡改,破坏原有的信息,这样Bob收到被篡改的信息之后,再用自己的私钥进行解码,就会与Susan本来想要传达的信息出现不一致,这样也就相当于破坏了Susan和Bob的信息传输!学术上,我们将这种行为称为破坏信息的完整性!通俗的说,就是我得不到的信息,你也别想得到!

所以,现在的问题就是,我们如何保证信息的完整性,也就是保证信息不被破坏,或者说,当信息被破坏之后,接收方可以识别出,这个时候的信息是被破坏过的,就将其丢弃。

数字签名就可以解决上述的问题!根据数字签名,接收方接收到信息之后,可以判断信息是否被破坏过,如果没有被破坏,就可以正确的解码,如果被破坏,就直接丢弃。

数字签名可以保证对信息的任何篡改都可以被发现,从而保证信息传输过程中的完整性。

那么数字签名是如何实现对完整性保证的呢?关键技术就是hash,也就是哈希技术。

image.png

首先,Bob先对将要传输的信息进行hash,得到一串独一无二的字符,通常把hash之后的内容称为信息摘要message digest。我们都知道,hash往往是不可逆的,就是说,我们无法根据hash后的内容推断出hash前的原文。同时,不同的原文,会造成不同的hash结果,并且结果的差异是巨大甚至毫无规律的。也就是说,对原文进行再细微的修改,得到的hash后的内容都会与未经修改的原文的hash内容大相径庭。这样就保证了黑客对原文的任何修改都会被发现!

Bob同时将hash后的信息摘要,用自己的私钥进行加密,这样就保证只有Bob的公钥才能对信息摘要进行正确的解码,这样就保证了信息摘要一定是来自Bob的,也就是起到了一个独一无二的签名的作用。
加密后的信息摘要实际就是数字签名的内容。

image.png

最后,Bob再将数字签名附加到原文信息的后面,这样就形成了一个完整的带数字签名的信息报文。

image.png

Bob将带数字签名的信息报文传输给Pat。

Pat接收到信息之后,先利用Bob的公钥对数字签名进行解码,得到信息摘要,如果成功解码,就说明数字签名是来自Bob的,因为数字签名是Bob利用自己的私钥进行加密的,只有Bob的公钥可以进行解密。然后,Pat将信息原文进行hash得到自己hash的信息摘要,再与之前解码数字签名得到的信息摘要进行对比,如果相同,就说明原文信息是完整的,没有被篡改,反之,则确认信息被破坏了。

image.png

似乎现在,利用公钥和私钥以及数字签名,我们可以保证信息传输过程中的私密性和完整性。但还存在一个问题,就是公钥分发的问题,我们如果保证Bob的公钥被正确的分发给了Susan或者Pat等人呢?假设现在有一个中间人,他劫取了Bob发给Pat的公钥,然后私自伪造了一个假的公钥并加上Bob的名字,发给了Pat,这样就导致Pat永远实际上就是在跟中间人通信,和Bob也实际上在跟中间人通信,但都以为在跟对方通信。因此,现在的问题就是,Pat如何确认收到的公钥真的是Bob的公钥,而不是别人伪造的!

这个问题,其实可以类比一下现实生活中的问题。我们知道,公钥和私钥是成对存在的,也就是一个人一般都有一对独有的公钥和私钥。就好像我们每个人都有一个独有的身份证,我们把公钥类比为现实中的身份证,当我们在面对一个陌生人的时候,我们为了信任对方,一般可以查看对方的身份证,但此时就存在一个和上面中间人问题一样的漏洞,就是万一对方给的身份证是一个假的伪造的身份证呢?也就是万一对方给的是一个假的公钥呢?我们怎么识别真伪?现实中,我们往往会有一个身份证真伪的识别器,一般公安局等机构会有,也就是我们可以利用身份证真伪的识别器确认这个身份证的真假。我们仔细思考这个机制,实际上就是引入了一个独立的第三方机制,国家作为一个独立的第三方,给我们每个人创建了一个身份证,当我们需要验证身份证的真伪的时候,我们只需要找这个独立的第三方提供的真伪鉴别服务就可以验证身份证的真伪。

所以,相似的我们解决公钥分发问题的思路也就是引入一个独立的权威的第三方机构。

假设现在有一个数字证书的权威认证中心,这个中心会给Bob创建一个数字证书,这个数字证书包括了Bob的一些信息以及Bob的公钥。

image.png

那么,此时,想要跟Bob进行通信的人,就可以检查Bob的数字证书,然后向权威的数字证书的认证中心,去认证这是不是真实的Bob的数字证书,如果是,就可以从数字证书中获取到Bob的公钥,然后进行安全的通信。同时,就像现实生活中一样,我们不管进行任何涉及到资金或者安全问题的时候,都需要出示自己的身份证,并且对方会验证你的身份证的真假,也就是说,一个持有假身份证的人,或者没有身份信息的人是获取不了他人的信任的。同理,在网络通信中,如果在数字证书的认证中心中查询不到信息,那么就说明这样的通信方是不安全的,是不值得信任的!另一方面,数字证书除了解决了公钥分发和身份认证的问题,还加强了安全性。

详细的利用数字证书的通信过程如下:

Bob想要和Pat进行通信,首先就要告知Pat自己的公钥,Bob先向Pat发送自己的数字证书,Pat收到数字证书后,会向权威的数字证书认证中心进行认证,确认是否是Bob的数字证书。(这个认证的过程,实际上也是通过公钥和私钥的机制,Pat会根据数字证书的类别,查找发布这个数字证书的中心的公钥,然后用相应的公钥对证书进行家解码,如果能正确解码则说明这个数字证书确实是此中心颁布的,然后根据解码后的信息验证是否是Bob的数字证书,最后从解码后的信息中,获取Bob的公钥)。
然后,Pat可以利用Bob的公钥对Bob的数字签名进行解码,验证是否是Bob的数字签名,如果能正确解码,就说明数字签名是由Bob的私钥进行加密的。然后就进行完整性的验证,将信息原文进行hash,得到信息摘要,并与数字签名解码后得到的信息摘要进行对比,如果一致,就说明信息是完整的没有被篡改的!

image.png

上述的公钥分发和数字签名验证的过程似乎很复杂,但实际上,就跟我们验证身份证真伪一样,我们通常有一个识别器,只要将身份证放上去就可以得到结果,后面的实际过程往往不需要我们关心,网络通信中也是如此,往往会提供一个友好的用户接口,想要验证数字签名或者数字证书,其实就类似于我们点击一下按钮一样简单!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容