非安全传输协议前提下,Open API安全协议设计
来源:互联网 发布:ios开发 耗电量优化 编辑:程序博客网 时间:2024/05/21 22:24
本文考虑:在不使用安全传输协议的前提下,Open API调用的安全问题。
- 角色定义
- 处理流程
- 调用方消息发送流程
- 发布者消息接收流程
- 调用结果返回流程
- 代码设计
- 调用方代码设计
- 发布者代码设计
作者:刘海龙
微博:[http://weibo.com/liuhailong2008]
博客:[http://blog.csdn.net/stationxp]
角色定义
- 发布者:Open API的发布者。
- 调用方:Open API的调用者。
处理流程
调用方消息发送流程
- 生成一个UUID,称为
_seed
。 - 对
_seed
用自己的私钥签名,得到_sign
,提供给发布者认证身份。 - 对
_seed
用发布者的公钥加密,得到_key
。 - 使用
_seed
对消息_msg
对称加密,得到密文_msgx
。 - 将
_sign``_key``_msgx
拼接,进行Base64压缩(可选),得到_body
。 - 发送
_body
,执行API调用。
发布者消息接收流程
- 得到
_body
,拆分为_sign
、_key
、_msgx
。 - 通过调用着
uri
到注册库中找到调用者公钥_invkerpk
。 - 使用
_invkerpk
解密_sign
,得到_seed1
。 - 使用自己对私钥揭秘
_key
,得到_seed2
。 - 比对
_seed1
和_seed2
,如果一致,确认得到_seed
;否则处理过程结束。 - 使用
_seed
对_msgx
解密,得到明文消息。
调用结果返回流程
- 返回结果为预先设定的消息代码。
- 采用安全方式传输,则使用调用者的公钥加密。
代码设计
调用方代码设计
interface Invoker{ void setEndPoint(InvokerEndPoint endPoint); /** * 通过调用EndPoint实现。 */ Response get(String api,Object…params); Response post(String api,Object…params); } interface InvokerEndPoint{ Response invoke(Request request); } /** 装饰模式 */ interface SecurityInvokerEndPoint{ Response invoke(Request request); }
发布者代码设计
interface OpenApiFilter{ void setEndPoint(ExportEndPoint endPoint); /** * 通过调用EndPoint实现。 */ HttpServletResponse process(HttpServletRequest request); } interface ExportEndPoint{ Response export(Request request); } /** 装饰模式 */ interface SecurityExportEndPoint{ Response export(Request request); } interface ExportHandler{ Response handle(Object...args); }
0 0
- 非安全传输协议前提下,Open API安全协议设计
- 传输层安全协议详解
- TLS安全传输层协议
- TLS:安全传输层协议
- https -- 超文本传输安全协议
- 什么是TLS协议(传输层安全)
- Tomcat支持SSL安全传输协议
- 关于安全的超文本传输协议HTTPS
- [转] 超文本传输安全协议 ---- HTTPS
- 传输层安全协议TLS/SSL
- TLS——安全传输层协议
- 无线传输层安全协议WTLS安全机制详解
- JAVA年度安全 第八周 HTTP严格传输安全协议
- Telnet协议,SSH协议(安全外壳协议),SSL协议(安全套接层协议),HTTPS(Hypertext Transfer Protocol Secure)安全超文本传输协议
- Open API安全考虑
- 网络协议安全设计的现场指南
- 网络协议安全设计的现场指南
- HttpsURLConnection 安全传输(HTTPS--Secure Hypertext Transfer Protocol-安全超文本传输协议)
- QtAndroid详解(4):JNI调用Android系统功能(1)
- Python中lxml模块的安装
- 积累代码day1
- CSS变量试玩儿
- 2015-2-11
- 非安全传输协议前提下,Open API安全协议设计
- 管理学定律十:罗森塔尔效应与虚假同感偏差
- android仿iphone的地区选择
- 仿支付宝手势密码
- 仿iphone快速导航悬浮球
- Gray Code - Leetcode
- LDA算法入门
- ccflow (ccoa)修改菜单
- Android 开发中Handle 没有handleMessage方法