身份认证可以让接收方确认收到的数据来自正确的发送方,但数据在经过中间节点的时候(或者在无线信道下并不需要经过中间节点,只要能够收到信号)可能会被偷听者收到,由于数据包在网线或无线信道上传输,任何人都有可能通过信号接收设备获取传输的模拟信号,从而进一步解析得到以太网帧(或其他链路层协议帧)、IP报文、UDP/TCP报文、应用层数据。因此我们需要让偷听者即使获取了传输的数据,也无法知道传的到底是什么,即对数据进行加密。
数据加解密
数据加解密算法分为两类:对称性加解密和非对称性加解密,前者如AES、DES,后者如RSA。
1、对称性加解密
对称性加解密的加密和解密使用相同密钥,且能通过加密算法推导出解密算法,或者通过解密算法推导出加密算法。这种做法加解密速度快,适合于对大量数据进行加解密,但密钥管理困难(防止偷听者获取密钥和加解密算法)。
比如一个简单的对称性加解密可以为:加密时将数据每个字节都加3,解密时将每个字节都减3。3就可以视为一个密钥,加减操作视为加解密算法。
对称性加解密不安全,原因在于A和B之间要通过对称性加解密算法来进行加解密,他们就必须使用相同的算法以及密钥,而算法和密钥的协商也是需要传输数据包进行协商,协商的数据包被偷听者获取之后,偷听者就获取了加解密算法和密钥,从而在收到A或者B的数据之后可以对数据进行解密,当然也可以用加密算法加密自己的数据传给A或者B。
2、非对称性加解密
非对称性加解密需要两个密钥,公钥和私钥,使用公钥加密的数据只能用私钥解密,使用私钥加密的数据只能用公钥解密。
A若想和B通信,A可以先生成一个公钥和私钥,然后将公钥发送给B,B通过公钥加密数据,然后发送给A,A通过私钥解密获得数据;而如果中间有C偷窥了B发送的数据,但是C没有A的私钥无法解密。同样,B生成一对公钥和私钥,公钥发送给A,A用公钥加密数据发送给B,B收到数据后用私钥解密,中间数据被C窃取,C也无法解密。
非对称性加解密相比于对称性加解密安全,因为密钥非对称,公钥随便公开,只要私钥不在网络上传输,别人即使获得公钥,窃取了加密后的数据,也无法解密。但是,非对称加解密的算法复杂度较高,对于实时性的数据加密压力较大。所以一般使用的数据加解密方法是,使用非对称性加解密方法传输对称性加解密算法的密钥,传输数据时,用对称性加解密方法加解密。
常见的非对称性加密算法如RSA算法,RSA是三个人共同提出的,所以以三个人的姓氏首字母命名。它是基于大数的因式分解的数学难题而提出的,对一个大数进行因式分解,其复杂度相当高。
3、SSH加密原理
SSH安全协议是一种非对称加密和对称加密算法的结合。
首先服务端会通过非对称加密,产生一个公钥和一个私钥;
在客户端发起请求时,服务端将公钥暴露给客户端,这个公钥可以被任意暴露;
客户端在获取公钥之后,会先产生一个由256位随机数字组成的会话密钥,称为口令;
客户端通过公钥将这个口令加密,发送给服务器端;
服务器端通过私钥进行解密,获取到通讯口令;
之后客户端和服务端的信息传递,都使用这个口令进行对称的加密。
密钥交换算法
如果要进行对称性加解密,通信双方需要使用相同的加解密算法和密钥,那么双方如何协商他们使用的密钥呢?一种方式是双方使用RSA等非对称性加密算法进行密钥的交换,还有一些其他的密钥交换算法,比如DH密钥交换算法。
来源:中国软件评测中心 李广天
专业就是实力!中国软件评测中心感谢您的关注,我们在这里与您共同分享基于第三方服务的科技资讯与趣闻,欢迎加入我们。转载请注明出处。
领取专属 10元无门槛券
私享最新 技术干货