开放平台API接口加密,签名策略

在设计开放平台接口过程中,往往会涉及接口传输安全性相关的问题,笔者在详细的查阅大量资料后,结合自身的过往经验,对于接口加密及签名的相关知识做了一个系统性的总结,在方便自己查阅的同时也分享给大家做一些参考,说明不当之处欢迎指正(参考文章下文末列出,如有侵权可及时联系删除)

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

1.防伪装攻击即请求来源是否合法?(案例:在公共网络环境中,第三方 有意或恶意 的调用我们的接口)

2.防篡改攻击(案例:在公共网络环境中,请求头/查询字符串/内容 在传输过程被修改)

3.防重放攻击即请求被恶意攻击(案例:在公共网络环境中,请求被截获,稍后被重放或多次重放)

4.防数据信息泄漏(案例:截获用户登录请求,截获到账号、密码等)

从实现接口安全考虑,下面分别就加密解密和签名算法两方面进行讲解

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

1.1 为什么需要加密解密?

在客户端与服务器进行交互时,必然涉及到交互的报文(或者通俗的讲,请求数据与返回数据),如果不希望报文进行明文传输,则需要进行报文的加密与解密。所以加密的主要作用就是避免明文传输,就算被截获报文,截获方也不知道报文的具体内容。

1.2 对称加密,单向加密,非对称加密的介绍与区别

加密分为对称加密和非对称加密,对称加密效率高,但是解决不了秘钥的传输问题;非对称加密可以解决这个问题,但效率不高。(其中https是综合了对称加密和非对称加密算法的http协议。)

1.2.1 对称加密

采用单钥密的加密方法,同一个密钥可以同时用来加密和解密,这种加密方法称为对称加密,也称为单密钥加密。即约定一个秘钥,客户端使用这个秘钥对传输参数进行加密并提交至服务端,服务端使用同样的秘钥进行解密;

# 常用的对称加密算法:

1) DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;

2) 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;

3) AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,支持128、192、256、512位密钥的加密;
Blowfish

# 算法特征:

1) 加密方和解密方使用同一个密钥;

2) 加密解密的速度比较快,适合数据比较长时的使用;

3) 密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;

# 加密工具:

openssl,它使用了libcrypto加密库、libssl库即TLS/SSL协议的实现库等。TLS/SSL是基于会话的、实现了身份认证、数据机密性和会话完整性的TLS/SSL库。openssl官网。

gpg

1.2.2 单向散列加密

单向加密又称为不可逆加密算法,其密钥是由加密散列

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值