一、前言
基本上系统都会涉及与外部系统的交互,不论数据、或者业务上,这就涉及到
SDK接口开发,假设接口由您来设计并开发,那么如何保证整个流程的对接、安全性又如何保证呢?ok,开始今天的学习。
(一)SDK 介绍
SDK即“软体开发工具包”,一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。
(二)SDK 对接流程图
二、工具
工欲善其事,必先利其器
看上面流程图其实基本差不多了解全部的步骤了,剩下细节的应用什么工具什么技术来实现满足上面的流程了
- 采用蚂蚁金服官方RSA加密方式
- 支付宝RSA**工具下载地址:https://docs.open.alipay.com/291/106097/
三、SDK 接口安全
作为SDK设计及开发者,大家肯定会问:
- 接口安全吗?
- 接口数据安全?
- 接口时效性如何保证?
基于以上的灵魂拷问,咱们就来好好设计下SDK,废话不说往下走。
- 接口安全采用非对称的加密算法
OpenSslRSA进行签名,保证接口的完整性安全。- 接口数据安全采用对称加密算法
Aes对业务数据进行加密,密文传输- 时效性采用每次请求时间戳保证接口的有效请求
(一)签名算法
签名流程:
1.对参与AES签名的业务参数序列化为JSON,然后对其进行AES加密。得到data参数
【AES加密模式:CBC 填充:PKCS7 数据块:128位 输出:base64 字符集:UTF-8】
2.然后对非code、msg、sign、可空字段空值以外的所有参数字母ASCII码排序“&”连接,进行RSA签名,得到sign参数注:data、sign需要url编码后传输
验签流程:
先对返回结果进行RSA验签,得到AES密文,先根据接口版本号,时间戳验证接口有效性、时效性,再对AES密文进行解密,得到返回结果明文注:data、sign需要url解码