一个加密通信过程

公钥密码体制(public-key cryptography)

公钥密码体制分为三个部分,公钥,私钥,加密解密算法。

加密:通过加密算法和公钥对内容(也称明文)进行加密,得到密文。加密过程要用到公钥。

解密:通过解密算法和公钥对密文进行解密,得到明文。解密过程需要用到私钥

由公钥加密的内容,只能由私钥解密;由私钥加密的内容,只能由公钥解密。

对称加密算法(symmetric key algorithms)

解密与加密使用密钥是相同的

非对称加密算法(asymmetric key algorithms)

加密使用的密钥和解密使用的密钥是不相同的。

RSA

RSA密码体制是一种公钥密码体制的一种算法

签名

签名就是在信息的后面再加上一段内容,可以证明信息没有被修改过。一般是对传输明文做一个hash计算得到一个hash值(此过程不可逆),将hash值增加到明文后,统一加密后进行传送。对方收到后进行解密,hash校验,确保信息不被恶意修改。

一个加密通信过程

  • 第一回合

“客户”--->"服务器":你好

“服务器”--->“客户”:你好,我是服务器

//此最原始的非加密方式进行通信,服务器很容易就被hacker冒充,从而截获信息

  • 第二回合(解决服务端被冒充的漏洞)

“客户”--->“服务器”:你好   //客户有一个服务器发布的公钥

"服务器"--->“客户”:你好,我是服务器

“客户”---->“服务器”:向我证明你是服务器  //防止服务器被hacker冒充

"服务器"---->“客户”:你好,我是服务器{你好,我是服务器}[私钥|RSA]

“客户”---->“服务器”:{我的账号是aaa,密码是123,我银行卡的余额是多少}[公钥|RSA]

“服务器”---->"客户":{你的余额是100元}[私钥|RSA]

//此处服务器用发来一段明文和私钥加密的明文,客户端用公钥解密,后对比明文,如一致,则说明此对端确实拥有对应的私钥,确实是可信服务器

//第二回合的漏洞在于:公钥是不同客户都会拥有的,故导致服务器发送给某一个客户的密文(其余额),能够被拥有公钥的所有客户解密,从而导致信息泄漏

  • 第三回合(解决服务端到某个客户的通信,对所有客户可见漏铜)

“客户”--->“服务器”:你好   //客户有一个服务器发布的公钥

"服务器"--->“客户”:你好,我是服务器

“客户”---->“服务器”:向我证明你是服务器  //防止服务器被hacker冒充

"服务器"---->“客户”:你好,我是服务器{你好,我是服务器}[私钥|RSA]

“客户”--->“服务器”:{我们后面通信用对称加密来进行,这是对称加密算法和密钥}[公钥|RSA]

“服务器”-->"客户":{ok, 收到}[密钥|对称加密算法]

“客户”---->“服务器”:{我的账号是aaa,密码是123,我银行卡的余额是多少}[密钥|对称加密算法]

“服务器”---->"客户":{你的余额是100元}[密钥|对称加密算法]

//上述过程都是基于客户能够安全获得服务器发布的公钥。

//获取公钥无外乎两种方式:1、把公钥放到互联网的某个地方的一个下载地址,事先给“客户”去下载;2、每次和“客户”开始通信时,“服务器”把公钥发给“客户”

但是这两种方法都存在弊端:对于1方法,客户根本没有办法确认这个下载地址是不是服务器发布的,下载的公钥不可信;对于2方法,任何荣都可以生成公钥、私钥对,无法确认公钥到底是服务器还是hacker的。

这些问题的根源都来自于客户端无法确认公钥与服务器的对应关系,不知道公钥是来自真正的服务器还是hacker。

为了解决此问题,从而产生的数字证书,数字证书可以保证数字证书里公钥确实是这个证书的所有者(subject)的,或者证书可以用来确认对方的身份。

  • 第四回合(解决最初的公钥传递到客户的问题)

“客户”--->“服务器”:你好

"服务器"--->“客户”:你好,我是服务器  ,这是我的数字证书(客户收到数字证书后,验证客服务端是否可行)

“客户”---->“服务器”:向我证明你是服务器,这是一个随机字符串

"服务器"---->“客户”:你好,我是服务器{一个随机字符串hash后密文}[私钥|RSA]//客户收到对应的响应,解密后与随机字符串的hash结果进行比较。此处将随机字符串hash后加密,可以防止破解密钥

“客户”--->“服务器”:{我们后面通信用对称加密来进行,这是对称加密算法和密钥}[公钥|RSA]

“服务器”-->"客户":{ok, 收到}[密钥|对称加密算法]

“客户”---->“服务器”:{我的账号是aaa,密码是123,我银行卡的余额是多少}[密钥|对称加密算法]

“服务器”---->"客户":{你的余额是100元}[密钥|对称加密算法]

//通过四个回合的改进:通信过程还有以下几个问题:

1、检查证书完毕后,客户发送一个随机的字符串给服务器,确认其是否有对应的密钥,这导致客户可以用一个简单有规律的字符串,去给服务端加密获得密文,这样可以分析私钥的规律,从而可能导致私钥泄露

解决:服务器收到随机字符串后,对其hash后进行加密传输到客户,客户解密后与原随机字符串hash结果比较。

2、在双方通信的过程中,黑客可以截获发送了的加密内容,虽然无法破解此内容,但他可以扰乱通信过程。

解决:这个是给通信内容的包进行编号,从而确保每个包都含有一个序号或一个随机值,对端会丢掉之前出现过的信息,

3、hacker可以篡改截获后的密文,从而破坏服务器和客户之间的正常通信

解决:在信息后加一个数字签名,对端收到后,对其内容进行完整性校验

时间: 2024-11-10 14:11:07

一个加密通信过程的相关文章

探究公钥、私钥、对称加密、非对称加密、hash加密、数字签名、数字证书、CA认证、https它们究竟是什么,它们分别解决了通信过程的哪些问题。

一.准备 1. 角色:小白.美美.小黑. 2. 剧情:小白和美美在谈恋爱:小黑对美美求而不得.心生怨念,所以从中作梗. 3. 需求:小白要与美美需通过网络进行通信,联络感情,所以必须保证通信的安全性. 二.由通信过程中可能出现的问题来引出公钥.私钥.对称加密.非对称加密.hash加密.数字签名.数字证书.CA认证.https的相关知识 1. 场景1: 小白和美美在 http 协议下进行通信. 1.1 能否完成通信:能. 1.2 还可能出现其他问题:容易受到网络中间人攻击:在http协议下进行通信

加密解密过程

1,首先来说说有关加密解密有关的信息 信息安全标准NIST(National Institute of Standards and Technology)美国国家标准与技术研究院 openssl有CIA C:保密性: 数据保密性 隐私性 A:完整性: 数据完整性 系统完整性 I:可用性 真实性:一个实体是真实的,可被验证的. 可追溯性:一旦被攻击,能够追溯攻击源在哪 2,OSI规定的X.800 1)安全攻击: 被动攻击:窃听 主动攻击:1,伪装 2,重播 3,消息修改 4,拒绝攻击等 2)安全服

加密 解密过程详解及openssl自建CA  

            加密 解密过程详解及openssl自建CA 为了数据信息能够安全的传输要求数据要有一定的安全性那么数据的安全性包含哪些方面的特性呢?    NIST(美国信息安全署)做了如下的定义:    保密性:       1,数据的保密性 指的是数据或隐私不向非授权者泄漏                   2,隐私性  信息不被随意的收集    完整性:       1,数据的的完整性:信息或程序只能被指定或授权的方式改变不能被随意的             修改        

【转】WCF入门教程二[WCF应用的通信过程]

一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的对比图如下: WCF与其他分布式技术对比表 二.WCF中的 "A","B","C" 介绍 我们先看个生活中的例子,某一天,公司的领导让你去送一份合同文件,送文件的过程你可以选择的交通方式为"打车"."公交".&

数字证书签发,授权等相关以及https建立通信过程

一直以来都对数字证书的签发,以及信任等事情一知半解.总算有个闲适的周末来总结和深入一下相关的知识. CA: CA(Certificate Authority)是证书的签发机构,它是负责管理和签发证书的第三方机构,是受到广泛信任的机构.一般在我们的电脑中,浏览器里,或者手机里都会内置一批这样的受信机构的根证书. 证书信任链: 比如我是CA机构我签发了一封证书 我这份证书是信任B证书的另外B证书又信任了其他的C证书......那么这条链条下去的都可以信任.所以一旦CA机构的根证书不可信了,那么所有由

二、WCF应用的通信过程

注:本文为学习摘抄,原文地址:http://www.cnblogs.com/iamlilinfeng/archive/2012/09/26/2703759.html 一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的对比图如下: WCF与其他分布式技术对比表 二.WCF中的 "A","B","C"

WCF入门教程二[WCF应用的通信过程]

一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的对比图如下: WCF与其他分布式技术对比表 二.WCF中的 "A","B","C" 介绍 我们先看个生活中的例子,某一天,公司的领导让你去送一份合同文件,送文件的过程你可以选择的交通方式为“打车”.“公交”.“地铁”,当然费用是根据发票来报销的,到了

HTTPS加密通信原理及数字证书系统

https加密通信原理: 公钥私钥成对,公钥公之于众,私钥只有自己知道. 用公钥加密的信息只能由与之相对应的私钥解密. 甲给乙发送数据时,甲先用乙的公钥加密这段数据,再用自己的私钥对这段数据的特征数据(数字指纹,通过HASH函数生成)进行RSA运算形成签名.乙接到数据后,先用自己的私钥解密数据,并用甲的公钥对甲的签名进行验证(解出数字指纹,与接收到的数据的数字指纹做对比).如此,可保证发信人无法抵赖曾发过该信息,也确保报文在传递过程中不会被篡改. CA证书: CA证书是指CA颁发给用户的证书,其

WCF系统之WCF应用的通信过程

一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的对比图如下: WCF与其他分布式技术对比表 二.WCF中的 "A","B","C" 介绍 我们先看个生活中的例子,某一天,公司的领导让你去送一份合同文件,送文件的过程你可以选择的交通方式为"打车"."公交".&