首页 百科知识 js加密密钥如何存放

js加密密钥如何存放

时间:2022-05-30 百科知识 版权反馈
【摘要】:第二节 信息安全技术通过对计算机网络安全的防护,我们可以控制减少外来入侵和病毒攻击,可以有效解决处理终端的安全问题。于是,便需要信息安全技术来进行防范。贸易各方信息的完整性将影响到贸易各方的交易和经营策略,保持贸易各方信息的完整性是电子商务应用的基础。为了满足上述要求,在电子商务信息安全领域出现了诸多技术来解决电子商务信息安全中的问题。

第二节 信息安全技术

通过对计算机网络安全的防护,我们可以控制减少外来入侵和病毒攻击,可以有效解决处理终端(服务器端和客户端硬件)的安全问题。但是对于整个电子商务交易系统来讲,除了计算机安全外,信息安全同样重要。

电子商务交易活动是在互联网上进行,大量交易信息需要在网上传输,其中还包括支票、订单、公函、合同、契约、身份证明、法律文书等敏感信息。而在具有开放性质的互联网上传播的信息是很容易被他人窃取、截取、伪造和篡改的。于是,便需要信息安全技术来进行防范。

在电子商务交易中,对信息安全主要的要求有:

1.有效性

电子商务以电子形式取代了纸张,那么如何保证这种电子形式的贸易信息的有效性则是开展电子商务的前提。电子商务作为贸易的一种形式,其信息的有效性将直接关系到个人、企业或国家的经济利益和声誉。因此,要对网络故障、操作错误、应用程序错误、硬件故障、系统软件错误及计算机病毒所产生的潜在威胁加以控制和预防,以保证贸易数据在确定的时刻、确定的地点是有效的。

2.机密性

电子商务作为贸易的一种手段,其信息直接代表着个人、企业或国家的商业机密。传统的纸面贸易都是通过邮寄封装的信件或通过可靠的通信渠道发送商业报文来达到保守机密的目的。电子商务是建立在一个较为开放的网络环境上的(尤其Internet是更为开放的网络),维护商业机密是电子商务全面推广应用的重要保障。因此,要预防非法的信息存取和信息在传输过程中被非法窃取。机密性一般通过密码技术来对传输的信息进行加密处理来实现。

3.完整性

电子商务简化了贸易过程,减少了人为的干预,同时也带来维护贸易各方商业信息的完整、统一的问题。由于数据输入时的意外差错或欺诈行为,可能导致贸易各方信息的差异。此外,数据传输过程中信息的丢失、信息重复或信息传送的次序差异也会导致贸易各方信息的不同。贸易各方信息的完整性将影响到贸易各方的交易和经营策略,保持贸易各方信息的完整性是电子商务应用的基础。因此,要预防对信息的随意生成、修改和删除,同时要防止数据传送过程中信息的丢失和重复并保证信息传送次序的统一。完整性一般可通过提取信息消息摘要的方式来获得。

4.可靠性/不可抵赖性/鉴别

电子商务可能直接关系到贸易双方的商业交易,如何确定要进行交易的贸易方正是进行交易所期望的贸易方,这一问题则是保证电子商务顺利进行的关键。在传统的纸面贸易中,贸易双方通过在交易合同、契约或贸易单据等书面文件上手写签名或印章来鉴别贸易伙伴,确定合同、契约、单据的可靠性并预防抵赖行为的发生。这也就是人们常说的“白纸黑字”。在无纸化的电子商务方式下,通过手写签名和印章进行贸易方的鉴别已是不可能的。因此,要在交易信息的传输过程中为参与交易的个人、企业或国家提供可靠的标识。不可抵赖性可通过对发送的消息进行数字签名来获取。

5.审查能力

根据机密性和完整性的要求,应对数据审查的结果进行记录。

为了满足上述要求,在电子商务信息安全领域出现了诸多技术来解决电子商务信息安全中的问题。其中应用最为广泛的技术主要有:加密技术、数字摘要、数字信封、数字签名、数字时间戳和数字证书等。

一、数据加密技术

所谓数据加密(Data Encryption)技术是指将一个信息(或称明文,plain text)经过加密钥匙(Encryption key)及加密函数转换,变成无意义的密文(cipher text),而接收方则将此密文经过解密函数、解密钥匙(Decryption key)还原成明文。通过加密技术可以解决信息安全中的机密性问题,它也是其他信息安全技术的基石。

由其的含义可知,数据加密技术包括两个重要元素:加密函数和加密钥匙,我们把这两个元素分别称为算法和密钥。算法是将普通文本(或者可理解的信息)与一串数字(密钥)相结合,产生不可理解的密文的步骤,密钥是用来控制对数据进行编码和解码方法的参数。

数据加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应的数据加密技术分为两类,即对称加密(私人密钥加密)和非对称加密(公开密钥加密)。

(一)对称密钥体制(单钥加密体制)

对称密钥,又称单密钥或专用密钥,加密和解密时使用同一个密钥,即同一个算法。如DES、IDEA和AES算法。单密钥是最简单的方式,通信双方必须交换彼此密钥,当需给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文体供阅读(如图10-2所示)。

img73

图10-2

对称密钥是最古老的,一般来说“密电码”采用的就是对称密钥。目前仍广泛被采用,它以DES为典型代表。

DES是世界上最有名的密码算法,也是第一个被公开的现代密码。它出自IBM的研究工作,于1971~1972年研制成功,并在1997年被美国政府正式采纳。它很可能是使用最广泛的秘钥系统,特别是在保护金融数据的安全中,最初开发的DES是嵌入硬件中的。通常,自动取款机(ATM)都使用DES。

DES使用一个56位的密钥以及附加的8位奇偶校验位,产生最大64位的分组大小。这是一个迭代的分组密码,使用称为Feistel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16个循环。

攻击DES的主要形式被称为蛮力的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果DES使用56位的密钥,则可能的密钥数量是2的56次方个。随着计算机系统能力的不断发展,DES的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。不过,目前DES已不安全,普遍使用的是变种triple DES,即对64位分组加密三次,每次用不同的密钥,密钥长度总共168位。

DES算法已经公开,那么它的保密性完全取决于对密钥的保密。因此,密钥的管理极为重要,一旦密钥丢失,密文将无密可保。

DES算法最大的优点就是算法公开、计算量小、加密速度快、加密效率高。当然它也有很多不足,当密钥需要由一个用户告知给其他用户的时候,其传递途径的安全难以保证;当一个系统中有多个用户使用时,如果都使用相同密钥则无法保密,如果使用各自不同密钥,则数量众多难以管理;无法解决数字签名验证的问题;经常需要更换;由于其简单、公开,保密强度不够高。它于1997年被EFF联网破解成功;1998年专用破解机器出现;而到1999年破解最多只需22小时。

(二)非对称密钥体制

非对称加密体制又称为双钥密钥体制或公开密钥体制,加密和解密时使用不同的密钥,即不同的算法,虽然两者之间存在一定的关系,但不可能轻易地从一个推导出另一个。每个用户可以得到唯一的一对密钥,两个密钥(加密密钥和解密密钥)各不相同,一个是公开的(称为公钥PK),另一个是保密的(称为私钥SK)。公共密钥保存在公共区域,可在用户中传递,甚至可印在报纸上面。而私钥必须存放在安全保密的地方。任何人都可以有你的公钥,但是只有你一个人能有你的私钥。

在该体制中,PK与SK是成对出现的,换句话说,存在一个PK就必然有配对的SK;反过来类似,存在一个SK就必然存在一个PK。两个密钥,一个密钥用来加密消息,则另一个密钥用来解密消息。PK用于加密时,SK就用于解密,而此时PK加密的文件不能用PK自身解密;反之亦然,SK加密时,只能用PK解密。

非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。其典型代表为被ISO/TC97的数据加密技术分委员会SC20推荐为公开密钥数据加密标准的RSA体制。

RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。它是根据寻求两个大素数容易,而将他们的乘积分解开则极其困难这一原理来设计的。这种算法于1978年由Ron Rivest,AdiShamir和Leonard Adleman提出,算法的名字以发明者的名字命名。其优点是:密钥分配简单;密钥的保存量少;可以满足互不相识的人之间进行私人谈话时的保密性要求;可以完成数字签名和数字鉴别。但也有其不可避免的缺点:产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密;分组长度太大,为保证安全性,长度至少也要600bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级,且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。

起初,没有人认为一个512位的密匙能被破解,但是事与愿违。1999年8月,荷兰国家数学与计算机科学研究所的一组科学家成功分解了512bit的整数,大约300台高速工作站与PC机并行运行,整个工作花了7个月。1999年9月,以色列密码学家Adi Shamir设计了一种名叫“TWINKLE”的因数分解设备,可以在几天内攻破512bit的RSA密钥(但要做到这一点,需要300~400台设备,每台设备价值5000美元)。现有的RSA密码体制支持的密钥长度有512、1024、2048、4096等。

二、数字摘要

所谓数字摘要,是指通过单向Hash函数,将需加密的明文“摘要”成一串固定长度(如128bit)的密文,不同的明文摘要成的密文其结果总是不相同,同样的明文其摘要必定一致,并且即使知道了摘要也不能反推出明文。其原理是:采用单向Hash函数对文件进行变换运算得到摘要码,并把摘要码和文件一同发送给接收方,接收方接到文件后,用相同的方法对文件进行变换计算,用得出的摘要码与发送来的摘要码进行比较来断定文件是否完整或被篡改(如图10-3所示)。

img74

图10-3

数字摘要简要地描述了一份较长的信息或文件,它可以被看成一份长文件的“数字指纹”。数字摘要也经常用于创建数字签名,对于特定的文件而言,数字摘要是唯一的。数字摘要可以被公开,它不会透露相应文件的任何内容。数字摘要是由Hash生成,一个Hash函数的好坏是由发生碰撞的概率决定的。如果攻击者能够轻易地构造出两个消息具有相同的Hash值,那么这样的Hash函数是很危险的。一般来说,安全Hash标准的输出长度为160位,这样才能保证它足够的安全。典型的Hash函数有MD5、SHA、等。

MD5的全称是Message-digest Algorithm 5(信息-摘要算法),用于确保信息传输完整一致。在20世纪90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc,的Ronald L、Rivest开发出来,经MD2.MD3和MD4发展而来。它的作用是把一个任意长度的字节串变换成128位的大整数。它于2004年被山东大学清华大学双聘教授王小云首次破解。

SHA(Secure Hash Algorithm,译为安全散列算法)是美国国家安全局(NSA)设计,美国国家标准与技术研究院(NIST)发布的一系列密码散列函数。正式名称为SHA的家族第一个成员发布于1993年。然而现在的人们给它取了一个非正式的名称SHA-0以避免与它的后继者混淆。两年之后,SHA-1,第一个SHA的后继者发布了。另外还有四种变体,曾经发布以提升输出的范围和变更一些细微设计:SHA-224,SHA-256,SHA-384和SHA-512(这些有时候也被称为SHA-2)。2005年初,王小云和她的研究小组宣布,首次成功破解SHA-1。

三、数字信封

数字信封是非对称密钥体制在实际中的一个应用,是用加密技术来保证只有规定的特定收信人才能阅读通信的内容。

在数字信封中,信息发送方采用对称密钥来加密信息内容,然后将此对称密钥用接收方的公开密钥来加密(这部分称数字信封)之后,将它和加密后的信息一起发送给接收方,接收方先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息。这种技术的安全性相当高。数字信封主要包括数字信封打包和数字信封拆解,数字信封打包是使用对方的公钥将加密密钥进行加密的过程,只有对方的私钥才能将加密后的数据(通信密钥)还原;数字信封拆解是使用私钥将加密过的数据解密的过程。

数字信封的功能类似于普通信封,普通信封在法律的约束下保证只有收信人才能阅读信的内容;数字信封则采用密码技术保证了只有规定的接收人才能阅读信息的内容。数字信封中采用了对称密码体制和公钥密码体制。信息发送者首先利用随机产生的对称密码加密信息,再利用接收方的公钥加密对称密码,被公钥加密后的对称密码被称之为数字信封。在传递信息时,信息接收方若要解密信息,必须先用自己的私钥解密数字信封,得到对称密码,才能利用对称密码解密所得到的信息(如图10-4所示)。这样就保证了数据传输的真实性和完整性。

在一些重要的电子商务交易中密钥必须经常更换,为了解决每次更换密钥的问题,结合对称加密技术和公开密钥技术的优点,它克服了秘密密钥加密中秘密密钥分发困难和公开密钥加密中加密时间长的问题,使用两个层次的加密来获得公开密钥技术的灵活性和秘密密钥技术高效性。信息发送方使用密码对信息进行加密,从而保证只有规定的收信人才能阅读信的内容。采用数字信封技术后,即使加密文件被他人非法截获,因为截获者无法得到发送方的通信密钥,故不可能对文件进行解密。

img75

图10-4

四、数字签名

数字签名是对电子形式的信息进行签名的一种方法,一个签名信息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。

数字签名(Digital Signature)技术是非对称加密算法的典型应用。数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性和真实性(如图10-5所示)。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。在数字签名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。

数字签名主要的功能是:保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。

img76

图10-5

五、数字时间戳

对于成功的电子商务应用,要求参与交易各方不能否认其行为。这其中需要在经过数字签名的交易上打上一个可信赖的时间戳,从而解决一系列的实际和法律问题。由于用户桌面时间很容易改变,由该时间产生的时间戳不可信赖,因此需要一个权威第三方来提供可信赖的且不可抵赖的时间戳服务。这便是数字时间戳(digital time-stamp)。

在各种政务和商务文件中,时间是十分重要的信息。在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关键性内容。

在电子文件中,同样需对文件的日期和时间信息采取安全措施,而数字时间戳服务就能提供电子文件发表时间的安全保护。

数字时间戳服务(DTS)是网上安全服务项目,由专门的机构提供。时间戳是一个经加密后形成的凭证文档,它包括三个部分:

①需加时间戳的文件的摘要;

②DTS收到文件的日期和时间;

③DTS的数字签名。

时间戳产生的过程:用户首先将需要加时间戳的文件用HASH编码加密形成摘要,然后将该摘要发送到DTS,DTS在加入了收到文件摘要的日期和时间信息后再对该文件加密(数字签名),然后送回用户(如图10-6所示)。由Bellcore创造的DTS采用如下的过程:加密时将摘要信息归并到二叉树的数据结构;再将二叉树的根值发表在报纸上,这样更有效地为文件发表时间提供了佐证。注意,书面签署文件的时间是由签署人自己写上的,而数字时间戳则不然,它是由认证单位DTS来加的,以DTS收到文件的时间为依据。因此,时间戳也可作为科学家的科学发明文献的时间认证。

img77

图10-6

六、数字证书

由于Internet网电子商务系统技术使在网上购物的顾客能够极其方便轻松地获得商家和企业的信息,但同时也增加了对某些敏感或有价值的数据被滥用的风险。为了保证互联网上电子交易及支付的安全性、保密性等,防范交易及支付过程中的欺诈行为,必须在网上建立一种信任机制。这就要求参加电子商务的买方和卖方都必须拥有合法的身份,并且在网上能够有效无误的被进行验证。数字证书是一种权威性的电子文档。它提供了一种在Internet上验证身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构——CA证书授权(Certificate Authority)中心发行的,并利用CA的私钥签名,人们可以在互联网交往中用它来识别对方的身份。

数字证书,把身份与电子密钥对绑定,该密钥对可以对信息进行加密和签名。数字证书可以用于鉴别某人是否有权使用某个指定的密钥,也可以防止人们使用假冒的密钥来冒充他人。数字证书与密码术一起提供更为完整的安全性。

(一)数字证书的内容

数字证书的格式遵循ITUTX.509国际标准。一个标准的X-509数字证书包含以下一些内容:

证书的版本信息;

证书的序列号,每个证书都有一个唯一的证书序列号;

证书所使用的签名算法,如RSA算法;

证书的发行机构(CA中心)的名称,命名规则一般采用X-500格式;

证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950~2049年;

证书拥有者的名称,命名规则一般采用X-500格式;

证书拥有者的公开密钥;

证书发行机构(CA中心)对证书的数字签名。

(二)数字证书的作用

数字证书是由作为第三方的法定数字认证中心(CA)中心签发,以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性,以及交易实体身份的真实性,签名信息的不可否认性,从而保障网络应用的安全性。

1.身份认证

身份认证即身份识别与鉴别,就是确认实体即为自己所声明的实体,鉴别身份的真伪。如甲乙双方的认证,甲首先要验证乙的证书的真伪,当乙在网上将证书传送给甲时,甲首先要用权威机构CA的公钥解开证书上CA的数字签名,如签名通过验证,证明乙持有的证书是真的;接着甲还要验证乙身份的真伪,乙可以将自己的口令用自己的私钥进行数字签名传送给甲,甲已经从乙的证书中或从证书库中查得了乙的公钥,甲就可以用乙的公钥来验证乙用自己独有的私钥进行的数字签名。如果该签名通过验证,乙在网上的身份就确凿无疑。

2.数据完整性

数据完整性就是确认数据没有被修改,即数据无论是在传输或是在存储过程中经过检查确认没有被修改。数据完整性服务的实现主要方法是数字签名技术,它既可以提供实体认证,又可以保障被签名数据的完整性。这是因为密码哈希算法和签名算法提供的保证,哈希算法的特点是输入数据的任何变化都会引起输出数据的不可预测的极大变化;签名是用自己的私钥将该哈希值进行加密,和数据一起传送给接受方。如果敏感数据在传输和处理过程中被篡改,接受方就不会收到完整的数据签名,验证就会失败。反之,如果签名通过了验证,就证明接收方收到的是没经修改的完整性数据。

3.数据保密性

数据保密性就是确保数据的秘密,除了指定的实体外,其他没经授权的人不能读出或看懂该数据。PKI的保密性服务采用了“数字信封”机制,即发送方先产生一个对称密钥,并用该对称密钥加密敏感数据。同时,发送方还用接收方的公钥加密对称密钥,像装入一个“数字信封”里。然后,将被加密的对称密钥(“数字信封”)和被加密的敏感数据一起传送给接收方。接收方用自己的私钥拆开“数字信封”,得到对称密钥,用对称密钥解开被加密的敏感数据。其他没经授权的人,因为没有拆开“数字信封”的私钥,看不见或读不懂原数据,起到了数据保密性的作用。

4.不可否认性

不可否认性服务是指从技术上实现保证实体对他们的行为的诚实性,即用数字签名的方法防止其对行为的否认。其中,人们更关注的是数据来源的不可否认性和接收的不可否认性,即用户不能否认敏感信息和文件不是来源于他;以及接收后的不可否认性,即用户不能否认他已接收到了敏感信息和文件。此外还有其他类型的不可否认性,传输的不可否认性、创建的不可否认性和同意的不可否认性等等。

(三)数字证书的类型

1.个人数字证书

证书中包含个人身份信息和个人的公钥,用于标识证书持有人的个人身份。数字安全证书和对应的私钥由个人保管,用于个人在网上进行合同签订、订单、录入审核、操作权限、支付信息等活动中标明个人身份。

2.机构数字证书

证书中包含企业信息和企业的公钥,用于标识证书持有企业的身份。数字安全证书和对应的私钥由企业相关负责人保管,可以用于企业在电子商务方面的对外活动,如合同签定、网上证券交易、交易收入信息等活动中标明企业身份。

3.设备数字证书

证书中包含服务器信息和服务器的公钥,用于标识证书持有服务器的身份。数字安全证书和对应的私钥由服务器管理者保管,主要用于网站交易服务器,目的是保证客户和服务器产生与交易支付等信息相关时,确保双方身份的真实性、安全性、可信任度等。

4.CA证书

证书中包含CA身份信息和CA的公钥,用于标识证书持有CA机构的身份。数字安全证书和对应私钥由CA机构相关管理者保管,可用于证书签发过程和其他使用证书的过程中,识别证书签发CA机构的身份。

(四)CA机构

CA(Certificate Authority)是数字证书认证中心的简称,是指发放、管理、废除数字证书的机构。CA的作用是检查证书持有者身份的合法性,并签发证书(在证书上签字),以防证书被伪造或篡改,以及对证书和密钥进行管理。在电子商务交易中,需要有这样具有权威性和公正性的第三方来完成认证工作,使电子商务交易能够正常进行。

CA体系的层次结构如图10-7所示。

它由根CA、品牌CA、地方CA以及持卡人CA、商家CA、支付网关CA四个层次构成。在CA的层次结构中,除去根CA外的每一级CA都可能含有多个CA。也就是说,根CA下面可以有多个被它授权的品牌CA,每个品牌CA下面可以有多个被该品牌CA授权的地方CA,每个地方CA下面可以有多个被该地方CA授权的持卡人CA、商家CA、支付网关CA。上一级CA负责下一级CA数字证书的申请,签发及管理工作。持卡人CA、商家CA和支付网关CA是面向最终用户发放证书的CA认证机构。

通过一个完整的CA认证体系,可以有效地实现对数字证书的验证。每一份数字证书都与上一级的签名证书相关联,最终通过安全认证链追溯到一个已知的可信赖的机构,由此便可以对各级数字证书的有效性进行验证。同时,这样的一种层次结构也形成了一个信任链,它保证了信任的可传递性,使得由不同的终极CA认证机构所颁发的证书能够被信任该CA层次结构中任一CA认证中心的使用者所信任。这是因为他们信任同一个根CA。根CA的密钥由一个自签证书分配,根证书的公开密钥对所有各方公开,它是CA体系中的最高层。

img78

图10-7

认证中心为了实现其功能,主要由以下四部分组成(如图10-8所示)。

RS-接收用户证书申请的证书受理者

RA-证书发放的审核部门

CP-证书发放的操作部门

CRL-记录作废证书的证书作废表

img79

图10-8

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈