今天我们来讲讲系统间的交互需要哪些必要的东西才能确保互相通信会没有问题呢?
首先来看看最传统的系统交互,即两者直接互相明文传送,在这种情况下,若是被第三方拦截,会造成不可预估的影响。那么针对这种情况我们应该如何避免呢?那好,我们来看看银联电子支付公司是如何解决这个问题的。他们的解决方案适用于大部分情况下。(下面所描述的A代表商户,B代表CP即ChinaPay)
在交互的过程中,我们必须明确两点:1、假设A和B两者通信的时候,B必须确保是A发送的;2、A发送的报文中途传输的过程中,他人没有修改;如何确保这两点,在回答这两个问题之前,先给大家说下必须有两对公私钥,即A的公私钥、B的公私钥,公私钥的区别,私钥是他人无法获取的,相当于咱们的个人身份证用于标识某个人的;而公钥是可以提供给他人的,这是最直接明了的区别,我们加解密的时候必须是使用哪个公钥加的,就必须要哪个私钥去解密 。好了继续回归正题,首先如何确保上述描述1,即我刚刚说的私钥相当于个人身份证,用它来实现1就再好不过了。那如何确保2呢,hash算法可以了解下,如果还不了解hash算法的话可以去百度百度,正是因为hash算法的不可逆,用它来实现2也最好不过了。好了既然1、2都能想到用什么方法去解决,那好进入咱们今天的主题,加解密、签名、验签。
加密、签名:为什么把这两个放在一起讲呢,因为它俩是A(商户)发送B(CP)的步骤,先说说加密,当报文中有敏感信息的时候,发送给B的时候需要进行加密处理ÿ