开发者社区> FantuanTech> 正文

系统间跳转安全加密方案

简介: 提供系统间跳转安全加密方案
+关注继续查看

一、系统间页面跳转安全需求

很多企业应用都有以下的场景:第三方系统携带参数跳转到本公司应用的页面,需要确定这个跳转确实是由特定第三方公司发起的,跳转的时候携带的参数不被黑客修改,携带的参数是加密的,不能明文显示,这就是典型的的安全要求:

1、确保数据来源可信

2、确保数据不被泄漏

3、确保数据不被篡改


二、安全方案

1、采用数字签名算法确保来源可信

数字签名算法可以看作是带有密钥的消息摘要算法,是非对称加密算法和消息摘要算法的结合体,能够对数据的来源进行认证,保证来源的可信,防止数据传输过程中的伪冒。一般情况下,数字签名算法是先使用消息摘要算法对原始消息进行摘要计算,然后使用私钥对摘要值进行签名处理,验证签名的时候择使用公钥验证消息的摘要值。

典型的数字签名算法有:RSA、DSA、ECDSA、国密SM2等,其中RSA堪称是非对称加密算法的经典,基于RSA算法秘钥,结合消息摘要算法就可以形成对应的签名算法,例如MD5WithRSA、SHA1WithRSA等。


2、采用对称加密算法加密数据

对称加密算法是目前应用范围最广的加密算法,其加密的密钥和解密的密钥是相同的,所以称为对称加密,加密的速度较快,性能较好,常用于数据传输过程中原始数据的加密。

目前最常见的对称加密方式有:DES、3DES、AES、IDEA、PBE等,其中AES和3DES应用最为广泛。

3、采用摘要算法防止数据被篡改

消息摘要算法普遍应用于验证数据的完整性,判断用于数据是否被篡改过,这是非常重要的,如果没有校验很容易导致被篡改的数据进入系统,对于金融等行业来说,是非常严重的。

消息摘要算法经过多年的发展,主要包括以下几种:MD算法、SHA算法、MAC算法、CRC算法,说起MD5、SHA1、CRC32,都是大家耳熟能详的算法了,应用非常广泛。

三、使用案例

既然整体方案确定了,那么我们接下来就一起以一个具体的案例来看看使用以上方案进行安全跳转的步骤:

1、假设待跳转的连接为:http://baidu.com,待携带的参数为name=hello。

2、使用AES对称算法对hello进行加密,生成加密后的加密值。

3、使用CRC32算法对"name=hello加密值"进行消息摘要处理,生成校验码记为crc,这里也可以使用其他的算法,自主选择合适的即可。如果有多个待携带的参数,则按照字典进行参数排序,以key=value的形式用&进行拼接。

4、第三方系统生成公私钥,使用MD5WithRSA算法,使用私钥对"name=hello加密值"字符串进行签名,签名值使用Base64算法编码,记为sign。

5、将参数、crc、sign携带在url上进行跳转,http://baidu.com?name=xxxxxxxxx&crc=yyyyyyy&sign=zzzzzzz

6、服务端收到跳转请求以后解析url上的参数,分别获取到name,crc和sign。

7、服务端使用第三方系统提供的公钥对sign签名进行签名校验

8、校验通过以后对参数按照字典进行排序,以key=value的形式用&进行拼接,然后同样使用CRC32算法进行摘要计算,生成出的校验码与crc值进行比对,如果相等,则证明了完整性。

9、使用双方约定的AES密钥对参数的值进行解密,得到最终的参数值。

以上就完成了完整流程的跳转安全校验,其中使用的算法可以根据需要灵活替换。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
系统间跳转安全加密方案
提供系统间跳转安全加密方案
55 0
17、深入理解计算机系统笔记:非本地跳转
1、C提供了用户级异常控制流,称为非本地跳转(nonlocal jump),它将控制流从一个函数转移到另一个当前正在执行的函数;而不需要经过正常的调用-返回序列。通过setjmp和longjmp来实现的。
798 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
13801 0
iOS应用内跳转系统设置相关界面的方法
iOS应用内跳转系统设置相关界面的方法
25 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18391 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
24948 0
Eclipse如何跳转到Java系统类的源代码
Eclipse如何跳转到Java系统类的源代码
35 0
iOS监听物理截图自动生成截图并跳转到反馈页面进行显示(截图内容包括系统的弹框视图UIAlertView/Controller)
iOS监听物理截图自动生成截图并跳转到反馈页面进行显示(截图内容包括系统的弹框视图UIAlertView/Controller)
40 0
Android 跳转系统页面相关
android.provider.Settings。 ACTION_ACCESSIBILITY_SETTINGS : // 跳转系统的辅助功能界面 Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS); startActivity(intent); ACTION_ADD_ACCOUNT : // 显示添加帐户创建一个新的帐户屏幕。
854 0
+关注
95
文章
172
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载