美文网首页
网络安全交互的常用方式

网络安全交互的常用方式

作者: 浮名虚誉架构师 | 来源:发表于2018-07-07 14:55 被阅读0次

后端经常需要与web,andorid,ios交互,有的时候前后端交互的请求和响应数据的进行明文传输,接口也没有做严格的身份校验,确保该接口只能由特定的用户访问。为了保证安全性,可以采取以下几种方式

使用https

HTTP 协议(超文本传输协议)是客户端浏览器或其他程序与 Web 服务器之间的应用层通信协议;HTTPS 协议可以理解为 HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。SSL/TLS协议解决了:所有信息都是加密传播,第三方无法窃听;具有校验机制,一旦被篡改,通信双方会立刻发现;配备身份证书,防止身份被冒充。

对请求进行签名

加签和验签就是在请求发送方将请求参数通过加密算法生成一个sign值,放到请求参数里;请求接收方收到请求后,使用同样的方式对请求参数也进行加密得到一个sign值,只要两个sign值相同,就说明参数没有被篡改。验签过程是将请求url按照上述的规则进行同样的操作,计算得到参数的签名值,然后和参数中传递的sign值进行对比,如果一致则校验通过,否则校验不通过。生成签名参数sign如下:

1.将所有以头参数,除去sign本身,以及值是空的参数,按参数键字母升序排序。

2.然后把排序后的参数按参数1值1参数2值2......参数n值n的方式拼接成一个字符串。

3.把分配给接入方的验证密钥key拼接在第2步得到的字符串前面。

4.在上一步得到的字符串前面加上密钥key,然后计算md5值,得到32位字符串,然后转成大写,得到的字符串作为sign的值放到请求参数里。

对请求和响应进行加解密

对一些敏感数据,我们需要进行加密处理,常见的加解密方式有AES 对成加密方式和RSA非对成方式,至于如何运用,可以参考https的原理,有点复杂,不过可以简单分成如下几步:

1.服务器端有一个密钥对,即公钥和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人。

2.服务器将自己的公钥发送给客户端。

3.客户端收到服务器端的公钥之后,会对公钥进行检查,验证其合法性,如果发现发现公钥有问题,那么HTTPS传输就无法继续。也就是说这是验证服务器发送的数字证书的合法性。如果公钥合格,那么客户端会生成一个随机值,这个随机值就是用于进行对称加密的密钥,我们将该密钥称之为client key,即客户端密钥。然后用服务器的公钥对客户端密钥进行非对称加密,这样客户端密钥就变成密文了。

4.客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。

5.服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文。

6.服务器将加密后的密文发送给客户端。

7.客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。

相关文章

网友评论

      本文标题:网络安全交互的常用方式

      本文链接:https://www.haomeiwen.com/subject/rfiwuftx.html