【求解释】关于第三方接口调用中安全的疑问
2014-06-25 00:00
218 查看
首先声明,我对什么加密解密,公钥私钥啊就是一小白。在看支付宝接口的时候,突然心生一疑问:与接口通讯中如何保证不被窃取和篡改?不懂~求解释。
下面是一个典型的支付宝接口方式。
去支付宝申请接口权限,然后他会给你一个“partnerId” 和一个 “privateKey”。
然后请求某个接口的时候应该是这样的: serviceURI+msg&partnerId=partnerId&sing=MD5(msg+partnerId+privateKey);就是说你的报文和partnerId是明文的,然后用你要发送的报文+你的partnerId+你的privateKey做MD5运算,产生签名。同时把签名发给支付宝。
支付宝接到请求后,从明文拿到你的partnerId,再从他库里检索到你的privateKey。同样对报文+你的partnerId+你的privateKey做MD5运算,如果算出得签名和你发给他的签名没有问题,认为消息是没有篡改过的。
那,我的问题是。如果我是黑客,我也去支付宝申请了一对我的“partnerId” 和 “privateKey”。然后,我拦截了你发送给支付宝的请求,截下来之后,我对请求做了篡改,再把其中的partnerId替换成我的。并用我的partnerId和privateKey重新做签名。最后再把篡改后的请求发送给支付宝。支付宝接收到的时候由于partnerId是我的了。我也是用的我的partnerId和privateKey做签名。所以他的签名验证应该是可以通过的。也就说,他会认为这个请求没有问题!但事实上这个请求是被我篡改了的! 这是怎么回事呢?
有同学说,因为使用了HTTPs 所以不用担心请求被拦截的问题。可惜我对HTTPs同样不了解。如果HTTPs足够可靠的话。那还要什么privateKey,还要签名干什么?直接请求就行了啊。不懂。希望大家能给我解释一下,越详细越好。给我科普科普。
PS:我这只是拿支付宝举例子,貌似大部分第三方接口调用都是这个模式~
下面是一个典型的支付宝接口方式。
去支付宝申请接口权限,然后他会给你一个“partnerId” 和一个 “privateKey”。
然后请求某个接口的时候应该是这样的: serviceURI+msg&partnerId=partnerId&sing=MD5(msg+partnerId+privateKey);就是说你的报文和partnerId是明文的,然后用你要发送的报文+你的partnerId+你的privateKey做MD5运算,产生签名。同时把签名发给支付宝。
支付宝接到请求后,从明文拿到你的partnerId,再从他库里检索到你的privateKey。同样对报文+你的partnerId+你的privateKey做MD5运算,如果算出得签名和你发给他的签名没有问题,认为消息是没有篡改过的。
那,我的问题是。如果我是黑客,我也去支付宝申请了一对我的“partnerId” 和 “privateKey”。然后,我拦截了你发送给支付宝的请求,截下来之后,我对请求做了篡改,再把其中的partnerId替换成我的。并用我的partnerId和privateKey重新做签名。最后再把篡改后的请求发送给支付宝。支付宝接收到的时候由于partnerId是我的了。我也是用的我的partnerId和privateKey做签名。所以他的签名验证应该是可以通过的。也就说,他会认为这个请求没有问题!但事实上这个请求是被我篡改了的! 这是怎么回事呢?
有同学说,因为使用了HTTPs 所以不用担心请求被拦截的问题。可惜我对HTTPs同样不了解。如果HTTPs足够可靠的话。那还要什么privateKey,还要签名干什么?直接请求就行了啊。不懂。希望大家能给我解释一下,越详细越好。给我科普科普。
PS:我这只是拿支付宝举例子,貌似大部分第三方接口调用都是这个模式~
相关文章推荐
- 【求解释】关于第三方接口调用中安全的疑问
- 关于app接口调用时如何使session和token票据来保证接口调用的安全
- 关于JAVA接口中的疑问
- c#学习笔记一 关于接口的几个疑问
- 关于JNI调用第三方静态库
- 关于调用新浪支付接口
- 关于Webservice接口的Java客户端调用
- 关于容器Engine疑问的解释
- c风格回调函数 vs c++风格虚基类,关于接口定义和调用的对比
- android 多媒体文件 支持第三方应用的调用接口
- 关于接口的无敌解释
- 新浪微博客户端源代码-新浪微博OAuth2.0接口--回调地址未填而出现第三方调用错误解决方法
- 关于通过.NET Framework 2.0 中 SqlDataSource 控件 Select,Update,Delete,Insert 接口调用 存储过程 的粗浅理解。
- 常用的第三方WebServices调用接口
- 关于CopyU!v2“基础性安全防护”功能的解释
- c++ 关于对象浅复制的一些疑问,希望懂得大虾给我解释解释~~
- 关于同一个进程调用dbus接口 dbus_g_bus_get () 导致程序崩掉的原因初探。
- 【转载】关于“静态方法不能调用非静态方法”的补充解释
- 关于在Cisco路由器接口上应用ip tcp adjust-mss命令后,TCP头中出现选项的解释以及处理方法
- 这个是微软官方关于office 2007转换pdf等格式的接口调用文档