谁能介绍一下电子签名法,PKI以及CA
电子签名法的立法背景
电子签名法是以规范作为电子商务(也包括电子政务)信息载体的数据电文和当事人在数据电文上以电子数据形式“签名”为主要内容的法律制度。以计算机网络和电子技术应用为依托的电子商务,具有远比传统商务更为便捷、高效、覆盖面广、交易费用低廉等明显的优势,更能适应信息时代和经济全球化的需要,因而其发展迅猛,得到日益广泛的应用。但电子商务所带来的贸易方式革命性的变化,却遇到了传统法律的障碍,产生了一系列必须解决的法律问题,主要是:1、书面形式问题。按照现行法律的规定,重要商务文件,包括重要的合同、商业票据等,都须采用书面形式,否则不具法律效力。但无纸化的电子商务以数据电文代替纸质媒介为信息载体,不采用传统的书面形式。以数据电文形式记载的交易信息是否具有法律效力,需要予以明确。2、原件和保存问题。重要的商务活动要求提供和保存相关原件;在发生纠纷提起仲裁或诉讼时,要求以原件作为证据。而电子商务以数据电文在计算机网络间传递信息,电子数据都记录在计算机内,输入到打印机打印出来的都只能算是“副本”。那么,如何确定数据电文的“原件”,什么样的数据电文可以视为符合法律要求的书面形式,需要明确。3、签名问题。传统商务活动中,交易双方在纸质文件上手书签名或盖章,一是为了证明身份,二是表示对所签名盖章的书面文件的认可,受其约束,不得反悔。鉴于签名盖章对保证交易安全极为重要,有关法律规定,书面合同等重要的商务文件,须经当事人签名盖章始生效力。而在电子商务中,通过计算机网络以数据电文传递交易信息,不可能采用传统的手书签名、盖章方式,为此人们创造了在数据电文中用电子数据“签名”的技术,以其作为保证网上交易安全的重要手段。这种签名是否具有与手写签名同等的法律效力,也需要法律予以明确。4、电子签名的规则不明确,对电子签名人的行为缺乏规范,发生纠纷后责任难以认定。5、电子认证服务提供者的法律地位和法律责任不明确,行为不规范,认证的合法性难以保证。6、电子签名的安全性、可靠性没有法律保障,交易方对电子交易的安全缺乏信心。
为了消除电子商务和电子政务发展过程中的法律障碍,十届全国人大常委会第十一次会议审议通过了《中华人民共和国电子签名法》。电子签名法的颁布实施,对于规范电子签名行为,确立电子签名的法律效力,维护有关各方的合法权益,将起到重要的作用。
电子签名法的适用范围
制定电子签名法的主要目的是为了规范电子签名行为,确立电子签名的法律效力。目前,电子签名主要是在电子商务活动中使用的。随着信息化水平的不断提高,在政府部门对一些经济、社会事务管理中,也开始采用电子手段,如电子报关、电子报税、电子年检以及行政许可法规定的可以采用数据电文方式提出行政许可申请等,这些也都涉及电子签名的法律效力问题,同样需要适用电子签名的有关规定。因此,电子签名法的适用范围应有一定的前瞻性和包容性,即主要适用于商务活动,但又不限于商务活动。所有使用电子签名、数据电文的领域,关于电子签名、数据电文的法律效力问题,均适用电子签名法的规定。同时,考虑到经济、社会等方面的行政管理活动中使用数据电文、电子签名的特殊情况,电子签名法授权国务院依据本法制定政务活动和其他社会活动中使用电子签名、数据电文的具体办法。
此外,基于交易安全和社会公共利益的考虑,借鉴一些国家的做法,电子签名法规定在一些特定范围内的法律文书,不适用电子签名法关于电子签名、数据电文的法律效力的规定。包括:1、涉及婚姻、收养、继承等人身关系的;2、涉及土地、房屋等不动产权益转让的;3、涉及停止供水、供热、供气、供电等公用事业服务的;4、法律、行政法规规定的不适用电子文书的其他情形。
电子签名法的主要内容
一、关于数据电文、电子签名的法律效力
数据电文、电子签名的法律效力问题,是电子签名法要解决的首要问题。电子签名法第三条明确规定:“民事活动中的合同或者其他文件、单证等文书,当事人可以约定使用或者不使用电子签名、数据电文。”“当事人约定使用电子签名、数据电文的文书,不得仅因为其采用电子签名、数据电文的形式而否定其法律效力。”
关于数据电文的法律效力主要包括:(1)关于书面形式。电子签名法第四条规定:“能够有效地表现所载内容,并可以随时调取查用的数据电文,视为符合法律、法规要求的书面形式。”(2)关于原件形式要求。电子签名法第五条规定:“符合下列条件的数据电文,视为满足法律、法规规定的原件形式要求:(一)能够有效地表现所载内容并可供随时调取查用;(二)能够可靠地保证自最终形成时起,内容保持完整、未被更改。但是,在数据电文上增加背书以及数据交换、储存和显示过程中发生的形式变化不影响数据电文的完整性。”(3)关于文件保存要求。电子签名法第六条规定:“符合下列条件的数据电文,视为满足法律、法规规定的文件保存要求:(一)能够有效地表现所载内容并可供随时调取查用;(二)数据电文的格式与其生成、发送或者接收时的格式相同,或者格式不相同但是能够准确表现原来生成、发送或者接收的内容;(三)能够识别数据电文的发件人、收件人以及发送、接收的时间。”(4)关于证据效力。电子签名法第七条规定:“数据电文不得仅因为其是以电子、光学、磁或者类似手段生成、发送、接收或者储存的而被拒绝作为证据使用。”同时第八条规定:“审查数据电文作为证据的真实性,应当考虑以下因素:(一)生成、储存或者传递数据电文方法的可靠性;(二)保持内容完整性方法的可靠性;(三)用以鉴别发件人方法的可靠性;(四)其他相关因素。”
同时,在电子签名法中还对数据电文的归属、数据电文的收讫确认、数据电文的发送和接收时间以及数据电文的发送和接收地点进行了规定。
关于电子签名的法律效力,电子签名法第十四条规定:“可靠的电子签名与手写签名或者盖章具有同等的法律效力。”并在第十三条第一款规定了可靠的电子签名的条件,即:(一)电子签名制作数据用于电子签名时,属于电子签名人专有;(二)签署时电子签名制作数据仅由电子签名人控制;(三)签署后对电子签名的任何改动能够被发现;(四)签署后对数据电文内容和形式的任何改动能够被发现。”同时在第十三条第二款规定:“当事人也可以选择使用符合其约定的可靠条件的电子签名。”也就是说,只要电子签名符合法律规定或者当事人约定的可靠条件,就与手写签名或者盖章具有同等的法律效力。
二、关于电子认证机构的管理
在电子交易过程中,交易双方互不认识,缺乏信任,使用电子签名时,往往需要由第三方对电子签名人的身份进行认证,并为其发放证书,为交易双方提供第三方认证。根据我国的实际情况,电子签名对电子认证机构采用了政府主导的管理模式,对电子认证服务设立了市场准入制度,即从事电子认证服务必须取得政府有关部门的许可。电子签名法第十七条、第十八条规定,从事电子认证服务必须具备一定的条件,并取得国务院信息产业主管部门的许可。并在第二十五条规定授权国务院信息产业主管部门依照本法制定电子认证服务业管理的具体办法。
此外,电子签名法还对电子认证机构的义务进行了规定,主要包括:1、电子认证服务提供者应当制定、公布符合国家有关规定的电子认证业务规则,并向国务院信息产业主管部门备案;2、电子认证服务提供者应当对电子签名认证申请人的身份进行查验,并对有关材料进行审查;3、电子认证服务提供者应当保证电子签名认证证书内容在有效期内完整、准确,并保证电子签名依赖方能够证实或者了解电子签名认证证书所载内容及其他有关事项;4、电子认证服务提供者拟暂停或者终止电子认证服务的,应当在暂停或者终止服务九十日前,就业务承接及其他有关事项通知有关各方。同时,应当在暂停或者终止服务六十日前向国务院信息产业主管部门报告,并与其他电子认证服务提供者就业务承接进行协商,作出妥善安排。5、电子认证服务提供者应当妥善保存与认证相关的信息,时间为电子签名认证证书失效后至少五年。
此外,电子签名法还对电子签名活动各方的法律责任等问题作出了规定。
银企互联中NetSafe Client(简称NC),是我行提供给企业安装的安全通讯软件,用于企业与银行系统间的无缝安全联接,提供交易数据的签名与加密传输服务。
我行银企互联业务提供两种与企业ERP系统对接方式:
1NC方式:企业ERP系统通过NC完成数据加密和传输功能,不需要企业开发,但仅支持单线程串行连接。
2非NC方式:企业按照工行提供的规范完成开发实现相关的数据加密和传输功能,可支持多线程并发指令。
(作答时间:2020年3月21日,如遇业务变化请以实际为准。)
网络安全篇,面对复杂多变的网络环境,我们需要掌握哪些关于网络安全的相关知识,聊一聊与网络安全相关的:HTTPS、SSL、TLS 等。
在上一篇文章中,我们介绍了通过非对称加密协商出一个用于对称加密的秘钥,这样便可以保证秘钥不会被窃取,从而实现了机密性。
但仅有机密性,距离安全还差的很远
因为虽然会话密钥无法被窃取,但是恶意者可以尝试修改、重组相关信息返回给网站,因为没有完整性的保证,服务器也只能“照单全收”。
另外,恶意者也可以伪造公钥,如果我们拿到的是“假的公钥”,此时的混合加密就完全失效了。可能我们以为的目标,实际上对方却是伪冒者。
所以,今天我们就来聊一聊,在机密性这一基础之上的完整性和身份认证等特性。
缺乏完整性的机密,可能会被黑客替换或篡改。接下来我们先来看看如何给机密增加上完整这一特性。
如果说保证机密这一特性的是加密算法,那实现完整性的手段主要是 摘要算法 ,也就是常说的散列函数、哈希函数(Hash Function)。
我们可以把摘要算法近似的理解成一种特殊的压缩算法,它能够将任意长度的数据“压缩”成固定长度,而且是独一无二的“摘要字符串”,就好像是给信息生成了一个数字“指纹”。因此好的摘要算法必须能够“抵抗冲突”(两份不同的原文对应相同的摘要),让这种可能性尽量地小。因为摘要算法对输入具有单向性和 雪崩效应 。
1 单向性
所有的散列函数都有一个基本特性:如果散列值是不相同的(同一个函数),那么这两个散列值的原始输入也是不相同的。具有这种性质的散列函数称为 单向散列函数 ,即 对于给定的散列值 , 不能够逆推出原文 。
2 雪崩效应
雪崩效应是指当输入发生最微小的改变时,也会导致输出的不可区分性改变。合格的摘要算法,无论是密钥或明文的任何细微变化都必须引起散列值的不可区分性改变。所以摘要算法也被 TLS 用来生成伪随机数(PRF,pseudo random function)。
相信每个开发者在工作中都或多或少的听过或用过 SHA-1 (Secure Hash Algorithm 1)和 MD5 (Message-Digest 5),它们就是最常用的两个摘要算法,能够生成 20 字节和 16 字节长度的数字摘要。遗憾的是它们先后分别在 2005 年和 2009 年被破解,在 TLS 里已经被禁止使用了。
目前 TLS 推荐使用的是 SHA-1 的后继者 SHA-2,区别于前者,它属于 密码散列函数
算法标准,由美国国家安全局研发。总共有 6 种 ,常用的有 SHA224、SHA256 及 SHA384,它们分别能够生成 28 字节、32 字节及 48 字节的摘要。
摘要算法能够保证“数字摘要”和原文是完全等价的,所以,我们只要在原文后附上它的摘要,就能够保证数据的完整性。
该怎么理解呢?客户端将消息和消息摘要(SHA-2)发送给服务端之后,服务端拿到后也计算下消息的摘要,对这两份“指纹”做个对比,如果一致,就说明消息是完整可信的,没有被修改。因为即使是对消息的很小变动(例如一个标点符号,这就是雪崩效应),摘要也会完全不同,服务端计算对比就会发现消息被篡改,是不可信的。
不过,大家这时候肯定也看出了问题,摘要算法不具有机密性,如果明文传输,那么黑客可以修改消息后,把摘要也一起修改。
所以,真正的完整性必须建立在机密性之上,就是在上期讲解的《 网络安全的基石(上)— 加密 》:在混合加密系统里用会话密钥加密消息和摘要,这样黑客无法得知明文,也就没有办法“动手脚了”。
加密和摘要实现了通信过程的机密性和完整性,我们的通信过程可以说是比较安全了。但这里还有漏洞,那就是通信的两端。
对于通信的两端,我们还要解决身份认证的问题。简单来说,就是如何证明对方真实身份。因为黑客可以伪装成网站来窃取你的信息,反过来,他也可以伪装成你,向网站发送支付、转账等消息,网站没有办法确认你的身份,钱可能就这样被偷走了。
回想下现实生活中,解决身份认证常用的手段有签名、手印和印章等,只要在纸上写下签名加上盖章,就能证明这份文件确实是由本人而非其他人发出的。
那在 TLS 什么东西和生活中的手印、印章很像,只能由本人持有呢?只要有了这个东西,就能够在网络世界里证明你的身份。回想下前面我们介绍的内容,大家也很容易想到,它就是非对称加密里的 私钥 ,使用私钥再加上摘要算法,就能够实现 数字签名 ,同时实现 身份认证 和 不可否认 。
签名与验签
数字签名的原理其实也不复杂,就是将公钥和私钥的用法反过来,之前是公钥加密,私钥解密; 现在是私钥加密 , 公钥解密 。
签名和公钥一样完全公开,任何人都可以获取。但这个签名只有用私钥对应的公钥才能解开,拿到摘要后,再比对原文验证完整性,就可以签署文件一样证明消息确实是你发的。整个过程的两个行为也有其专用术语,分别叫做 签名 和 验签 。
回顾下安全通信的四大特性我们都已经实现了,整个通信过程是不是已经完美了呢?答案不是的,这里还有一个“公钥的信任”问题,因为谁都可以发布公钥,我们还缺少防止黑客伪造公钥的手段。关于该部分内容你可以参考下篇文章 《公钥信任问题 — 数字证书与 CA》 。
总结
网络安全涉及了方方面面太多的知识,尤其是网络的基础知识对我们来说还是非常重要的,关于这部分大家又有什么要分享的?欢迎你的分享留言或指正。
网络安全系列专题
本文主要是简单介绍了常见的加密类型、各自的运用场景、为什么需要数字签名和数字证书、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》
密码学(cryptography): 通过将信息编码使其不可读,从而达到安全性。
算法 :取一个输入文本,产生一个输出文本。
加密算法 :发送方进行加密的算法。
解密算法 :接收方进行解密的算法。
对称密钥加密 (Symmetric Key Cryptography):加密与解密使用相同密钥。
非对称密钥加密 (Asymmetric Key Cryptography):加密与解密使用不同密钥。
密钥对 :在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。
公钥 :公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。
私钥 :如上,用来解密公钥加密的数据。
摘要 :对需要传输的文本,做一个HASH计算。
签名 :使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。
密码协议是指两个或两个以上的参与者为了达到某种特定目的而采取的一系列步骤。规定了一系列有序执行的步骤,必须依次执行。必须有两个或两个以上的参与者,有明确的目的。参与者都必须了解、同意并遵循这些步骤。
常见的密码协议包括IPSEC *** 协议、SSL *** 协议、密钥交换协议等。
密码是指描述密码处理过程的一组运算规则或规程,一般是指基于复杂数学问题设计的一组运算,其基本原理基于数学难题、可证明计算、计算复杂度等。主要包括:对称密码、公钥密码、杂凑算法、随机数生成。
在对称加密算法中,加密使用的密钥和解密使用的密钥是相同的,加密和解密都是使用同一个密钥,不区分公钥和私钥。
通信双方采用相同的密钥来加解密会话内容,即一段待加密内容,经过同一个密钥的两次对称加密后,与原来的结果一样,具有加解密速度快和安全强度高的优点。
国际算法:DES、AES。
国产算法:SM1、SM4、SM7。
非对称加解密算法又称为 公钥密码 ,其密钥是成对出现的。双方通信时,首先要将密钥对中的一个密钥传给对方,这个密钥可以在不安全的信道中传输;传输数据时,先使用自己持有的密钥做加密,对方用自己传输过去的密钥解密。
国际算法:RSA
国产算法:SM2
优点:
密钥分发数目与参与者数目相同,在有大量参与者的情况下易于密钥管理。
支持数字签名和不可否认性。
无需事先与对方建立关系,交换密钥。
缺点:
速度相对较慢。
可能比同等强度的对称密码算法慢10倍到100倍。
加密后,密文变长。
密码杂凑算法 :又称为散列算法或哈希函数,一种单向函数,要由散列函数输出的结果,回推输入的资料是什么,是非常困难的。
散列函数的输出结果,被称为讯息摘要(message digest)或是 摘要(digest) ,也被称为 数字指纹 。
杂凑函数用于验证消息的完整性, 在数字签名中,非对称算法对数据签名的速度较慢,一般会先将消息进行杂凑运算,生成较短的固定长度的摘要值。然后对摘要值进行签名,会大大提高计算效率 。
国际算法:MD5、SHA1、SHA2、SHA3
国产算法:SM3
2009年国家密码管理局发布的《信息安全等级保护商用密码技术实施要求》中明确规定,一、二、三、四级信息系统应使用商用密码技术来实施等级保护的基本要求和应用要求,一到四级的密码配用策略要求采用国家密码管理部门批准使用的算法。
2010年年底,国家密码管理局公开了SM2、SM3等国产密码算法。
2011年2月28日,国家密码管理局印发的2011145号文中明确指出,1024位RSA算法正在面临日益严重的安全威胁,并要求各相关企业在2012年6月30日前必须使用SM2密码算法
国家密码管理局在《关于做好公钥密码算法升级工作的函》中要求2011年7月1日以后建立并使用公钥密码的信息系统,应使用SM2算法;已经建设完成的系统,应尽快进行系统升级,使用SM2算法。
2014年底,国家密码管理局启动《重要信息系统密码应用推进总体研究课题》,确定十三五密码 科技 专项。
2017年11月底,国家密码管理局下发了《政务云密码支撑方案及应用方案设计要点》。
2017年国家密码管理局发布了42项金融和重要领域国产密码应用试点任务。
2018年,中共中央办公厅、国务院办公厅印发《金融和重要领域密码应用与创新发展工作规划(2018-2022年)。
2018年,为指导当时即将启动的商用密码应用安全性评估试点工作,国家密码管理局发布了密码行业标准GM/T0054-2018《信息系统密码应用 基本要求》。
2021年3月,国家市场监管总局、国家标准化管理委员会发布公告,正式发布国家标准GB/T39786-2021《信息安全技术信息系统密码应用基本要求》,该标准于2021年10月1日起实施。
SM1 算法是分组密码算法,分组长度为 128 位,密钥长度都为 128 比特,算法安全保密强度及相关软硬件实现性能与AES相当,算法不公开,仅以IP核的形式存在于芯片中。
算法集成于加密芯片、智能 IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括政务通、警务通等重要领域)。
SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,是一种基于ECC算法的 非对称密钥算法, 其加密强度为256位,其安全性与目前使用的RSA1024相比具有明显的优势。
包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现 数字签名密钥协商 和 数据加密 等功能。
SM3杂凑算法是我国自主设计的密码杂凑算法,属于哈希(摘要)算法的一种,杂凑值为256位,安全性要远高于MD5算法和SHA-1算法。
适用于商用密码应用中的 数字签名 和 验证消息认证码的生成与验证 以及 随机数 的生成,可满足多种密码应用的安全需求。
SM4 分组密码算法 是我国自主设计的分组对称密码算法,SM4算法与AES算法具有相同的密钥长度分组长度128比特,因此在安全性上高于3DES算法。
用于实现数据的加密/解密运算,以保证数据和信息的机密性。软件和硬件加密卡均可实现此算法。
商用密码技术框架包括 密码资源、密码支撑、密码服务、密码应用 等四个层次,以及提供管理服务的密码管理基础设施。
密码资源层: 主要是提供基础性的密码算法资源。
密码支撑层: 主要提供密码资源调用,由安全芯片、密码模块、智能IC卡、密码卡、服务器密码机、签名验签服务器、IPSCE/SSL *** 等商密产品组成。
密码服务层: 提供密码应用接口,分为对称和公钥密码服务以及其他三大类。
密码应用层: 调用密码服务层提供的密码应用程序接口,实现数据的加解密、数字签名验签等服务。如应用 于 安全邮件、电子印章系统、安全公文传输、移动办公平台、可信时间戳等系统。
密码管理基础设施: 独立组件,为以上四层提供运维管理、信任管理、设备管理、密钥管理等功能。
完整的PKI系统必须具有权威认证机构(CA)、数字证书库、密钥备份及恢复系统(KMC)、证书作废系统(CRL)、应用接口(API)等基本构成部分,构建PKI也将围绕着这五大系统来着手构建。
CA 系统:Ca系统整个PKI的核心,负责证书的签发。CA首先产生自身的私钥和公钥(密钥长度至少为1024位),然后生成数字证书,并且将数字证书传输给安全服务器。、CA还负责为操作员、安全服务器以及注册机构服务器生成数字证书。安全服务器的数字证书和私钥也需要传输给安全服务器。
CA服务器是整个结构中最为重要的部分,存有CA的私钥以及发行证书的脚本文件,出于安全的考虑,应将CA服务器与其他服务器隔离,任何通信采用人工干预的方式,确保认证中心的安全。
(1)甲使用乙的公钥对明文进行加密,生成密文信息。
(2)甲使用HASH算法对明文进行HASH运算,生成数字指纹。
(3)甲使用自己的私钥对数字指纹进行加密,生成数字签名。
(4)甲将密文信息和数字签名一起发送给乙。
(5)乙使用甲的公钥对数字签名进行解密,得到数字指纹。
(6)乙接收到甲的加密信息后,使用自己的私钥对密文信息进行解密,得到最初的明文。
(7)乙使用HASH算法对还原出的明文用与甲所使用的相同HASH算法进行HASH运算,生成数字指纹。然后乙将生成的数字指纹与从甲得到的数字指纹进行比较,如果一致,乙接受明文;如果不一致,乙丢弃明文。
SSL 协议建立在可靠的传输协议(如 TCP)之上,为高层协议提供数据封装,压缩,加密等基本功能。
即可以协商加密算法实现加密传输,防止数据防窃听和修改,还可以实现对端设备身份验证、在这个过程中,使用国密算法进行加密、签名证书进行身份验证、加密证书用于密钥交换
SSL协商过程:
(1)客户端发出会话请求。
(2)服务端发送X509证书(包含服务端的公钥)。
(3)客户端用已知Ca列表认证证书。
(4)客户端生成随机对称密钥,并利用服务端的公钥进行加密。
(5)双方协商完毕对称密钥,随后用其加密会话期间的用户最终数据。
利用SSL卸载技术及负载均衡机制,在保障通讯数据安全传输的同时,减少后台应用服务器的性能消耗,并实现服务器集群的冗余高可用,大幅度提升整个业务应用系统的安全性和稳定性。此外,借助多重性能优化技术更可缩短了业务访问的响应等待时间,明显提升用户的业务体验。
基于 数字证书 实现终端身份认证,给予密码运算实现本地数据的加密存储,数字证书硬件存储和密码运算由移动终端内置的密码部件提供。
移动应用管理系统服务器采用签名证书对移动应用软件安装包进行签名,移动应用管理系统客户端对签名信息进行验签,保障移动应用软件安装包的真实性和完整性。
移动办公应用系统采用签名证书对关键访问请求进行签名验证。
采用加密证书对关键传输数据和业务操作指令,以及移动终端本地存储的重要数据进行加密保护。
移动办公系统使用商用密码,基于数字证书认证系统,构建覆盖移动终端、网络、移动政务应用的安全保障体系,实现政务移动终端安全、接入安全、传输安全和移动应用安全 。
本文目录:
想象一个场景:一位许久不见的好兄弟,突然在微信里面跟你说“兄弟,借我1万应急呗”,你会怎么反应?
我想大部分人马上的反应就是:是不是被盗号了?他是本人吗?
实际上这是我们日常生活中常见的通讯行为,系统间调用API和传输数据的过程无异于你和朋友间的微信沟通,所有处于开放环境的数据传输都是可以被截取,甚至被篡改的。因而数据传输存在着极大的危险,所以必须加密。
加密核心解决两个问题:
古代人写信通过邮差传信,路途遥远,他们为了避免重要的内容被发现,决定用密文来写信,比如我想表达“八百标兵上北坡”,我写成800north,并且收件人也知道怎么阅读这份信息,即使路上的人截取偷看了,也看不懂你们在说的什么意思。同时我在文末签上我的字迹,在盒子里放上我的信物(比如一片羽毛等等),这样收件人也就知道这份信是我寄出的了。
这被称为“对称性密码”,也就是加密的人用A方式加密,解密的人用A方式解密,有什么缺点呢?
如果你经常传输,这就很容易被发现了密码规律,比如我很快就知道你寄信都会带上一片羽毛,那我以后也可以搞一片羽毛来冒充你了。加上,如果我要给很多人寄信,我就要跟每个人告诉我的加密方式,说不准有一个卧底就把你的加密方式出卖了。
因为互联网传输的对接方数量和频率非常高,显然搞个对称性密码是不安全的。于是,基于对称性密码延伸出“非对称密码”的概念。
通俗的解释:A要给B发信息,B先把一个箱子给A,A收到之后把信放进箱子,然后上锁,上锁了之后A自己也打不开,取不出来了,因为钥匙在B的手里,这样即使路上被截取了,别人也打不开箱子看里面的信息,最后B就能安全地收到A发的信了,并且信息没有泄露。
现在我们以一个单向的A发信息给B的场景进行深入了解公私钥工作原理。
总结:
(1)签名会被任何人获取,但因为签名内容不涉及核心内容,被获取破解是OK的。
(2)重要内容只能接收方解密,任何人获取了都无法解密。
(3)接收者B只有验证签名者是A的信息,才会执行接下来的程序。阿猫阿狗发来的信息不予执行。
捣局者C可能的情况:
(1)他获取到这条信息是A发出的,但看不明白加密的内容。
(2)他可以也用接受者B的加密方法c向接收者B发信息,但他无法冒充发送者A的签名,所以B不会接受C的请求。
(2)公私钥的非对称加密+session key对称加密
上一小节解释的公私钥加密是标准和安全的,但因为这类非对称加密对系统运算的需求比较大,在保证安全的前提下,还是尽量希望提升程序响应的时效。所以目前主流应用的另一种加密方式是公私钥的非对称加密+session key对称加密。
(1)当B向A发出临时有效的加密方法之后,通讯的过程变为了对称加密;
(2)这类加密方式的核心是时效性,必须在短时间内更新,否则固定的规律容易被获取破解。
捣局者C可能的情况:
(1)他获取到B发出的session key的加密文件,无法破解session key是什么。因为解密方法在A手上;
(2)通过各种手段,C破解出session key的加解密方法,但因为时效已到,session key更新,C徒劳无功;
(3)C在时效内破解出session key,但无法冒充A的签名。
以上是2种常见的加解密方式,每个开放平台会在概述中最开始介绍API调用的安全加解密方法,这是每个对接过程中必须的准备流程,如微信企业平台在概述中就已介绍利用第2种方法(企业微信命名为access_token)进行加解密传输。
以上就是API签名验签和加解密的基本原理,接下来我会继续更新API的请求方式等问题,同时以企业微信,微信开放平台等大型开放平台的业务解释各平台支持的现有功能。
综上,水平有限,如有纰漏,敬请指出。
作者:就是爱睡觉;已任职电商和金融业行业的产品岗位3年时间,目前业务以TO B业务为主,文章是用于记录自己在产品工作的思考和想法,希望有想法的小伙伴共同交流。
题图来自Unsplash,基于CC0协议
渔翁信息视频安全密钥服务系统可以应用在以下场景:
1交通视频监控系统
交通视频监控系统遍布机场⌄铁路、港口、码头、汽车站、学校、医院、大型商贸中心、展览场馆、体育场所等,是保障城市交通运转安全的重要手段,对于加强安全防范和交通管理至关重要。根据GB 35114《公共安全视频监控联网信息安全技术要求》标准要求,视频监控系统需要应用密码技术,实现视频数据的真实性、完整性、机密性和抗抵赖性保护。
2雪亮工程
雪亮项目是以县、乡、村级综合管理中心为指挥平台,以公安视频监控网络应用为依托的“群众治安防控工程”。
通过视频安全密钥服务系统可保障雪亮工程中公共安全视频监控更加可信可靠,实现视频数据的真实性、完整性、机密性和抗抵赖性保护。
3平安城市
平安城市通过在城市重点道路、公共场所、要害部门、公共交通系统、社会和居民小区等构建视频监控系统,同时配合报入侵报警系统、出入口控制系统、广播系统等形成满足城市治安管理等需求的安全防范综合体。
视频安全密钥服务系统可应用于平安城市视频监控领域,实现实体身份真实、信令真实可靠、视频数据安全,最终实现符合GB 35114强制性国家标准。
视频安全密钥服务系统应用场景部署图如下:
图1-3 渔翁信息视频安全密钥服务系统应用场景
视频采集区
前端视频摄像头内置硬件密码模块,作为证书及密钥的载体,同时也负责视频加密密钥VEK的生成、以及加解密运算服务。
视频监控中心
1)部署视频安全密钥服务系统、服务器密码机、签名验签服务器,其中视频安全密钥服务系统来进行具有用户和设备身份证书制发功能,为视频监控安全管理平台提供证书签发、查询和验证等服务;服务器密码机用来进行视频流数据的加密、解密等密码运算;签名验签服务器用来进行视频流的签名、验签等服务。
2)各视频监控平台的服务器内置硬件密码模块,用来做证书及密钥的载体,同时进行基本的加解密运算功能。
3)视频监控客户端配备智能密码钥匙,用于管理人员登录使用。
0条评论