对称加密、非对称加密、摘要、数字签名、数字证书

作为一个开发人员,或多或少都听说过对称加密、非对称加密、摘要、数字签名、数字证书这几个概念,它们是用来保证在互联网通信过程中数据传输安全的。有人可能会有疑惑,我给传输数据加个密不就安全了,为什么还要搞这么多花样出来?本文主要通过一个案例来讲解这几个概念的实际作用。

在此之前,我先简单介绍一下这几个概念。

1.名词解释

对称加密

对称加密是指用来加密和解密的是同一个秘钥。其特点是加密速度快,但是秘钥容易被黑客截获,所以安全性不高。常见的有AES、DES算法。

非对称加密

非对称加密是指用来加密和解密的是不同的秘钥,它们是成对出现的,称为公钥和私钥,知道其中一个秘钥是无法推导出另外一个秘钥的。用公钥加密的内容需要用私钥才能解密,用私钥加密的内容需要用公钥才能解密。非对称加密的特点是安全性高,缺点是加密速度慢。常见的有RSA算法。

摘要

所谓的摘要就是一段信息或者一个文件通过某个哈希算法(也叫摘要算法)而得到的一串字符。摘要算法的特点就是不同的文件计算出的摘要是不同的(也有可能相同,但是可能性非常非常低),比如一个1G的视频文件,哪怕只是改动其中一个字节,最后计算得到的摘要也是完全不同的,所以摘要算法通常是用来判断文件是否被篡改过。其还有一个特点就是通过摘要是无法推导出源文件的信息的。常用的摘要算法有MD5、SHA等。

数字签名

数字签名就是一个文件的摘要加密后的信息。数字签名是和源文件一起发送给接收方的,接收方收到后对文件用摘要算法算出一个摘要,然后和数字签名中的摘要进行比对,两者不一致的话说明文件被篡改了。

数字证书

数字证书是一个经证书授权中心生成的文件,数字证书里一般会包含公钥、公钥拥有者名称、CA的数字签名、有效期、授权中心名称、证书序列号等信息。其中CA的数字签名是验证证书是否被篡改的关键,它其实就是对证书里面除了CA的数字签名以外的内容进行摘要算法得到一个摘要,然后CA机构用他自己的私钥对这个摘要进行加密就生成了CA的数字签名,CA机构会公开它的公钥,验证证书时就是用这个公钥解密CA的数字签名,然后用来验证证书是否被篡改。

2.案例讲解

场景:

张三要找人装修一个房子,原则是谁的出价便宜就给谁装修,所以对于报价文件就是属于机密文件。下面我们来看下不同的方式传输报价文件都会有什么风险。

2.1 通过对称加密有什么风险

现在李四想接这个装修的活,他做了一份报价文件(文件名:lisi.txt,文件内容:报价50万)。然后李四用一个对称秘钥123对这个文件进行加密。最后李四将这个秘钥和加密的文件发给张三,张三收到后用这个秘钥解密,知道了李四的报价是50万。

同时王五也想接这个装修的活,他本来是想报价55万的,但是又担心报价太高而丢掉这个活。恰巧王五是个黑客高手,于是他截获了李四发给张三的秘钥和加密文件,知道了李四报价是50万。最后王五将自己的报价改成了49万发给张三,结果王五接下了这个装修活。

结论:
用对称加密的话,一旦秘钥被黑客截获,加密就形同虚设,所以安全性比较低。

2.2 如果用非对称加密会怎么样

首先张三会生成一对秘钥,私钥是zhangsan1,公钥是zhangsan2,私钥张三自己保存,将公钥公布出去。

李四将报价文件list.txt用张三公布的公钥zhangsan2进行加密后传给张三,然后张三用私钥zhangsan1进行解密得到李四的报价是50万。

这个时候即使王五截获到了李四发给张三的报价文件,由于王五没有张三的私钥,所以他是无法解密文件的,也就无法知道李四的报价。最后王五因为报价55万而丢掉了这个装修的机会。

所以用非对称加密是可以保证数据传输安全的。不过这里说一句题外话,既然非对称加密安全性高,那为什么不淘汰掉对称加密呢?其实关键就在于加密速度,非对称加密计算量很大,所以加密速度是很慢的,如果发送消息非常频繁,使用非对称加密的话就会对性能造成很大影响。所以在实际开发过程中通常是对称加密和非对称加密结合使用的。也就是对称加密的秘钥是用非对称加密后发送的,这样能保证对称加密的秘钥不被黑客截获,然后在发送业务数据时就用对称加密。这样既保证了安全性也保证了加密速度。

结论:
非对称加密可以防止黑客截获加密后的内容,安全性高。

2.3 数字签名有什么用

前面都说了非对称加密是安全的,那为什么还要数字签名呢?

设想一下,王五截获了李四的报价文件,王五虽然无法知道李四的实际报价,但是他完全可以伪造一份李四的报价(文件名:lisi.txt,文件内容:报价60万),然后将这份伪造文件用张三公布的公钥zhangsan2进行加密后替换原来的报价文件。张三收到后解密发现报价是60万,于是张三就以为李四报的价是60万,最后决定将装修的活给报价55万的王五来做。

发生这个问题的关键就在于张三无法知道报价文件是否被篡改过。要解决这个问题就需要用到数字签名。

首先李四需要自己生成一对非对称加密的秘钥,私钥lisi1自己保存,公钥lisi2发给张三。然后李四对自己的报价文件通过摘要算法得到一个摘要(假设摘要是aaa),再用自己的私钥lisi1加密这个摘要就得到了报价文件的数字签名,最后将加密的报价文件和数字签名一起发给张三,张三收到后先用李四发过来的公钥lisi2解密数字签名得到摘要aaa,然后用自己的私钥zhangsan1解密加密的文件得到报价源文件,然后对报价源文件进行摘要算法,看计算得到的结果是不是aaa,如果不是aaa的话就说明报价文件被篡改了。

在这种情况下,如果王五截获了李四发给张三的文件。王五是无法解密报价文件的。如果王五伪造一份报价文件的话,等张三收到后就会发现报价文件和数字签名不匹配。那王五能不能伪造报价文件的同时也伪造签名呢?因为王五没有李四的私钥,所以没法对伪造的报价文件的摘要进行加密,所以也就没法伪造签名。

结论:
非对称加密虽然能确保加密文件内容不被窃取,但不能保证文件不被篡改。数字签名就是用来验证文件是否被篡改过。

2.4 数字证书有什么用

既然非对称加密可以保证文件内容的安全性,数字签名又可以保证文件不被篡改,那还要数字证书有什么用呢?

我们再来设想一下,王五自己也生成了一对用于非对称加密的秘钥,私钥是wangwu1,公钥是wangwu2。前面李四将自己的公钥lisi2发给张三的过程中被王五给截获了,王五用自己的公钥wangwu2替换了李四的公钥lisi2,所以张三最后收到的公钥实际上是王五的,但张三对这并不知情。后面李四发的数字签名和加密的报价文件都被王五截获,并且王五伪造了一份报价文件,同时用自己的私钥加密报价文件的摘要生成伪造的签名并发给张三,张三收到后进行验证发现数字签名和报价文件是匹配的,就以为这份报价文件是真实的。

出现这个问题的关键就在于张三没法确认收到的公钥到底是不是李四发的,这个时候数字证书就起到作用了。李四到权威的数字证书机构申请数字证书,证书里面包含了公钥(lisi2)和公钥的拥有者(李四)等相关信息,然后李四将证书发给张三,张三通过证书里面的信息就可以知道公钥到底是不是李四的了。

那证书在发送过程中有没有可能被王五截获并篡改呢?要知道证书里面还包含CA的数字签名,这个签名是证书机构用他们自己的私钥对证书的摘要进行加密的,而公钥是公开的。所以即便王五截获并篡改了证书内容,他也无法伪造证书机构的签名,张三在收到证书后通过验证签名也会发现证书被篡改了。所以到这一步才能保证数据传输的真正安全。

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