【求解释】关于第三方接口调用中安全的疑问
2011-12-31 10:16
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票据来保证接口调用的安全
- android调用国家气象局天气预报接口json数据格式解释
- 设计基于HTML5的APP登录功能及安全调用接口的方式(原理篇)
- 使用HttpClient调用第三方接口
- 调用第三方接口时产生的数组问题
- 关于客户端调用WebService传入值为空的解释解决方案
- 关于公众平台接口不再支持HTTP方式调用的公告
- 关于PHP写APP接口的安全问题探讨
- 关于通过.NET Framework 2.0 中 SqlDataSource 控件 Select,Update,Delete,Insert 接口调用 存储过程 的粗浅理解。
- 关于PHP创建接口及调用接口的简短例子(本地)
- 关于Silverlight调用天气预报接口问题
- 关于JAVA接口中的疑问
- 关于微信公众号开发调用jssdk接口以及腾讯地图API
- 关于使用axis调用webservice接口方法
- 关于python调用zabbix api接口的自动化实例 [结合saltstack] 推荐
- 关于Java中Scanner对象的hasNext()方法对实现Readable接口的对象中的read()方法调用的探讨
- 正规第三方支付接口的重要性,安全、稳定还是第一位的!
- 这个是微软官方关于office 2007转换pdf等格式的接口调用文档
- 关于HttpClient(调用openstack rest接口失败)