加密、签名、证书的作用及运用场景

本文主要是简单介绍了常见的加密类型、各自的运用场景、为什么需要数字签名和数字证书、HTTPS涉及到的加密流程等。这里主要从使用者的角度出发,对算法本身不做过多介绍。

对称/非对称加密均属于 可逆加密,可以通过密钥将密文还原为明文

有时候,我们希望明文一旦加密后,任何人(包括自己)都无法通过密文逆推回明文,不可逆加密就是为了满足这种需求。
不可逆加密主要通过 hash算法实现:即对目标数据生成一段特定长度hash值 ;无论你的数据是1KB、1MB、1GB,都是生成特定长度的一个Hash值(比如128bit)。这里大家应该能感受到一点 不可逆 的味道,加密后128bit的hash值显然无法还原出1个G甚至更大的不规则数据的, hash可以看做是原来内容的一个摘要

常见算法:

小明给小红写信:

经过九转十八弯后,信的内容有可能:1. 被窥视 2. 被篡改(冒充小明发送假消息)

小红先 生成对称加密的密钥key1 ,然后通过一个安全的渠道交予小明。
传输数据时,小明 使用key1加密 ,而小红收到后再 使用key1解密
这时候 中间者既看不到原来的内容,也没办法篡改 (因为没有密钥):

【对称加密】实现简单,性能优秀 ,算法本身安全级别高。然而对 密钥的管理 却是个很头疼的问题:一旦密钥交到对方手里,对方对密钥的保管能力 我方是没办法控制 的,一旦对方泄露的话,加密就形同虚设了。
相对而言,【非对称加密】的公钥就没有这个忧虑,因为 公钥 的设计就是为了 可以公开的 ,尽管对方泄露,我方也不会有任何损失。

小红生成一对公私钥,自己持有私钥(pri_key1),将公钥(pub_key1)交予小明。
传输数据时,小明使用 公钥加密 ,小红使用 私钥解密
因为 中间者没有私钥,公钥加密的内容是无法获取的 。此时达到了 防窥视 的效果:

然而因为 公钥是可以公开的 ,如果 中间者知晓公钥 的话,尽管没有办法看到原来的内容,却 可以冒充小明发送假消息

这时小红在想,如果小明发送消息时,能带上 只有他自己才能生成 的数据(字符串),我就能 验证是不是小明发的真实消息 了。
通常这个 能证实身份的数据(字符串) 被称之为 数字签名(Signature)

小明再生成一对公私钥 ,自己持有私钥(pri_key2),将公钥交予小红(pub_key2)。

当小明传输数据时(可能很大),除了公钥加密明文之外,还要带上签名:(1) 对明文做一个hash摘要 (2)对摘要进行私钥加密,加密结果即签名(传输内容=内容密文+签名)

小红收到后:(1) 解密签名获取hash (2)解密内容密文,对解密后的明文进行hash;如果两个hash一致,说明验签通过。

尽管中间者修改了传输内容,但因为签名无法冒认(没有私钥),小红验签失败,自然不会认可这份数据:

通常 非对称加密要做到防窥视和防篡改,需要有两对公私钥 :对方的公钥用于内容加密,自己的私钥用于签名(让对方验证身份)。

因为HTTP协议明文通信的安全问题,引入了HTTPS:通过建立一个安全通道(连接),来保证数据传输的安全。

服务器是 没办法直接将密钥传输到浏览器的 ,因为在 安全连接建立之前,所有通信内容都是明文的 ,中间者可窥视到密钥信息。
或许这时你想到了非对称加密,因为公钥是不怕公开的:

然而在第2步, 中间者可以截取服务器公钥,并替换成了自己的公钥 ,此时加密就没意义了:

为了 防止公钥被假冒,数字证书(digital certificate )便诞生了

当服务器需要告诉浏览器公钥时,并不是简单地返回公钥,而是响应 包含公钥信息在内的数字证书

证书主要包含以下内容:

浏览器通过 【颁发机构的公钥】进行解密验签 ,验签通过即说明证书的真实性,可以放心取 证书拥有者的公钥 了。( 常用CA机构的公钥都已经植入到浏览器里面

数字证书只做一件事: 保证 服务器响应的 公钥是真实的

以上保证了 [浏览器⇒服务器] 是加密的,然而 [服务器⇒浏览器] 却没有(上图第4步);另外一个是 性能问题 ,如果所有数据都使用非对称加密的话,会消耗较多的服务器资源,通信速度也会受到较大影响。
HTTPS巧妙地结合了非对称加密和对称加密,在保证双方通信安全的前提下,尽量提升性能。

HTTPS(SSL/TLS)期望 建立安全连接后,通信均使用【对称加密】
建立安全连接的任务就是让 浏览器-服务器协商出本次连接使用的【对称加密的算法和密钥】 ;协商过程中会使用到【非对称加密】和数字证书。

特别注意的是:协商的密钥必须是不容易猜到(足够随机的):

其中比较核心的是随机数r3(pre-master secret),因为之前的r1、r2都是明文传输的, 只有r3是加密传输 的。至于为什么需要三个随机数,可以参考:

以上是一个比较简单的HTTPS流程,详细的可以参考文末的引用。

参考资料:
[1] 数字证书应用综合揭秘
[2] SSL/TLS协议运行机制的概述
[3] 图解SSL/TLS协议
[4] 《图解HTTP》



  • 鍔犲瘑銆绛惧悕銆璇佷功鐨勪綔鐢ㄥ強杩愮敤鍦烘櫙
    绛旓細娴忚鍣ㄩ氳繃 銆愰鍙戞満鏋勭殑鍏挜銆戣繘琛岃В瀵嗛獙绛 锛岄獙绛鹃氳繃鍗宠鏄庤瘉涔︾殑鐪熷疄鎬э紝鍙互鏀惧績鍙 璇佷功鎷ユ湁鑰呯殑鍏挜 浜銆傦紙 甯哥敤CA鏈烘瀯鐨勫叕閽ラ兘宸茬粡妞嶅叆鍒版祻瑙堝櫒閲岄潰 锛夋暟瀛楄瘉涔﹀彧鍋氫竴浠朵簨锛 淇濊瘉 鏈嶅姟鍣ㄥ搷搴旂殑 鍏挜鏄湡瀹炵殑 銆備互涓婁繚璇佷簡 [娴忚鍣⇒鏈嶅姟鍣╙ 鏄姞瀵嗙殑锛岀劧鑰 [鏈嶅姟鍣⇒娴忚鍣╙ ...
  • 鐢靛瓙鎷涙姇鏍囨暟瀛璇佷功鍙鐢靛瓙绛剧珷 (CA涓撶敤閿) 鏈変粈涔堜綔鐢?
    绛旓細CA鏁板瓧璇佷功鍙互涓烘嫑鎶曟爣鍙屾柟瀹夊叏閫氫俊鎻愪緵鐢靛瓙璁よ瘉锛屼娇鐢ㄧ數瀛愮绔犱繚闅滅數瀛愭嫑鎶曟爣鏂囦欢鐨勭湡瀹炴у拰瀹屾暣鎬э紝鑳藉瀹炵幇韬唤璇嗗埆鍜岀數瀛愪俊鎭姞瀵锛岄氳繃楠岃瘉璇嗗埆淇℃伅鐨勭湡浼疄鐜板璇佷功鎸佹湁鑰呰韩浠借繘琛岃璇併俓x0d\x0a鍏跺叿鎷涙姇鏍囧姛鑳芥с佸姞瀵嗘с佽璇佹с佸畬鏁存с佸悎娉曟т簬涓韬紝鏃㈣兘绠鍖栫敤鎴锋搷浣滐紝鍒╀簬鎶曟爣浜洪檷浣庢垚鏈锛屽悓...
  • 涓鏂囧紕鎳傚叧浜璇佷功,绛惧悕,ssl,android鍖呯鍚嶆満鍒躲
    绛旓細鑰屽疄鐜拌繖涓繃绋嬬殑鍏抽敭鏁版嵁妯″瀷灏辨槸璇佷功, 閫氳繃璇佷功涓殑ca瀵硅瘉涔︾殑绛惧悕,瀹炵幇浜嗚韩浠介獙璇,閫氳繃璇佷功涓殑鍏挜,瀹炵幇瀵瑰绉扮閽ュ姞瀵,浠庤屽疄鐜版暟鎹繚瀵銆 鍏跺疄杩橀『鎵嬪仛浜嗕竴浠朵簨鎯呭氨鏄氳繃瑙e瘑绛惧悕姣斿hash,淇濊瘉浜嗘暟鎹畬鏁存с 鏄庣櫧ssl鍗忚 棣栧厛鏄庣櫧鍑犱釜閲嶈鐨勬蹇: 璇佷功: 椤惧悕鎬濅箟灏辨槸鎻愪緵浜嗕竴绉嶅湪Internet涓婇獙璇侀氫俊瀹炰綋韬...
  • 鏁板瓧璇佷功,鐢靛瓙绛惧悕,鐢靛瓙绛剧珷浠栦滑涔嬮棿鐨勫叧绯绘槸浠涔?
    绛旓細鍥犳锛鑳藉鍦ㄧ數瀛愭枃浠朵腑璇嗗埆鍙屾柟绛剧讲浜虹殑鐪熷疄韬唤锛屼繚璇佺缃茬殑瀹夊叏鎬у拰鐪熷疄鎬т互鍙婁笉鍙姷璧栨锛岃捣鍒颁笌鎵嬪啓绛惧悕鎴栬呯洊绔犲悓绛変綔鐢ㄧ殑绛惧悕鐨勭數瀛愭妧鏈墜娈碉紝绉颁箣涓虹數瀛愮鍚嶃3. 鐢靛瓙绛剧珷 鐢靛瓙绛剧珷鏄數瀛愮鍚嶆妧鏈殑涓椤瑰簲鐢紝鍒╃敤鍥惧儚澶勭悊鎶鏈皢鐢靛瓙绛惧悕鎿嶄綔杞寲涓轰笌绾歌川鏂囦欢鐩栫珷鎿嶄綔鐩稿悓鐨勫彲瑙嗘晥鏋溿傚埄鐢ㄧ數瀛愮鍚嶆妧鏈...
  • Android绛惧悕鏈哄埗涔嬬鍚嶆枃浠跺拰鏁板瓧璇佷功鐨勪綔鐢
    绛旓細鍓嶉鍏堝畨瑁呭埌浜嗕綘鐨勮澶囦笂浜嗐傛墍浠ワ紝鏁板瓧璇佷功鍙互淇濊瘉鏁板瓧璇佷功閲岀殑鍏挜纭疄鏄繖涓 璇佷功鐨勬墍鏈夎呯殑锛屾垨鑰呰瘉涔﹀彲浠ョ敤鏉ョ‘璁ゅ鏂圭殑韬唤銆傛暟瀛楄瘉涔︿富瑕佹槸鐢ㄦ潵瑙e喅鍏挜鐨 瀹夊叏鍙戞斁闂銆傜患涓婃墍杩帮紝鎬荤粨涓涓嬶紝鏁板瓧绛惧悕鍜岀鍚嶉獙璇佺殑澶т綋娴佺▼濡備笅鍥炬墍绀猴細寮曠敤閾炬帴锛 https://www.cnblogs.com/dacainiao/p/5842987....
  • 鏁板瓧璇佷功鏄粈涔?鏁板瓧璇佷功鏈変粈涔堜綔鐢?濡備綍鐢ㄦ暟瀛楄瘉涔﹀疄鐜拌韩浠借璇?鐢靛瓙...
    绛旓細鏁板瓧璇佷功鐨勪綔鐢锛氱‘淇濅俊鎭紶杈撶殑淇濆瘑鎬с佹暟鎹氦鎹㈢殑瀹屾暣鎬с 鍙戦佷俊鎭殑涓嶅彲鍚﹁鎬с佷氦鏄撹呰韩浠界殑纭畾鎬с傛暟瀛楄瘉涔︽寔鏈夎呮湁涓瀵瑰叕閽ュ拰绉侀挜锛岃繖涓ゆ妸瀵嗛挜鍙互浜掍负鍔犺В瀵嗐傚叕閽ユ槸鍏紑鐨勶紝涓嶉渶瑕佷繚瀵嗭紝鐢靛瓙鍚堝悓鎺ユ敹鑰呴氳繃鍏挜瑙e瘑鑳藉鏌ョ湅绛剧讲鑰呰韩浠斤紝鐢ㄤ簬楠岃瘉鐢靛瓙鍚堝悓鏄惁鐢绛惧悕浜虹缃诧紝绉侀挜鏄敱璇佷功鎸佷汉鑷繁鎸佹湁...
  • 鏁板瓧璇佷功鏄粈涔,鏁板瓧璇佷功搴旂敤鐨勫満鏅湁閭d簺?
    绛旓細鏁板瓧璇佷功鏄彁渚涚綉缁滀笂鏁板瓧韬唤璁よ瘉鐨,璇佹槑鑷繁韬唤,璇嗗埆瀵规柟韬唤;瀵圭綉缁滀笂浼犺緭鐨勪俊鎭繘琛鍔犲瘑鍜瑙e瘑銆佹暟瀛绛惧悕鍜岀鍚楠岃瘉,纭繚缃戜笂浼犻掍俊鎭殑鏈哄瘑鎬с佸畬鏁存с備娇鐢ㄤ簡鏁板瓧璇佷功,鍗充娇鎮ㄥ彂閫佺殑淇℃伅鍦ㄧ綉涓婅浠栦汉鎴幏,鐢氳嚦鎮ㄤ涪澶变簡涓汉鐨勮处鎴枫佸瘑鐮佺瓑淇℃伅,浠嶅彲浠ヤ繚璇佹偍鐨勮处鎴枫佽祫閲戝畨鍏ㄣ傛暟瀛楄瘉涔﹀簲鐢ㄧ殑鍦烘櫙:1,鏈嶅姟鍣ㄨ瘉涔 瀹夎...
  • 鏁板瓧绛惧悕鍜鏁板瓧璇佷功
    绛旓細鐢ㄦ埛鍙互鑷繁鐢熸垚鏁板瓧璇佷功锛涓嶈繃娌℃湁浠讳綍鍙俊璧栫殑浜绛惧悕锛瀹冧富瑕佺敤浜庡皬鑼冨洿娴嬭瘯锛岃繖绉嶈嚜绛惧悕璇佷功閫氬父涓嶄細琚箍娉涗俊浠伙紝浣跨敤鏃跺彲鑳戒細閬囧埌鐢佃剳杞欢鐨勫畨鍏ㄨ鍛娿傛牴璇佷功 鏍硅瘉涔﹁幏寰楀箍娉涜鍙紝閫氬父宸查鍏堝畨瑁呭湪鍚勭杞綋锛堝寘鎷搷浣滅郴缁熴佹祻瑙堝櫒銆佺數閭蒋浠剁瓑锛夛紝浣滀负淇′换閾剧殑璧风偣锛屾潵鑷簬鍏鍙潬鐨勬斂搴滄満鍏炽佽瘉涔﹂鍙...
  • 鍏充簬CA銆绛惧悕銆璇佷功銆侀潪瀵圭О鍔犲瘑銆佹憳瑕併佸叕绉侀挜鍖欏拰keystore姒傚康鍜屽尯鍒...
    绛旓細绛惧悕锛氬寘鍚袱閮ㄥ垎锛氬鎵绛句俊鎭仛鎽樿杩愮畻寰楀埌涓涓粨鏋滃硷紝鍦杩愮敤闈炲绉板姞瀵嗕腑鐨勭閽ュ杩欎釜鍊艰繘琛屽姞瀵(姣斿app绛惧悕灏辨槸瀵筧pp鑷韩鏂囦欢鍋氬娆℃憳瑕侊紝鐒跺悗绉侀挜鍔犲瘑锛https娴佺▼绛惧悕灏辨槸瀵逛竴浜涗紒涓璇佷功淇℃伅鍋氭憳瑕佺劧鍚庣閽ュ姞瀵)銆傝瘉涔︼細鍏挜鐩稿叧淇℃伅锛屽叾浠栦俊鎭璇佷功鏈夋晥鏈燂紝鍚嶇О锛屾渶鍚庤创闄勭閽绛惧悕鐨淇℃伅锛屾牸寮忔櫘閬...
  • 濡備綍楠岃瘉鏁板瓧绛惧悕璇佷功,鏈変粈涔堢敤閫?
    绛旓細浠涔堟槸鏁板瓧绛惧悕锛熺畝鍗曟潵璇达紝鏁板瓧绛惧悕鏄叕閽ュ瘑鐮佺殑閫嗗簲鐢細鐢ㄧ閽鍔犲瘑娑堟伅锛岀敤鍏挜瑙e瘑娑堟伅銆傛暟瀛楃鍚嶆槸涓轰簡璇佹槑瀵规柟鍙戠殑淇℃伅骞舵病鏈夎鏇存敼杩囷紝浣嗗墠鎻愭潯浠舵槸浣犵‘璁ゅ鏂规槸鍙潬鐨勶紝鍗充綘鎷ユ湁鐨勫叕閽ョ‘瀹炴槸瀵规柟鐨勫叕閽ヨ屼笉鏄叾浠栦汉鐨勫叕閽ャ傝屾暟瀛楄瘉涔﹀氨鏄负浜嗚瘉鏄庝綘鎷ユ湁鐨勫叕閽ョ‘瀹炴槸瀵规柟鐨勩備竴銆佹暟瀛璇佷功鐨勭敤閫浠ヤ笂...
  • 扩展阅读:一笔签名一键生成器 ... 如何提取手写签名笔迹 ... 证书制作生成器 ... 签字怎么扫描成电子版 ... 扫一扫题目出答案 ... 考证最吃香的证书 ... 扫描的签名怎么抠出来 ... 国家不承认的4种证书 ... 小学生10大含金量证书 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网