对称加密和非对称加密

在网络上,A可以和B通过发送消息的方式进行通话。由于这个过程通过网络进行的,学过网络的都知道,网络传输信息,需要通过传输层,网络层,链路层,物理层等,转换为二进制数据传输。
在数据的传输过程中,可能需要经过各种路由器、交换机的转发,也可能被其他人非法获取你要传输的内容,所以就需要对这些传输信息进行加密。
加密就是把一段明文进行处理,使其不可读,加密后的信息常常称之为密文。
解密就是对密文进行处理,还原为原明文的过程。
加密的算法分为对称加密和非对称加密。
密钥一般时用来给数据加密的字符串,根据加密使用的算法的不同,生成的密钥也不同。

对称加密

对称加密是最早的一种加密方式,数据的发送方A和接收方B共同维护同一个密钥。发送方A发送数据的时候,使用这个密钥对数据加密,接收方B接收到数据的时候,也使用这个密钥对数据解密。当A为接收方,B为发送方的时候同理。

常用算法:
AES(Advanced Encryption Standard ):高级加密标准

非对称加密

非对称机密,每一个想要发送数据或者接受数据的用户都需要维护两个密钥,一个公共密钥,一个私有密钥,总的来说,公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
对于想要互相发送数据的A和B来说,A生成公钥a和私钥a,B生成公钥b和私钥b。A把自己的公钥给B,B把自己的公钥给A。A想要给B发送数据的时候,就要使用B的公钥把数据进行加密,传输到B后,B使用自己的私钥给数据进行解密。因为私钥只有B自己有,拦截数据的非法分子C即使拦截了数据,也无法破解。但是非法分子如果拦截了公钥,那是不是可以给B发送数据呢?B如果和A建立了连接,建立连接包括使用套接字(IP地址和端口)那么B就会接收A的数据,所以非法分子想要给B发送数据,就需要伪装成为A,包括伪装A的ip等。如果非法分子C伪装成功了,A和B传输的数据在TCP/IP协议中规定了三次握手和四次回收的机制,其中序列号等机制也能保证非法分子随意捏造的数据不会被B所接受。但是如果非法分子,从公钥交换开始就伪装身份,拦截双方的数据,则会产生身份验证的问题。

常用算法:
RAS
Elgamal

中间人攻击

A和B交换数据,首先就要交换密钥,交换密钥时也可以采用加密的方式交换。如果有一个非法分子C,从A向B提交公共密钥的时候就伪造了B的身份,拦截A的公钥给A返回了自己的公钥又拦截的B的公钥返回自己的公钥,当A以为自己在向B发送数据时,其实在向C发送数据,B向A发送数据时,其实和C发送数据。这时候C可以解密所有A和B之间传输的数据。
在这里插入图片描述
HTTP协议就是因为没有机制能保证通信方的身份问题而导致不安全的问题。所以就有了HTTPS协议,HTTPS协议是HTTP+SSL协议的总称。把HTTP协议用SSL加密后再传送给传输层进行传输,SSL(安全套节层)主要采取的是RSA(非对称加密)与AES(对称加密)结合的加密方式。先通过RSA交互AES的密钥,然后通过AES进行报文加密和解密,同时为了增强安全性,防止出现这种伪装身份的问题,使用PKI体系保证传输者的身份问题。

PKI(Public Key Infrastructure)公钥基础设施。

为了验证传输双方的身份,就需要引入一个第三方公共机构,当A向B传输数据时,证明返回消息的的确是B,而不是伪装的C。这个第三方认证机构,其颁发的证书也就是我们常说的CA证书(CA , Certificate Authority)。
通信的过程中,A向B发送连接请求,则B根据公钥取CA机构申请一个数字证书,把数字证书发送给A,A再根据CA的公钥验证其有效性,如果证明确实是B,再把自己要发送的数据使用服务器的公钥加密,发给服务器。

存在的疑问

  • CA证书的具体发放和验证流程
  • AES和RSA具体实现
  • HTTPS协议工作流程
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读