接口安全设计之原则

接口要进行安全设计,首先要理解接口交互过程。

假设A和B是交互双方,A为请求方,B为授权方,那么交互过程是这样的:

A ——> 请求——>B

A<——响应<——B

无论是哪个过程,其实都涉及传输过程。接口的安全设计,重点就是确保传输过程的安全。那么,安全是指什么?

1、A的数据包原封不动地传输到B;

2、若有必要,希望A的数据包不会被剽窃。

针对1,本质是一致性问题,就是发出的东西和收到的东西保持一致;

针对2,本质是加密问题,就是不希望明文传输,而是密文传输。

因此:

针对1出现了各种一致性算法,就是俗话说的数字签名算法。如果说传输的数据好比是一封信,那么签名就是信封。有了信封,里面的东西就不会被人篡改。那么,充当信封的角色就是各种签名算法(也可以自创,不一定要使用网络流行算法),比如MD5、SHA-1、SHA2、HMAC等等都可以充当签名角色,确保传输一致性,只是安全级别不同而已。签名,顾名思义就是增加一个签名,原文还是需要传输的。接收端收到原文后,用同样的签名算法对原文进行运算,得到一个期待的签名,然后跟传输过来的签名做一个匹配(即签名验证),匹配得上则说明原文的一致性可信。注意,原文不一定是所有报文内容,也可以是某些敏感字段而已,关键看想保护哪些信息。签名算法一般是不可逆的运算,就是不能从签名逆向解出原文,因为很多签名算法本身就是一种消息摘要方式存在。

针对2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值