Day15 接口、服务器与网络知识 2019-10-18

作为后台产品经理,常常需要进行外部系统的对接,在设计开放平台接口过程中,往往会涉及接口传输安全性相关的问题,笔者在详细的查阅大量资料后,结合自身的过往经验,对于接口加密及签名的相关知识做了一个系统性的总结,在方便自己查阅的同时也分享给大家做一些参考

接口安全性问题主要来源于几方面考虑:

  • 防伪装攻击即请求来源是否合法?(案例:在公共网络环境中,第三方 有意或恶意 的调用我们的接口)
  • 防篡改攻击(案例:在公共网络环境中,请求头/查询字符串/内容 在传输过程被修改)
  • 防重放攻击即请求被恶意攻击(案例:在公共网络环境中,请求被截获,稍后被重放或多次重放)
  • 防数据信息泄漏(案例:截获用户登录请求,截获到账号、密码等)
    从实现接口安全考虑,下面分别就加密解密和签名算法两方面进行讲解。

一、加密解密的概念与算法

在客户端与服务器进行交互时,必然涉及到交互的报文(或者通俗的讲,请求数据与返回数据),如果不希望报文进行明文传输,则需要进行报文的加密与解密。

所以加密的主要作用就是避免明文传输,就算被截获报文,截获方也不知道报文的具体内容。

1.2 对称加密,单向加密,非对称加密的介绍与区别
其中https是综合了对称加密和非对称加密算法的http协议。
1.2.1 对称加密

采用单钥密的加密方法,同一个密钥可以同时用来加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

即约定一个秘钥,客户端使用这个秘钥对传输参数进行加密并提交至服务端,服务端使用同样的秘钥进行解密;

1.2.2 单向散列加密

单向加密又称为不可逆加密算法,其密钥是由加密散列函数生成的。单向散列函数一般用于产生消息摘要,密钥加密等

1.2.3 非对称加密

非对称加密即公钥加密,只有私钥能解密。私钥加密,只有公钥能解密。A首先生成一对公钥和私钥,然后将公钥公开给别人加密,别人使用公钥加密报文发送给A,A使用私钥解密。反之相同。(发送给某人,用某人的公钥加密。证明自己的身份,用自己的私钥加密)

非对称加密很少用来加密数据,速度太慢,通常用来实现身份验证,发送方用对方的公钥加密,可以保证数据的机密性(公钥加密);发送方用自己的私钥加密,可以实现身份验证(数字签名);

你可能感兴趣的:(Day15 接口、服务器与网络知识 2019-10-18)