传统大POS机为什么要签到?
传统大POS机为什么要签到?
现在移动支付的发展,pos机收款方便了广大的商户,但很多商户对于每次开机时都要签到表示很麻烦和不理解,下面我们就这个POS机签到来说下。
POS设备硬件芯片在出厂时会设置一个设备ID和一个密钥。而在银联的POS交互协议中,有一个概念叫做“签到”,就是POS设备向服务器发起签到请求,然后让服务器返回3个工作密钥,分别用于加密POS传输给服务器的银行卡的3个信息。这3个工作密钥是通过POS机硬件芯片内的密钥(在服务器端也有)进行加密的。
既然POS设备已经有了一个固化的密钥,那为什么不定定要一个签到来获得工作密钥呢?为什么又不直接用固有的密钥来进行数据加密传输给服务器端呢?既然是密钥,肯定和安全性有关系,那这种模式是如何加强了安全性呢?
我们都知道,POS设备与服务器(一般是支付平台)的交互数据都是加密后传输的,而且这种加密的数据是使用可解密的方式来加密,而不是使用非可逆加密(例如MD5就是非可逆加密)。
既然是可逆的,就存在可破解的可能性,那么一个黑客是如何破解一个加密方式,进而获得加密的密钥的呢?当然,直接破解硬件设备底层密码是一种方法,但这种破解方法一般需要直接操作POS硬件设备,甚至可以会破坏POS硬件设备。
而另一种方法,就是通过加密的数据和结果反推。举一个例子,就如同我们做二元一次方程一样,只要变量和完全不同的方程式足够多,我们就可以算出各个变量的值。
所以,只要你的密钥不变,通过截获足够多的原始数据和加密后的密文就可以获得多个这样的方程式出来:F(卡信息、密钥)=密文。拥有的方程式越多,那么就越容易破解出密钥这个变量和F这个算法函数(时间更短)。
所以,这种破解方法最终的关键点在于密钥不可变,只要不变,那么自然就可以积攒的”方程式“来破解。既然如些,要破除这种破解的方法就是密钥定期/不定期的更新。只要密钥一变,所有以前积攒的方程式都完全失效,破解出来也没用(等你耗费很长时间破解了,这个工作密钥都已经失效了)。
那么就有另外一个问题了,通过频繁的截取签到请求是否可以直接破解到硬件的密钥呢?答案是不行的,为什么呢?还是和上边一样的分析方法。F(工作密钥,密钥)=密文。这个时候的真实的工作密钥和密钥变量的。相当于整个函数对于拦截者,无从下手(除非是来硬的暴力破解POS硬件设备)。
总结:从这里可以看出,POS协议的”签到“不仅仅是一个简单的”报到“更重要的是加强了整个交互的安全性和可靠性。