raptium
2011-03-09 17:29:20 +08:00
嗯 复制是需要卡的
另外原理不是太难 个人理解是这样的
首先 SIM 卡有个 id 然后卡里存着 key (好像记得有两个 不过无所谓),然后运营商的数据库里有每一个 id 所对应的 key,然后 id 和你的电话号码是绑定的
只得注意的是 这个 id 是能通过 SIM 卡读出来的 key 是读不出来的 就是说 SIM 卡本身没有 implement 这个读 key 的功能 (也许拆开来用电路能读吧 = =)
手机加入网络的时候验证过程就是
服务器生成 nonce 发给手机
手机把 nonce 传给 SIM 卡 SIM 卡内置电路计算 H(nonce, key) H 是一个 hash function
手机把 id, hash 发回给服务器
服务器自己根据 id 查到 key 自己用 H 算出来一个 hash 比对两个 hash 是否一致 一致则验证成功
这个过程可能要重复几次
再说复制卡
复制卡就是把一张卡的 key 和 id 写到另一张特制的卡里去 id 直接能读出来 没难度
难的是不知道 key 因为不能直接读出来 所以现在的方法就是猜
用读卡器模拟验证过程 不断地生成 nonce 发给卡 然后记录返回的 hash
这样就能收集到很多对 hash 和 plaintxt
然后就可以猜 key 了 暴力法是要话不少时间的 但是好像 GSM 标准用的这个 hash function 有点问题 所以有特别的算法可以快速找到 collision 所以通常老的卡不用多久就能找到 key 了
嗯 唠叨完了 有不对的地方欢迎指正