RFID卡我自从去年看了国外的某论文后就研究了半年……
目前凡是卡丢失后挂失无法找回钱数的,都是把数据存在卡里面的。
mifare的卡,s50和s70,安全性没区别,s70只不过是容量大一点,4k的卡,s50是1k,加密算法什么的没区别。
改数据还是没那么容易的,每一个区块都有两个128bit的key,一个是key A一个是key B,一个管读一个管写,每个区的key都是存在卡上面的,然而即使有读卡的key也没法直接把密码读出来,只能重新覆盖。 卡本身写入被直接破解的,一般都是因为开卡的时候key设置的太弱了,比如a1b2c3d4e5f6之类的。据我所知北京一卡通每张卡的密钥都是不一样的,是根据卡号算出来的,所以破了一张卡就把所有卡都破了是不可能的。
虽然改数据很难,但是由于卡和读卡器通信过程中的加密很脆弱,导致很容易实现重复攻击,就是replay attack,比如你在自动充值机上充100块钱,然后把整个通信过程记录下来,通信是由一个16bit的随机数发生器加密的,截获数据后,最多只要试65536次就能获得正确的充值信息,每5ms可以试一次……,如果成功验证,读卡器会发出滴的一声……接下来要做的就是用读卡器自带的软件一遍一遍的重复这段记录……这样即使什么密码都不知道,也能往里充无数的钱,而且好处是不必知道卡内的数据结构……
我现在就缺这个可以记录通信过程的东西了,叫openpicc,或者proxmark iii也行,就是有点贵……500usd……
PS:CPU卡也没用,反而更好破解,加密是128bit 3DES的,以现在电脑的计算量破128位3DES太容易了……
PS2:银行卡不管用什么技术,都破解不了,因为钱不是存在卡里的……