开放接口的安全验证方案(AES+RSA)

AES算法流程

对于发送方,它首先创建一个AES私钥,并用口令对这个私钥进行加密。然后把用口令加密后的AES密钥通过Internet发送到接收方。发送方解密这个私钥,并用此私钥加密明文得到密文,密文和加密后的AES密钥一起通过Internet发送到接收方。接收方收到后再用口令对加密密钥进行解密得到AES密钥,最后用解密后的密钥把收到的密文解密成明文。

RSA算法实现流程

首先,接收方创建RSA密匙对,即一个公钥和一个私钥,公钥被发送到发送方,私钥则被保存在接收方。发送方在接收到这个公钥后,用该公钥对明文进行加密得到密文,然后把密文通过网络传输给接收方。接收方在收到它们后,用RSA私钥对收到的密文进行解密,最后得到明文。

AES与RSA相结合数据加密方案

RSA算法是公开密钥系统的代表,其安全性建立在具有大素数因子的合数,其因子分解困难这一法则之上的。Rijndael算法作为新一代的高级加密标准,运行时不需要计算机有非常高的处理能力和大的内存,操作可以很容易的抵御时间和空间的攻击,在不同的运行环境下始终能保持良好的性能。这使AES将安全,高效,性能,方便,灵活性集于一体,理应成为网络数据加密的首选。相比较,因为AES密钥的长度最长只有256比特,可以利用软件和硬件实现高速处理,而RSA算法需要进行大整数的乘幂和求模等多倍字长处理,处理速度明显慢于AES[5];所以AES算法加解密处理效率明显高于RSA算法。在密钥管理方面,因为AES算法要求在通信前对密钥进行秘密分配,解密的私钥必须通过网络传送至加密数据接收方,而RSA采用公钥加密,私钥解密(或私钥加密,公钥解密),加解密过程中不必网络传输保密的密钥;所以RSA算法密钥管理要明显优于AES算法。
从上面比较得知,由于RSA加解密速度慢,不适合大量数据文件加密,因此在网络中完全用公开密码体制传输机密信息是没有必要,也是不太现实的。AES加密速度很快,但是在网络传输过程中如何安全管理AES密钥是保证AES加密安全的重要环节。这样在传送机密信息的双方,如果使用AES对称密码体制对传输数据加密,同时使用RSA不对称密码体制来传送AES的密钥,就可以综合发挥AES和RSA的优点同时避免它们缺点来实现一种新的数据加密方案。

具体过程是先由接收方创建RSA密钥对,接收方通过Internet发送RSA公钥到发送方,同时保存RSA私钥。而发送方创建AES密钥,并用该AES密钥加密待传送的明文数据,同时用接受的RSA公钥加密AES密钥,最后把用RSA公钥加密后的AES密钥同密文一起通过Internet传输发送到接收方。当接收方收到这个被加密的AES密钥和密文后,首先调用接收方保存的RSA私钥,并用该私钥解密加密的AES密钥,得到AES密钥。最后用该AES密钥解密密文得到明文。

AES+RSA结合最佳实践

基本要求

  1. 保证传输数据的安全性

  2. 保证数据的完整性

  3. 能够验证客户端的身份

基本流程

1234567891011
请求:1. 服务器端(server)和客户端(client)分别生成自己的密钥对2. server和client分别交换自己的公钥3. client生成AES密钥(aesKey)4. client使用自己的RSA私钥(privateKey)对请求明文数据(params)进行数字签名5. 将签名加入到请求参数中,然后转换为json格式6. client使用aesKey对json数据进行加密得到密文(data)7. client使用sever的RSA公钥对aesKey进行加密(encryptkey)8. 分别将data和encryptkey作为参数传输给服务器端

服务器端进行请求响应时将上面流程反过来即可
posted on 2018-08-10 22:21 micwin 阅读(...) 评论(...)  编辑 收藏

转载于:https://www.cnblogs.com/chinanetwind/articles/9457801.html

开放接口的安全验证方案(AES+RSA)相关推荐

  1. Android采用AES+RSA的加密机制对http请求进行加密

    前言 最近维护公司APP应用的登录模块,由于测试人员用Fiddler抓包工具抓取到了公司关于登录时候的明文登录信息.虽然使用的是HTTPS的方式进行http请求的,但还是被Fiddler抓到了明文内容 ...

  2. 开放接口签名(Signature)实现

    开放接口签名(Signature)实现方案 既然是对外开放,那么调用者一定没有我们系统的Token,就需要对调用者进行签名验证,签名验证采用主流的验证方式,采用Signature 的方式. 字段 类型 ...

  3. 开放接口加密方案_27种开放式解决方案,适用于所有教育

    开放接口加密方案 开放(从开源软件到开放硬件,再到开放原则)正在改变教育的范式. 因此,为庆祝今年的一切,我收集了2017年在Opensource.com上发表的有关该主题的27篇最佳文章. 我将它们 ...

  4. 开放接口/RESTful/Api服务的设计和安全方案详解

    一.总体思路 这个涉及到两个方面问题: 一个是接口访问认证问题,主要解决谁可以使用接口(用户登录验证.来路验证) 一个是数据数据传输安全,主要解决接口数据被监听(HTTPS安全传输.敏感内容加密.数字 ...

  5. 如何设计安全可靠的开放接口---对请求参加密保护

    文章目录 [如何设计安全可靠的开放接口]系列 前言 AES加解密 代码实现 [如何设计安全可靠的开放接口]系列 1. 如何设计安全可靠的开放接口-之Token 2. 如何设计安全可靠的开放接口-之Ap ...

  6. 浅谈客户端与服务端的加密通讯(HTTPS/AES/RSA/RequestBodyAdviceAdapter/ResponseBodyAdvice)

    目录 前言 HTTPS与SSL证书 AES对称加密 RSA非对称加密 AES + RSA 组合加密 服务端请求参数解密拦截器RequestBodyAdviceAdapter 服务端返回参数加密拦截器R ...

  7. App开放接口api安全:Token签名sign的设计与实现

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 来源:cnblogs.com/whcghost/p/5657 ...

  8. 开放接口API安全性

    服务端对外开放API接口,尤其对移动应用开放接口的时候,更需要关注接口安全性的问题,要确保应用APP与API之间的安全通信,防止数据被恶意篡改等攻击. 安全考量点 Token机制 开放接口时最基本需要 ...

  9. 开发API接口的安全验证:token,参数签名,时间戳

    前言:服务端与前端对接的API接口,如果被第三方抓包并进行恶意篡改参数,可能会导致数据泄露和篡改数据,下面主要围绕token,签名,时间戳,三个部分来保证API接口的安全性. 强烈推荐,简单明了: 瞧 ...

  10. 微信互动开放接口开发指南

    今天下午,微信公众账号后台升级了,最为明显的莫过于服务号收费(300元/次)认证服务,增加了不少接口,应该能满足一部分人的需求,比如回复图片.用户位置定位等等. 本文暂且不讨论服务号升级后,新接口问题 ...

最新文章

  1. Exchange Technical community discussion group
  2. Java静态变量与静态方法与成员变量成员方法的区别
  3. 2011年华科计算机考研复试机试题真题
  4. leetCode-995:K 连续位的最小翻转次数
  5. 论文笔记_S2D.20_2017-ICCV-从单张RGB图像到精确尺度深度图评估的一种双支网络
  6. Kettle Spoon入门学习
  7. 如何查询Opencv的版本
  8. PyQt5 clicked和clicked[bool]信号区别
  9. 小牛电动股权曝光:李彦持股4.4% 李一男持股降至28.1%
  10. JQuery(js辅助开发类库)
  11. vue核心之虚拟DOM(vdom)与真实DOM页面渲染过程
  12. A Game of Thrones(104)
  13. java软件更改背景颜色_Java应用程序-右击时弹出swing-更改背景颜色
  14. 华为手机在线将语音转换文字的办公黑科技便签,轻松提高你的工作效率
  15. android开发播放直播视频rtsp方案总结
  16. DevOps怎么读?在线标准分发音
  17. nginx rewrite规则语法(关于break和last分析得很好)
  18. MySQL升级之路(5.6-8.0)
  19. fastadmin 后台开发实例技巧
  20. 用HTML5做一个类似于智能对话的可以自动回复的网页对话框

热门文章

  1. jdk优先级队列、延迟队列原理
  2. SpringBoot整合Sharding-JDBC实现水平分表
  3. JavaScript 获取小数任一小数点后的位数的小数
  4. 【jQuery获取下拉框select、单选框radio、input普通框的值和checkbox选中的个数】
  5. Python nose测试工具报ImportError: No Module named 错误
  6. [android] android下文件访问的权限
  7. 奇妙生活-神奇的数字-1的故事
  8. 动态ARP检测,引发上网断断续续
  9. CodeRush For .Net 使用-------使用标签
  10. Visual Studio Code如何打开多个tab标签