滾動碼(rolling code)


iPhone用戶歡迎AppStore下載本人開發的NFC應用:iNFC。

https://apps.apple.com/cn/app/infc/id1562054959

iNFC適合小白使用NFC功能或專業人士使用iPhone進行NFC調試。

滾動碼當前主要用在RKE(Remote Keyless Entry)系統中,進行身份驗證

原理: 編碼器檢測到按鍵輸入, 把系統從省電狀態中喚醒, 同步記數加1 , 與序列號一起經密匙加密后形成密文數據, 並同鍵值等數據發送出去。由於同步計數值每次發送都不同, 即使是同一按鍵多次按下也不例外。同步計數自動向前滾動, 發送的碼字不會再發生。因此被稱為滾動碼。同步計數跟編碼器序號一個64位一起經過DES加密,DES密鑰為廠家獨有,必須保密。加密之后的密文則通過射頻系統發射出去。
接收端接收到密文之后,通過廠家的DES密鑰進行解密,解密之后得到同步計數和編碼器序號。首先檢測編碼器序號是否與接收器的序號相對應,如果對應,就檢測同步計數是否在同步窗口內,也就是說是否大於本機保存的同步計數,但是又不大得太多,如果大得太多,本機就再作一次同步。如果在同步窗口中,通知執行機構執行用戶命令,比如說打開門鎖或者關閉門鎖之類的。
由於加密算法能夠把明文打散,因此,碼的滾動會使得發射的碼變化差異很大而難以破解,由於同步計數的存在,重復發送也沒有效果,因此要攻破該類系統就要攻破DES算法。同步計數為16 位, 可達2的16次方 =65536 , 若每天用10 次, 則有18年的使用周期。32位的序列號, 容量為232 = 42 億, 可以完全滿足生產要求。

隨着時間的推移,科技也在不斷的進步,眾多公司在時間的與現實的推動下不斷的提高與完善自家技術,從最開始的明碼系統到暗碼系統,再從暗碼系統演變到滾碼系統,每一次技術的更新與升級都提升了卡片安全性。
但俗話說:“魔高一尺,道高一丈”,技術的升級與破解一直是一個永恆的話題,技術的升級淘汰掉了更多的低端卡匠,但無疑同時增加的破解的難度。下面給大家簡單分享一些滾動碼的一些技術。

滾動碼技術是如何出現的?

最開始各大公司的卡片內數據都是以明碼存放,例如樓層,戶號,車位號,手機號,電梯到期時間等,由於卡內的到期時間是明碼,用戶直接可以修改,后來廠家發現這種漏洞以后,將卡內的這些信息加密處理,但在大神的面前,加密方法也被破解了,再此以后廠家發明了滾動碼技術,判斷是否為滾動碼梯控其實很簡單,某些大廠家的梯控都有自己的特征,直接就能看出來,如KD,HY,YH等,不知名的小廠梯控系統通過對比同一張卡兩次刷卡的記錄,也可以判斷出來。

常見的滾動方式

常見的滾動方式有校驗從小數到大數,每次刷卡加一,或者從大數到小數每次減少,這種滾動方式常在次數卡上使用,還有公式滾動法,讀取卡內的數據與校驗,經過讀頭單片機計算以后,寫入新的數據與校驗,不同廠家的公式算法不一樣。有些廠家的滾動還會以刷卡時間和公式進行滾動,但大同小異。

滾動碼的破解方法

滾動碼技術的出現破解方法目前有如下幾種

完整的破解了電梯的整套發卡梯控,找到算法,這種可以完美的對電梯卡進行延期等操作,只針對早期算法比較簡單的滾動碼,僅有軟件計算,沒有單片機計算的系統,目前新系統的算法不僅僅是軟件計算還有發卡器內的單片機計算。

漏洞改法,通過更改控制位或者修改卡內某些地方的數據來壓制卡內數據的滾動,這是利用了早期某些廠家的讀頭不會校驗計算后的數據是否寫入成功的漏洞。

初始碼數據還原法,這種方法也屬於漏洞改法的一種,利用了有些梯控廠家控制檢測系統當識別到從未滾動過的卡(就是物業剛辦的新卡)數據不會校驗上次的邏輯漏洞,讓卡內數據每次都是初始數據來對電梯讀頭進行欺騙,這時候的梯控讀頭已經修復檢驗寫卡是否成功的漏洞,所以我們要讓梯控讀頭完成一次完整的交互過程,完成以后我們在將卡內數據改回去即可,已經有廠家做出了這種還原卡,通過ariduino+pn532做離線寫卡器實現。我們團隊稱這種卡為“處女卡”。

發卡器發卡,對於一些賊牛逼的廠家的算法無法破解,同時又采用由軟件計算和發卡器內單片機雙重計算的方式,針對這樣的情況,我們使用同廠家同型號同版本的發卡器,通過修改發卡器發卡規則使得規則與物業的發卡規則相同來發卡,但是破解發卡規則是一個很大的工程,同時梯控廠家也不會向個人單獨銷售配套發卡器,所以這種方法只掌握在少數人的手中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM