数字证书和数字签名概述

论坛 期权论坛 期权     
计算机与网络安全   2019-12-22 00:08   4137   0
一次性付费进群,长期免费索取教程,没有付费教程。
进微信群回复公众号:微信群;QQ群:460500587
教程列表 见微信公众号底部菜单 |  本文底部有推荐书籍

微信公众号:计算机与网络安全
ID:Computer-network


基于Internet的电子商务系统使顾客能够方便地获得商家和企业的信息,轻松地进行网上交易和网上购物,同时增加了某些敏感或有价值的数据被滥用的风险。人们在感叹电子商务巨大潜力的同时,不得不冷静地思考在人与人互不见面的Internet上进行交易和作业时,怎么才能保证交易的公正性和安全性,保证交易双方身份的真实性。很自然地,大家会想到必须保证电子商务系统具有十分可靠的安全保密技术,即必须保证信息的保密性、交易者身份的确定性、数据交换的完整性和发送信息的不可否认性。


信息的保密性。交易中的商务信息均有保密的要求。例如,信用卡的账号和用户名被人知悉,就可能被盗用;订货和付款的信息被竞争对手获悉,就可能丧失商机。因此,在电子商务的信息传播中一般都有加密的要求。


交易者身份的确定性。网上交易的双方很可能素昧平生,相隔千里。要使交易成功,首先要能确认对方的身份。对于商家,要考虑客户端不能是骗子,而客户也会担心网上的商店是不是黑店。因此,能方便而可靠地确认对方的身份是交易的前提。对于为顾客或用户开展服务的银行、信用卡公司和销售商店,为了做到安全、保密、可靠地开展服务活动,都要进行身份认证的工作。对有关的销售商店来说,他们对顾客所用的信用卡的号码是不知道的,商店只能把信用卡的确认工作完全交给银行来完成。银行和信用卡公司可以采用各种保密与识别方法,确认顾客的身份是否合法,同时还要防止发生拒付款问题以及确认订货和订货收据信息等。


不可否认性。由于商情千变万化,交易一旦达成就不能否认,否则必然会损害其中一方的利益。例如,订购黄金,订货时金价较低,但收到订单后,金价上涨了,若收单方否认收到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此,电子交易通信过程的各个环节都必须是不可否认的。


不可修改性。交易的文件是不可修改的,如上面所说的订购黄金。供货单位在收到订单后,发现金价大幅上涨了,如果能改动文件内容,将订购数从1 t改为1 g,则可大幅受益,那么订货单位可能就会因此而蒙受巨大损失。因此,电子交易文件也要能做到不可修改,以保障交易的公正性。


现在,国际上已经有一套比较成熟的安全解决方案,那就是建立数字安全证书体系结构。数字安全证书提供了一种在网上验证身份的方式。可以使用数字证书,运用对称和非对称密码体制等密码技术建立起一套严密的身份认证系统,从而保证信息除发送方和接收方外,不被其他人窃取,信息在传输过程中不被篡改,发送方能够通过数字证书来确认接收方的身份,发送方对于自己的信息不能抵赖。


1、数字证书


公钥加密算法能够很好地解决身份认证以及信息保密的安全问题。可是,使用该技术的前提是双方必须知道对方的公开密钥。这样就产生了另一个安全问题,就是用户拿到的公开密钥是否真的是想传给数据的人的公开密钥。“中间人”攻击方式是一种潜在的威胁,在这种类型的攻击中,某人发布了一个假冒的密钥,该密钥代表的用户名和用户ID正是使用者要发信的接收方。加密的数据被这个假密钥的拥有者截获后就能获知数据的真实内容。


在公开密钥环境中,保证加密使用的公钥确实是接收者的公钥而不是假冒的,这是至关重要的。如果密钥是由接收者亲自交给自己的,就可以放心地用来加密;可是如果要与一个从未见过面的人交换信息,就不能保证手中握有正确的密钥。


(1)什么是数字证书


数字证书是网络通信中标志通信各方身份信息的一系列数据,是各类实体(持卡人/个人、商户/企业、网关/银行等)在网上进行信息交流及商务活动的身份证明。在电子交易的各个环节,交易的各方都需要验证对方证书的有效性,从而解决相互间的信任问题。


数字证书由一个权威机构——证书授权(Certificate Authority,CA)中心发行。CA中心作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任,负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。


从证书的用途来看,数字证书可分为签名证书和加密证书。签名证书主要用于对用户信息进行签名,以保证信息的不可否认性;加密证书主要用于对用户传送信息进行加密,以保证信息的真实性和完整性。最简单的数字证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下,证书中还包括密钥的有效时间、发证机关(证书授权中心)的名称、该证书的序列号等信息,证书的格式遵循 ITUT X.509国际标准。

一个标准的X.509数字证书包含以下一些内容。


● 证书的版本信息。


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


● 证书使用的签名算法


● 证书的发行机构名称,命名规则一般采用X.500格式。


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


● 证书所有人的名称,命名规则一般采用X.500格式。


● 证书所有人的公开密钥。


● 证书发行者对证书的签名。


(2)数字证书的原理


数字证书采用公钥加密体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私钥,用私钥进行解密和签名;同时设定一把公钥并由本人公开,为一组用户共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地。通过数字的手段保证加密过程是一个不可逆过程,即只有用私钥才能解密。


公开密钥技术解决了密钥发布的管理问题。商户可以公开公钥,而保留私钥。购物者可以用人人皆知的公钥对发送的信息进行加密,将其安全地传送给商户,然后商户用自己的私钥对信息进行解密。


用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了其他人无法生成的文件,形成了数字签名。


2、数字签名


在金融和商业等系统中,许多业务都要求在文件和单据上加以签名或加盖印章,证实其真实性,以备日后查验。在文件上手写签名长期以来被用来作为作者身份的证明,或表明签名者同意文件的内容。实际上,签名体现了以下几个方面的保证。


1)签名是可信的。签名使文件的接收者相信签名者是慎重地在文件上签名的。


2)签名是不可伪造的。签名证明是签字者而不是其他人在文件上签字。


3)签名不可重用。签名是文件的一部分,不可能将签名移动到不同的文件上。


4)签名后的文件是不可变的。在文件签名以后,文件就不能改变。


5)签名是不可抵赖的。签名和文件是不可分离的,签名者事后不能声称没有签过这个文件。


计算机上进行数字签名并使这些保证能够继续有效还存在一些问题。首先,计算机文件易于复制,即使某人的签名难以伪造,但是将有效的签名从一个文件剪辑和粘贴到另一个文件是很容易的,这就使这种签名失去了意义。其次,文件在签名后也易于修改,并且不会留下任何修改的痕迹。在利用计算机网络传输数据时采用数字签名能够确认以下两点。


1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。


2)保证信息自签发后到收到为止未曾做过任何修改,签发的文件是真实文件。


(1)单向散列函数


单向散列函数又称为Hash函数,主要用于消息认证(或身份认证)以及数字签名。当前,国际上最有名的单向散列函数是由Ronal Rivest(RSA中的R)编写的MD5(Message Digest Algorithm 5)和美国国家标准和技术协会开发的SHA(Secure Hash Algorithm)。


一个单向散列函数h=H(M)可以将任意长度的输入串(消息M)映射为固定长度值h[这里h称为散列值,或信息摘要MD(Message Digest)],其最大的特点是具有单向性。

单向散列函数的主要特性如下。


1)给定M,要计算出h是很容易的。


2)给定h,根据H(M)=h反推出M在计算上是不可行的。


3)给定M,要找到另外一个消息M*,使其满足H(M*)=H(M)=h在计算上也是不可行的。


4)改变M中的任意一位,h都会发生很大的变化。


向这个散列函数输入任意大小的信息,输出的都是固定长度的信息摘要。其中,MD5生成128位信息摘要,SHA生成160位信息摘要。这些信息摘要实际上可以被视为输入信息的数字指纹。


(2)数字签名的原理


有关数字签名的原理,可以通过下面的例子来说明。


用户甲向用户乙传送消息,为了保证消息传送的保密性、真实性、完整性和不可否认性,需要对要传送的消息进行数字加密和数字签名,其传送过程如图1所示。

图1  数字签名的原理


1)将消息按甲乙双方约定的单向散列函数(Hash算法)计算得到一个固定位数的信息摘要。在数学上保证:只要改动消息中的任何一位,重新计算出的信息摘要就会与原先的不相符,从而就保证了消息的不可更改性。


2)甲用自己的私钥对信息摘要进行加密,得到自己的数字签名,并将其附在原消息上一起发送给乙。


3)乙收到甲的数字签名消息后,用同样的单向散列函数对收到的消息再进行一次计算,得到一个新的信息摘要,然后与用甲的公钥进行解密解开的信息摘要相比较。如果相等,则说明报文确实来自所称的发送者,而且没有被修改过。


(3)数字签名和数字加密的区别


数字签名和数字加密的过程虽然都使用公开密钥体系,但实现的过程正好相反,使用的密钥对也不同。


数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密,这是一个一对多的关系,任何拥有发送方公开密钥的人都可以验证数字签名的正确性。


数字加密则使用的是接收方的密钥对,这是多对一的关系,任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。另外,数字签名只采用了对称加密算法,能保证发送信息的完整性、身份的确定性和信息的不可否认性;而数字加密则采用了对称加密算法和非对称加密算法相结合的方法,能保证发送信息的保密性。


微信公众号:计算机与网络安全
ID:Computer-network


【推荐书籍】

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:45
帖子:9
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP