数字证书原理
CA的原理和破解方法

CA的原理和破解方法CA(Certificate Authority)是一种用于建立和验证数字证书的机构。
它的原理是利用非对称加密算法来实现数字证书的生成和验证。
非对称加密算法使用了两个密钥,一个是公钥,用于加密数据;另一个是私钥,用于解密数据。
CA的原理就是通过使用私钥对证书进行签名,从而保证证书的真实性和完整性。
当一些实体需要获取证书时,它将向CA提交请求,并提供一些身份信息。
CA会验证这些信息的真实性,并生成一个数字证书,其中包括实体的公钥和一些其他信息。
这个数字证书会使用CA的私钥进行签名,从而确保证书的真实性。
当其他实体需要验证一些数字证书时,它会获取到这个证书,并使用CA的公钥来解密证书的签名。
如果解密后的签名与证书中的信息匹配,那么就可以确认这个证书是可信的。
然而,虽然CA的原理看起来很完美,但它并不是没有漏洞的。
以下是一些常见的破解CA的方法:1.伪造证书:攻击者可以通过伪造一个CA的数字证书来冒充其他实体。
这样,攻击者就可以获取到其他实体的敏感信息,或者进行中间人攻击。
2.篡改证书:攻击者可以修改一个数字证书的内容,从而改变实体的身份信息。
这样,攻击者就可以冒充其他实体,并获取到其他实体的权限。
3.窃取私钥:如果攻击者能够获取到CA的私钥,那么他就可以签发任意数字证书,并冒充任意实体。
为了防止这些攻击,CA需要采取一些安全措施:1.加强私钥的保护:CA需要采取严格的措施来保护自己的私钥,例如使用硬件安全模块(HSM)来存储私钥,限制私钥的访问权限等。
3.定期更新证书:CA需要定期更新证书,并在证书过期前向实体发送提醒。
这样可以防止过期证书被滥用。
4.使用证书吊销列表(CRL):CA可以通过发布CRL来废止被篡改、伪造或者过期的证书。
总结起来,CA的原理是使用非对称加密算法来生成和验证数字证书。
然而,CA也存在一些安全漏洞,例如伪造证书、篡改证书和窃取私钥。
为了保证CA的安全性,需要采取一系列的安全措施,包括加强私钥的保护、严格验证身份信息、定期更新证书和使用CRL来废止无效证书。
usb key数字证书原理及应用

usb key数字证书原理及应用
USB Key数字证书是一种基于USB Key硬件设备的数字证书解决方案,它通过将数字证书存储在USB Key中,并通过USB接口与计算机进行交互,实现在计算机上进行安全身份验证和数据加密解密等操作。
USB Key数字证书的原理和应用如下:
1. 原理:
- 生成密钥对:USB Key中包含一个加密芯片,其中生成一对非对称密钥,包括一个私钥和一个公钥。
- 证书存储:将USB Key的公钥部分用来生成数字证书,并将证书存储在USB Key中。
- 数字签名:使用私钥进行身份验证和数据加密解密操作,用公钥进行数据验证和加密解密的解密验证。
2. 应用:
- 身份验证:通过USB Key中的数字证书和私钥,用户可以在特定的应用程序或网络服务中进行身份验证,确保只有持有正确的USB Key才能进行访问。
- 数据加密解密:使用USB Key中的私钥进行数据加密,确保数据在传输过程中的安全性,只有拥有相应USB Key的人才能解密和访问。
- 数字签名:用户可以使用自己的USB Key进行数字签名,将数字证书中的公钥进行非对称加密,确保数字签名的真实性和完整性。
USB Key数字证书的应用场景包括电子商务、网络银行、电子政务等领域,其中安全性要求较高且需要进行身份验证和数据保护的场景。
使用USB Key数字证书可以提供更高的安全性和防护能力,保护用户的个人隐私和敏感数据。
数字证书认证

数字证书认证数字证书认证是一种网络安全技术,通过使用密码学的方法,为网络通信中的实体提供身份认证和信息加密保护。
数字证书认证的原理和流程在现代网络通信中起着重要的作用,为保障数据的安全性和可信性提供了强有力的支持。
一、数字证书认证的概念和原理数字证书认证是基于公钥密码学理论的一种身份认证方法。
它的工作原理主要涉及到三种密码学算法:非对称密钥算法、哈希算法和数字签名算法。
非对称密钥算法利用了不同的密钥用于加密和解密信息的特性。
非对称密钥算法使用了一对密钥,分别是公钥和私钥。
公钥用于加密信息,私钥用于解密信息。
而且,公钥无需保密,可以公开发布,而私钥必须严格保密,只有持有私钥的一方才能解密信息。
非对称密钥算法具有安全性高、性能低的特点。
哈希算法用于产生信息的散列值,将信息的任意长度压缩成固定长度的散列值。
哈希算法可以将任意长度的信息映射为固定长度的哈希值,且不同的信息产生的哈希值是不同的。
常用的哈希算法有MD5、SHA-1等。
数字签名算法是通过使用私钥对信息的散列值进行加密生成数字签名,然后再通过验证者的公钥对数字签名进行解密,从而验证信息的完整性和真实性。
数字签名算法保证了信息的完整性、真实性和不可否认性。
数字证书认证是基于以上密码学算法的作用机制而展开的。
数字证书认证是将用户的公钥和相关的身份信息通过数字签名的方式结合在一起,形成一个包含公钥和相关身份信息的文件。
该文件被称为数字证书。
数字证书通过权威的数字证书颁发机构(CA)进行颁发和验证。
数字证书中的信息经过颁发机构的加密和签名处理,以确保证书的真实性和完整性,从而确保用户的身份信息不被篡改。
二、数字证书认证的流程数字证书认证的流程主要包括密钥对的生成、数字证书申请、数字证书颁发、数字证书验证等步骤。
密钥对的生成是数字证书认证的第一步。
用户首先生成一对密钥,包括公钥和私钥。
公钥可以公开发布,私钥必须严格保密,只有用户本人知道。
数字证书申请是将用户的公钥和相关的身份信息提交给数字证书颁发机构,申请数字证书。
数字证书的应用原理

数字证书的应用原理
数字证书是一种用于身份认证和电子传输安全的加密技术,其应用原理如下:
1. 数字签名:数字证书通过在文件或信息上附加数字签名来保护信息的完整性和真实性。
数字签名是用私钥对消息进行加密得到的,只有对应的公钥才能解密验证。
2. 加密解密:数字证书也可以用于加密和解密通信内容,以保护隐私和数据安全。
发件人使用接收者的公钥对消息进行加密,并附上自己的数字证书发送。
接收者使用自己的私钥对消息进行解密。
3. PKI架构:数字证书通常采用公钥基础设施(PKI)架构,其中有一个可信的证书颁发机构(CA)颁发数字证书。
数字证书中包含了证书持有者的公钥、证书颁发机构的信息以及其他相关信息。
4. 双向认证:数字证书还可以用于双向认证,即通信双方互相验证对方的身份。
此时,通信双方都需要拥有数字证书,并且在交流中相互验证对方的证书是否由可信的CA颁发。
数字证书作为一种安全保障手段,可以用于身份认证、信息加密和消息完整性保护等方面。
数字证书有助于确保电子通信的安全和隐私,是现代信息社会中不可或缺的一部分。
数字证书的原理

数字证书的原理数字证书是一种用于证明网络通信安全性的数字凭证,它采用了非对称加密技术和数字签名技术,能够确保通信的机密性、完整性和真实性。
数字证书的原理是基于公钥基础设施(PKI)的,通过证书颁发机构(CA)来验证和签发数字证书,从而保障通信的安全性。
首先,数字证书的原理是建立在非对称加密技术上的。
非对称加密技术使用一对密钥,分别是公钥和私钥。
公钥可以公开给任何人使用,而私钥则只有持有者知晓。
在数字证书中,公钥用于加密和验证数字签名,私钥用于解密和生成数字签名。
这种非对称加密技术能够保障通信的机密性,即使公钥被截获,也无法破解加密信息。
其次,数字证书的原理还涉及到数字签名技术。
数字签名是使用私钥对通信内容进行签名,接收方可以使用对应的公钥来验证签名的真实性。
数字签名能够确保通信内容的完整性和真实性,防止信息被篡改或冒充。
数字证书中包含了证书持有者的公钥和数字签名,接收方可以通过验证数字签名来确认证书的真实性。
最后,数字证书的原理还需要依赖于证书颁发机构(CA)来验证和签发数字证书。
证书颁发机构是一个可信的第三方机构,它会对申请数字证书的主体进行身份验证,并签发相应的数字证书。
证书颁发机构会将证书持有者的公钥和身份信息进行绑定,并用自己的私钥对此进行签名,形成数字证书。
接收方可以通过验证证书颁发机构的数字签名来确认证书的真实性和可信度。
综上所述,数字证书的原理是基于非对称加密技术和数字签名技术的,通过证书颁发机构来验证和签发数字证书,从而保障通信的安全性。
数字证书能够确保通信的机密性、完整性和真实性,是网络通信安全的重要保障。
通过对数字证书的原理的深入理解,我们能更好地应用数字证书技术来保障网络通信的安全性。
数字证书工作原理

数字证书工作原理
数字证书是一种用于验证和加密网站、电子邮件和其他网络通信的安全证明。
它通过使用公钥和私钥对数据进行加密和解密,确保通信的机密性和完整性,以防止被篡改或窃取。
数字证书的工作原理如下:
1. 密钥生成:证书颁发机构(CA)生成一对密钥,包括公钥
和私钥。
私钥用于加密和解密数据,仅CA持有并保密,而公
钥则可以公开。
2. 数字签名:CA使用私钥对证书申请者的身份信息进行加密
生成数字签名,证明该证书是由CA颁发的。
数字签名是基于
公钥密码学的原理,任何人都可以使用公钥对其进行验证,确认证书的真实性。
3. 证书发布:CA将证书申请者的公钥和数字签名一起打包成
数字证书,并发布到公共证书目录或通过安全传输方式发送给证书申请者。
4. 证书验证:当用户访问一个使用数字证书的网站时,他的浏览器会从站点服务器获取数字证书。
浏览器会验证证书中的数字签名,以确保证书的真实性和完整性。
如果验证通过,则可以确认站点的身份。
5. 密钥交换:通过数字证书中包含的公钥,浏览器和服务器之间建立安全通信连接。
浏览器使用站点的公钥对数据进行加密,
只有站点的私钥可以解密该数据。
6. 数据加密和解密:一旦连接建立,浏览器和服务器之间的通信将使用公钥和私钥进行加密和解密,确保数据的机密性和完整性。
通过以上的工作流程,数字证书提供了一种可靠的方法来验证和保护网络通信,以防止数据被篡改或窃取。
数字证书与加密技术
数字证书与加密技术近年来,随着互联网的迅速发展,数字证书与加密技术的重要性日益凸显。
无论是个人用户还是企业机构,都需要保护自己的信息安全。
数字证书与加密技术提供了一种安全可靠的方式,确保数据在传输和存储过程中不被恶意篡改或窃取。
本文将介绍数字证书与加密技术的概念、原理和应用领域,并探讨其在网络安全中的重要作用。
一、数字证书的概念和原理数字证书是一种用于验证网络通信双方身份的加密协议。
它由权威机构(如数字证书颁发机构)签发,用于确认与持有者相关联的公钥的合法性。
数字证书通常包含持有者的身份信息、公钥、数字签名等信息,以确保其真实可信。
通过验证数字证书的有效性,用户可以确认对方身份的真实性,进而建立安全的通信连接。
数字证书的原理基于非对称加密算法,即使用一对密钥(公钥和私钥)进行加密和解密。
公钥用于加密数据,而私钥用于解密数据。
数字证书中的公钥是由证书颁发机构签发,并可公开查阅。
而私钥则由证书持有者保管,不对外公开。
通过使用证书颁发机构的私钥对数字证书进行签名,可以确保数字证书的完整性和真实性,同时保护用户的隐私和数据安全。
二、加密技术的应用领域1. 网络通信安全:数字证书与加密技术在网络通信中起着至关重要的作用。
例如,在网银、电子商务和在线支付等领域,通过使用数字证书和加密技术,可以确保数据传输的机密性和完整性,防止私人信息被黑客窃取和篡改。
2. 数字版权保护:数字版权保护是数字证书与加密技术的另一个应用领域。
数字版权保护通过对数字内容进行加密和授权,确保内容的合法性和完整性。
只有经过授权的用户才能访问和使用受保护的数字内容,提高了版权方的权益保护能力。
3. 软件下载与安装:在现代软件开发和分发过程中,数字证书与加密技术被广泛应用于软件下载和安装过程。
软件发布者可以使用数字证书对软件进行签名,用户在下载和安装软件时,可以通过验证数字证书确保软件来源的真实性和完整性,防止下载和安装恶意软件。
4. 移动设备安全:随着智能手机和平板电脑的普及,移动设备安全问题也日益突出。
数字证书的原理和应用
数字证书的原理和应用数字证书是一种用于验证和加密网络通信的加密技术。
它在当今信息时代扮演了重要的角色,促进了网络安全和数据保护。
本文将详细介绍数字证书的原理和应用,并分解为以下几个步骤进行阐述:1. 什么是数字证书?- 数字证书是一种由第三方机构(证书颁发机构,或CA)生成和签名的电子文件,用于证明与其相关联的实体(例如网站、服务器等)的身份和合法性。
- 数字证书包含了公钥和与其相关联的元数据信息,用于验证和加密网络通信。
2. 数字证书的原理- 对于一个实体(例如网站)来说,它需要生成一对密钥:公钥和私钥,用于加密和解密数据。
- 实体将公钥发送给CA,并向CA申请证书。
- CA使用自己的私钥对实体的公钥和相关信息进行签名生成数字证书。
- 数字证书发布到可信的共享库(例如浏览器或操作系统)中,用户的设备通过这些共享库来验证证书的有效性。
3. 数字证书的应用- 网络通信安全:数字证书可用于确保网络通信的机密性和完整性。
通过验证对方的数字证书,可以确保通信双方的身份和合法性。
这在网购、在线银行等场景中尤为重要。
- 网站身份验证:数字证书可以用来验证网站的身份,以防止钓鱼网站和网络攻击。
浏览器会检查网站的数字证书,并确保其有效性和信任。
- 数字签名:数字证书也可用于数字签名,用于确保文件或电子邮件的真实性和完整性。
数字签名使用私钥来生成,然后使用相关的公钥验证。
4. 验证数字证书的步骤- 设备(例如浏览器)收到网站的数字证书,开始验证过程。
- 首先,设备将检查数字证书中的签名是否有效。
它会使用证书颁发机构(CA)的公钥来验证签名是否成功。
如果验证失败,通信将中断或警示用户。
- 其次,设备会检查证书的有效期是否过期。
如果证书已过期,设备将警示用户并阻止通信。
- 再次,设备会检查证书中的域名是否与用户访问的域名匹配。
这有助于防止钓鱼网站和欺诈行为。
- 最后,设备会检查证书是否被吊销。
证书吊销是指CA撤销了证书的信任。
数字证书的基本内容和原理
数字证书的基本内容和原理宝子们!今天咱们来唠唠数字证书这个超有趣的东西。
数字证书啊,就像是网络世界里的身份证。
那它都有啥基本内容呢?咱先说说它里面包含的信息。
它有证书持有者的信息,这就好比是身份证上的姓名、住址啥的。
比如说,一个公司的数字证书,那上面就会清楚地写着这个公司的名称、它在网络上的地址之类的。
这就方便其他的网络小伙伴知道是谁在和自己打交道呢。
还有啊,数字证书里有公钥信息。
这公钥就像是一把特殊的锁。
你想啊,在网络上大家互相传递信息,就像互相送包裹一样。
这个公钥呢,就是用来给包裹加密的。
就好像你给你的宝贝信件加个超级复杂的锁,只有拿着对应的钥匙(私钥)才能打开。
这公钥和私钥可是数字证书里超级酷的一对组合。
再说说它的有效期。
数字证书可不是无限期有效的哦,就像咱们的身份证有个有效期一样。
这是为啥呢?因为网络世界也是在不断发展变化的嘛。
如果一个证书一直有效,万一证书持有者的信息发生了变化,或者有什么安全风险,那就不好了。
所以设定个有效期,就像是定期给网络身份来个检查更新。
那数字证书的原理是啥呢?这就像是一场超级神秘又有趣的魔术。
当你要在网络上和别人安全地交流,比如说你在网上购物要给商家传你的银行卡信息(实际情况可复杂多啦)。
你的电脑或者设备就会拿出你的数字证书,然后用公钥把信息加密。
这个加密后的信息就像是变成了一串乱码,别人看到了也不知道是啥。
然后呢,这个加密的信息就被发送出去啦。
当商家收到这个加密信息的时候,它可不能直接看,因为它是乱码呀。
这时候就需要你的私钥出场了。
只有你的私钥才能解开这个加密的信息,把它还原成原来的样子。
这就保证了只有你能发送这个信息,而且只有商家能看到正确的信息,其他人都没办法偷看或者篡改。
这整个过程就像是一场秘密的传递游戏,数字证书就是这个游戏里的规则守护者。
再说说网购。
你在一个正规的购物网站上买东西,网站的数字证书就保证了你的交易信息安全。
要是没有这个保障,那你的银行卡号、密码啥的就可能被坏人偷走,那可就惨啦。
数字证书的作用和工作原理
数字证书的作用和工作原理1、数字证书是啥玩意儿数字证书啊,就像是网络世界里的一个特殊身份证。
它可不是咱平常拿在手里的那种小卡片身份证,而是一种电子文件。
这个电子文件里面包含了很多重要的信息呢。
比如说,有拥有者的名字(当然是在网络上使用的名字啦),还有一些和这个名字相关的密钥信息。
密钥这个东西就像是一把特别的钥匙,能用来打开或者锁住一些重要的网络数据。
打个比方,就好像你家里有个特别的小盒子,里面装着你最宝贝的东西,这个密钥就是打开那个小盒子的唯一钥匙。
2、数字证书的作用可不小(1)身份验证方面在网络的大海洋里,到处都是各种各样的信息和人(或者说是账号之类的)。
你怎么知道跟你聊天或者做交易的那个人或者那个网站是真的呢?这时候数字证书就派上用场了。
就像你去一个很高级的俱乐部,门口的保安会检查你的会员卡来确定你是不是会员一样。
当一个网站或者一个用户出示数字证书的时候,就相当于在说“看,我是靠谱的,我是有身份的”。
比如说你在网上购物,你看到那个购物网站有数字证书,你就可以比较放心地把你的钱和个人信息交给它,因为这个证书就像是一个官方认证,证明这个网站是合法合规的,不是什么骗子网站。
(2)数据加密功能我们在网络上传输的数据就像一封封信。
有时候这些信里可能包含了很重要的内容,比如说你的银行账户密码之类的。
如果就这么赤裸裸地在网络上传输,就像你把写着密码的纸条放在大街上一样危险。
数字证书里的密钥就可以对这些数据进行加密。
加密之后呢,就算有人在网络上截获了这封信,他看到的也只是一堆乱码,就像看天书一样,根本不知道里面写的是什么。
只有拥有正确密钥的接收方才能把这些乱码还原成原来的内容。
这就好比你把你的宝贝东西放在一个密码箱里,只有知道密码的人才能打开箱子拿到东西。
(3)保证数据完整性有时候数据在网络传输的过程中可能会被不小心修改或者损坏。
数字证书可以保证数据在传输过程中不会被偷偷地篡改。
这就好像你寄一个包裹,在包裹上盖了一个特殊的印章,当包裹到达目的地的时候,如果印章还是完好的,那就说明这个包裹没有被人乱动过。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字证书原理文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。
接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。
如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出!1、基础知识这部分内容主要解释一些概念和术语,最好是先理解这部分内容。
1.1、公钥密码体制(public-key cryptography)公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解密过程如下:∙加密:通过加密算法和公钥对内容(或者说明文)进行加密,得到密文。
加密过程需要用到公钥。
∙解密:通过解密算法和私钥对密文进行解密,得到明文。
解密过程需要用到解密算法和私钥。
注意,由公钥加密的内容,只能由私钥进行解密,也就是说,由公钥加密的内容,如果不知道私钥,是无法解密的。
公钥密码体制的公钥和算法都是公开的(这是为什么叫公钥密码体制的原因),私钥是保密的。
大家都以使用公钥进行加密,但是只有私钥的持有者才能解密。
在实际的使用中,有需要的人会生成一对公钥和私钥,把公钥发布出去给别人使用,自己保留私钥。
1.2、对称加密算法(symmetric key algorithms)在对称加密算法中,加密使用的密钥和解密使用的密钥是相同的。
也就是说,加密和解密都是使用的同一个密钥。
因此对称加密算法要保证安全性的话,密钥要做好保密,只能让使用的人知道,不能对外公开。
这个和上面的公钥密码体制有所不同,公钥密码体制中加密是用公钥,解密使用私钥,而对称加密算法中,加密和解密都是使用同一个密钥,不区分公钥和私钥。
// 密钥,一般就是一个字符串或数字,在加密或者解密时传递给加密/解密算法。
前面在公钥密码体制中说到的公钥、私钥就是密钥,公钥是加密使用的密钥,私钥是解密使用的密钥。
1.3、非对称加密算法(asymmetric key algorithms)在非对称加密算法中,加密使用的密钥和解密使用的密钥是不相同的。
前面所说的公钥密码体制就是一种非对称加密算法,他的公钥和是私钥是不能相同的,也就是说加密使用的密钥和解密使用的密钥不同,因此它是一个非对称加密算法。
1.4、RSA简介RSA是一种公钥密码体制,现在使用得很广泛。
如果对RSA本身有兴趣的,后面看我有没有时间写个RSA的具体介绍。
RSA密码体制是一种公钥密码体制,公钥公开,私钥保密,它的加密解密算法是公开的。
由公钥加密的内容可以并且只能由私钥进行解密,并且由私钥加密的内容可以并且只能由公钥进行解密。
也就是说,RSA的这一对公钥、私钥都可以用来加密和解密,并且一方加密的内容可以由并且只能由对方进行解密。
1.5、签名和加密我们说加密,是指对某个内容加密,加密后的内容还可以通过解密进行还原。
比如我们把一封邮件进行加密,加密后的内容在网络上进行传输,接收者在收到后,通过解密可以还原邮件的真实内容。
这里主要解释一下签名,签名就是在信息的后面再加上一段内容,可以证明信息没有被修改过,怎么样可以达到这个效果呢?一般是对信息做一个hash计算得到一个hash值,注意,这个过程是不可逆的,也就是说无法通过hash值得出原来的信息内容。
在把信息发送出去时,把这个hash值加密后做为一个签名和信息一起发出去。
接收方在收到信息后,会重新计算信息的hash值,并和信息所附带的hash值(解密后)进行对比,如果一致,就说明信息的内容没有被修改过,因为这里hash计算可以保证不同的内容一定会得到不同的hash值,所以只要内容一被修改,根据信息内容计算的hash值就会变化。
当然,不怀好意的人也可以修改信息内容的同时也修改hash值,从而让它们可以相匹配,为了防止这种情况,hash值一般都会加密后(也就是签名)再和信息一起发送,以保证这个hash值不被修改。
至于如何让别人可以解密这个签名,这个过程涉及到数字证书等概念,我们后面在说到数字证书时再详细说明,这里您先只需先理解签名的这个概念。
2、一个加密通信过程的演化我们来看一个例子,现在假设―服务器‖和―客户‖要在网络上通信,并且他们打算使用RSA(参看前面的RSA简介)来对通信进行加密以保证谈话内容的安全。
由于是使用RSA 这种公钥密码体制,―服务器‖需要对外发布公钥(算法不需要公布,RSA的算法大家都知道),自己留着私钥。
―客户‖通过某些途径拿到了―服务器‖发布的公钥,客户并不知道私钥。
―客户‖具体是通过什么途径获取公钥的,我们后面再来说明,下面看一下双方如何进行保密的通信:2.1 第一回合:―客户‖->―服务器‖:你好―服务器‖->―客户‖:你好,我是服务器―客户‖->―服务器‖:????因为消息是在网络上传输的,有人可以冒充自己是―服务器‖来向客户发送信息。
例如上面的消息可以被黑客截获如下:―客户‖->―服务器‖:你好―服务器‖->―客户‖:你好,我是服务器“客户”->“黑客”:你好// 黑客在―客户‖和―服务器‖之间的某个路由器上截获―客户‖发给服务器的信息,然后自己冒充―服务器‖“黑客”->“客户”:你好,我是服务器因此―客户‖在接到消息后,并不能肯定这个消息就是由―服务器‖发出的,某些―黑客‖也可以冒充―服务器‖发出这个消息。
如何确定信息是由―服务器‖发过来的呢?有一个解决方法,因为只有服务器有私钥,所以如果只要能够确认对方有私钥,那么对方就是―服务器‖。
因此通信过程可以改进为如下:2.2 第二回合:―客户‖->―服务器‖:你好―服务器‖->―客户‖:你好,我是服务器―客户‖->―服务器‖:向我证明你就是服务器―服务器‖->―客户‖:你好,我是服务器{你好,我是服务器}[私钥|RSA]// 注意这里约定一下,{} 表示RSA加密后的内容,[ | ]表示用什么密钥和算法进行加密,后面的示例中都用这种表示方式,例如上面的{你好,我是服务器}[私钥|RSA]就表示用私钥对―你好,我是服务器‖进行加密后的结果。
为了向―客户‖证明自己是―服务器‖,―服务器‖把一个字符串用自己的私钥加密,把明文和加密后的密文一起发给―客户‖。
对于这里的例子来说,就是把字符串―你好,我是服务器‖和这个字符串用私钥加密后的内容{你好,我是男人}[私钥|RSA] 发给客户。
―客户‖收到信息后,她用自己持有的公钥解密密文,和明文进行对比,如果一致,说明信息的确是由男人发过来的。
也就是说―客户‖把{你好,我是服务器}[私钥|RSA]这个内容用公钥进行解密,然后和―你好,我是服务器‖对比。
因为用―服务器‖用私钥加密后的内容,由并且只能由公钥进行解密,私钥只有―服务器‖持有,所以如果解密出来的内容是能够对得上的,那说明信息一定是从―服务器‖发过来的。
假设―黑客‖想冒充―服务器‖:“黑客”->“客户”:你好,我是服务器“客户”->“黑客”:向我证明你就是服务器“黑客”->“客户”:你好,我是服务器{你好,我是服务器}[???|RSA]//这里黑客无法冒充,因为他不知道私钥,无法用私钥加密某个字符串后发送给客户去验证。
“客户”->“黑客”:????由于―黑客‖没有―服务器‖的私钥,因此它发送过去的内容,―客户‖是无法通过服务器的公钥解密的,因此可以认定对方是个冒牌货!到这里为止,―客户‖就可以确认―服务器‖的身份了,可以放心和―服务器‖进行通信,但是这里有一个问题,通信的内容在网络上还是无法保密。
为什么无法保密呢?通信过程不是可以用公钥、私钥加密吗?其实用RSA的私钥和公钥是不行的,我们来具体分析下过程,看下面的演示:2.3 第三回合:―客户‖->―服务器‖:你好―服务器‖->―客户‖:你好,我是服务器―客户‖->―服务器‖:向我证明你就是服务器―服务器‖->―客户‖:你好,我是服务器{你好,我是服务器}[私钥|RSA]―客户‖->―服务器‖:{我的帐号是aaa,密码是123,把我的余额的信息发给我看看}[公钥|RSA]―服务器‖->―客户‖:{你的余额是100元}[私钥|RSA]注意上面的的信息{你的余额是100元}[私钥],这个是―服务器‖用私钥加密后的内容,但是我们之前说了,公钥是发布出去的,因此所有的人都知道公钥,所以除了―客户‖,其它的人也可以用公钥对{你的余额是100元}[私钥]进行解密。
所以如果―服务器‖用私钥加密发给―客户‖,这个信息是无法保密的,因为只要有公钥就可以解密这内容。
然而―服务器‖也不能用公钥对发送的内容进行加密,因为―客户‖没有私钥,发送个―客户‖也解密不了。
这样问题就又来了,那又如何解决呢?在实际的应用过程,一般是通过引入对称加密来解决这个问题,看下面的演示:2.4 第四回合:―客户‖->―服务器‖:你好―服务器‖->―客户‖:你好,我是服务器―客户‖->―服务器‖:向我证明你就是服务器―服务器‖->―客户‖:你好,我是服务器{你好,我是服务器}[私钥|RSA]―客户‖->―服务器‖:{我们后面的通信过程,用对称加密来进行,这里是对称加密算法和密钥}[公钥|RSA] //蓝色字体的部分是对称加密的算法和密钥的具体内容,客户把它们发送给服务器。
―服务器‖->―客户‖:{OK,收到!}[密钥|对称加密算法]―客户‖->―服务器‖:{我的帐号是aaa,密码是123,把我的余额的信息发给我看看}[密钥|对称加密算法]―服务器‖->―客户‖:{你的余额是100元}[密钥|对称加密算法]在上面的通信过程中,―客户‖在确认了―服务器‖的身份后,―客户‖自己选择一个对称加密算法和一个密钥,把这个对称加密算法和密钥一起用公钥加密后发送给―服务器‖。
注意,由于对称加密算法和密钥是用公钥加密的,就算这个加密后的内容被―黑客‖截获了,由于没有私钥,―黑客‖也无从知道对称加密算法和密钥的内容。
由于是用公钥加密的,只有私钥能够解密,这样就可以保证只有服务器可以知道对称加密算法和密钥,而其它人不可能知道(这个对称加密算法和密钥是―客户‖自己选择的,所以―客户‖自己当然知道如何解密加密)。
这样―服务器‖和―客户‖就可以用对称加密算法和密钥来加密通信的内容了。
总结一下,RSA加密算法在这个通信过程中所起到的作用主要有两个:∙因为私钥只有“服务器”拥有,因此“客户”可以通过判断对方是否有私钥来判断对方是否是“服务器”。
∙客户端通过RSA的掩护,安全的和服务器商量好一个对称加密算法和密钥来保证后面通信过程内容的安全。
如果这里您理解了为什么不用RSA去加密通信过程,而是要再确定一个对称加密算法来保证通信过程的安全,那么就说明前面的内容您已经理解了。