怎么查自己的刷卡機(jī)密碼
網(wǎng)上關(guān)于怎么查自己的刷卡機(jī)密碼的刷卡知識(shí)比較多,也有關(guān)于怎么查自己的刷卡機(jī)密碼的問題,今天第一pos網(wǎng)(www.keemji.com)為大家整理刷卡常見知識(shí),未來的我們終成一代卡神。
本文目錄一覽:
怎么查自己的刷卡機(jī)密碼
閱讀之前,譯者有話說
一口氣看完這篇技術(shù)文檔,感覺是什么?《職業(yè)特工隊(duì)》和《諜影重重》的混合體。原文沒有插圖,所以請(qǐng)耐著性子看完。
作者科迪·布羅修斯何許人也?美國人也。一名Mozilla開發(fā)工程師,著名手筆有Linux上購買iTune上的音樂(學(xué)生時(shí)期)、破解iPhone(就是越獄)、破解腦-機(jī)接口并開源(就是用人腦控制計(jì)算機(jī)),還有就是破解酒店門鎖。
我能理解作為一名破解黑客,而不是駭客本身的心情。本來想花心思,卯足全力挑戰(zhàn)那個(gè)久負(fù)盛名的難題(就是酒店安全門鎖),卻赫然發(fā)現(xiàn)遠(yuǎn)低于自己預(yù)想難度(當(dāng)然比我等的水平高了很多),輕易就被破解了,而且漏洞百出。就如同連續(xù)復(fù)習(xí)了一個(gè)月,考試難度堪比作業(yè)的感覺。
而這篇技術(shù)文檔所在的網(wǎng)站,即科迪自己的網(wǎng)站,首頁簡潔到不能再簡潔了,卻沒有這篇文檔的直接鏈接。但這篇文檔依然留在他網(wǎng)站的服務(wù)器里。這意味著什么?慢慢猜吧,我不猜了,信息量太大了。
好了,不說廢話了,鄭重呈上技術(shù)翻譯作。
介紹
在本文中,我們來探討酒店使用的Onity HT門鎖系統(tǒng)的設(shè)計(jì)和內(nèi)部原理。全球現(xiàn)役大約有一千萬套Onity HT酒店門鎖,占有全球約三分之一酒店數(shù)目或超過一半酒店門鎖比例。
我們希望能以獨(dú)特視角來揭秘Onity HT系統(tǒng)的工作原理,以及潛在不同的隱患。
Onity門鎖系統(tǒng)設(shè)計(jì)原理
Onity門鎖系統(tǒng)中分為幾個(gè)部分:
·編碼器:用來制作門禁卡,也儲(chǔ)存了所有種類信息。(例如客房列表、時(shí)間表等等)它可接入便攜式編程器。
·便攜式編程器(以下稱為PP):向門鎖寫入客戶鑰匙編碼、主管編碼、時(shí)間表和其他信息。
·門鎖:在這里我們說的門鎖,主要指的是實(shí)際判斷門的開關(guān)邏輯操作過程的電路板。有好幾種門鎖配置,例如外門和客房門等,但我們主要探討客房門鎖。
雖然編譯器在整個(gè)系統(tǒng)中,因其處理門禁卡上的密碼編碼而顯得很重要,但我們首要關(guān)注的是PP和門鎖。
重要概念
源代碼
它由Onity隨機(jī)生成的32位編碼, 代表客房在酒店內(nèi)唯一的身份標(biāo)識(shí),同時(shí)也是通往整個(gè)系統(tǒng)安全的關(guān)鍵。源代碼用于對(duì)門卡編碼/解碼、對(duì)門鎖編程及開鎖。
此等緣故,源代碼不對(duì)任何人公開,甚至酒店擁有者。
鑰匙編碼值
鑰匙編碼值包括24位數(shù)據(jù),用來獲取開鎖權(quán)限。而門鎖除了包含客人鑰匙編碼外,還生成一個(gè)或多個(gè)主管鑰匙編碼。
與其為每個(gè)客人重新對(duì)門鎖編程,或是需要制作多幾份主管門禁卡,行業(yè)上采用了“卡循環(huán)”這個(gè)概念。賦值門鎖一個(gè)提前量,通常是50,意思是讓一張門卡在多少張新卡投入使用前仍能有效開鎖。加入一位客人手上的鑰匙編碼是123,而門鎖的鑰匙編碼是100,那么提前量最少也要是23才能使得那張門卡有效。當(dāng)一張有效卡塞入門鎖時(shí),門鎖的鑰匙編碼則變?yōu)樵摽ǖ蔫€匙編碼。因此,門鎖就能在新卡啟用時(shí)自動(dòng)對(duì)老卡銷戶。(譯者注:方便與安全是成反比的。)
特別強(qiáng)調(diào)的是提前量對(duì)鑰匙編碼數(shù)量可能降低了不少。一個(gè)24位編碼值就有約一千六百七十萬個(gè)不同可能(譯者注:即2的24次方。),但卻要除以提前量加一這個(gè)數(shù),讓在提前量范圍內(nèi)的每一張卡生效。因此,假設(shè)你手頭上有一張標(biāo)準(zhǔn)型提前量為50的門卡,它的密鑰可能數(shù)則少至328965個(gè)。當(dāng)提前量放到最大,即255時(shí),密鑰可能數(shù)則降為可憐的65536個(gè)。這意味著在最背的時(shí)候,你在一道鎖上需要嘗試32768張門卡才能打開它。這么一來,另一個(gè)問題出現(xiàn)了。
倘若兩道門的鑰匙編碼很相近,近到加上提前量后產(chǎn)生了交集,那會(huì)否產(chǎn)生一張?jiān)居糜陂_一道門的門卡也能在同一酒店內(nèi)開另一道門呢?為這些門編制初始編碼時(shí),它們每個(gè)是前后相差1000而減少那發(fā)生的可能。不過,酒店內(nèi)所有門并不是同時(shí)進(jìn)行編碼的,而總有些客房比起其他房間更加客如輪轉(zhuǎn),直接導(dǎo)致鑰匙編碼很可能發(fā)生越界重復(fù)現(xiàn)象。
識(shí)別碼
每一張卡包含一個(gè)16位識(shí)別碼。在一張客人卡上這分為兩部分:卡指定能開的房門,及卡的某個(gè)拷貝版本。在主管門卡上,指定能開房門的部分被員工編號(hào)代替了。
當(dāng)入住酒店時(shí),你一般會(huì)選擇是否要多一張門卡,那就是拷貝。將識(shí)別碼除以6取余數(shù),就能得知卡是第幾份拷貝。0則是原卡,1至4是特別標(biāo)號(hào)拷貝,5則可能是任何門卡的第五份拷貝或以上。門與門之間根據(jù)數(shù)據(jù)庫被分隔開來,允許“門卡拷貝范圍”現(xiàn)象出現(xiàn)。
需要特別強(qiáng)調(diào)的是,門鎖并不曉得它自己的標(biāo)識(shí)碼是什么。標(biāo)識(shí)碼純粹是用來標(biāo)識(shí)門卡,例如用編碼器讀取的時(shí)候,然后儲(chǔ)存在門鎖的審核日志中。
審核日志
另一個(gè)叫法是開機(jī)日志,包含哪些卡用于開鎖的記錄(用識(shí)別碼來確定),使用在PP的開鎖功能,及新客人門卡。每道記錄是由一個(gè)16位標(biāo)識(shí)(或在特殊場合下例如PP的開鎖功能使用時(shí)產(chǎn)生的虛假標(biāo)識(shí))及尾隨的16位時(shí)間戳組成的。
特殊門卡
在一些特殊門卡中,我們的探討中最重要的是編程卡和備份卡。當(dāng)一張編程卡塞入門鎖后,在塞入一張備份卡,那張備份卡就變?yōu)檫@門的客人門卡了。
編程卡和備份卡通常用于編碼器出錯(cuò)導(dǎo)致客人無法進(jìn)入客房,而普通門卡又沒做出來的場合。不過,這又招致新的危機(jī)——一旦做出了編程卡,任何酒店客房形同虛設(shè)。
可以知道,編程卡是由酒店物業(yè)的源代碼加密編碼而來,而備份卡和其他卡差不多,不包含任何加密,僅簡單包含一個(gè)流水編號(hào)。
敘述流程
觀察日常使用下的系統(tǒng)情況能使事物之間聯(lián)系變得緊密些。以下以普通常見方式敘述酒店的門鎖系統(tǒng)。
安裝
在由Onity人員安裝編碼器時(shí),酒店內(nèi)的門就以指定標(biāo)識(shí)碼和初始鑰匙編碼方式錄入數(shù)據(jù)庫內(nèi)。然后酒店員工就用編碼器將房門數(shù)據(jù)載入到便攜式編程器內(nèi)。當(dāng)門鎖在酒店內(nèi)安裝時(shí),它們都被便攜式編程器賦予了特定鑰匙編碼和主管編碼。這種情況也在門鎖沒電導(dǎo)致數(shù)據(jù)丟失,然后更換門鎖電池時(shí)發(fā)生。
客人入住
當(dāng)客人進(jìn)入一家酒店入住時(shí),Onity系統(tǒng)的第一步是生成1張或多張門卡。房門號(hào)被輸入至編碼器,緊隨的是逗留天數(shù)(為自動(dòng)失效)及生成門卡數(shù)。門卡按序放置,將客房特定數(shù)據(jù)編碼其中。
當(dāng)客人第一次在鎖中插入門卡,幾件事發(fā)生了:
門卡的填充位數(shù)據(jù)生效,或數(shù)據(jù)不完整時(shí)門卡即時(shí)被拒。
門卡由門鎖上的源代碼解碼。
經(jīng)過校驗(yàn),門卡生效或門卡校驗(yàn)不符被拒。
寄存器和轉(zhuǎn)碼器檢測過期日,如果過期則被拒。
最后,檢查鑰匙編碼。若酒店門卡上的提前量不超過門鎖則門鎖開啟。
酒店門卡上到底有什么
前面討論了一些門卡數(shù)據(jù)片段,下面就來完全拆解它的數(shù)據(jù)結(jié)構(gòu):
16位識(shí)別碼
8位標(biāo)志字節(jié)
16位到期日
8位授權(quán)字節(jié)(和本討論無關(guān))
24位未知數(shù)據(jù)(零)
24位鑰匙編碼
這些數(shù)據(jù)然后以酒店的源代碼進(jìn)行加密,儲(chǔ)存在標(biāo)準(zhǔn)磁條卡的第三磁軌上。加密算法在本文附錄B有說明。
門鎖交互
和門鎖之間的交互以單線雙向方式進(jìn)行。在門鎖底部,門板的外面,有一個(gè)直流電源接口,通常用作供電,也將數(shù)據(jù)通過傳輸線接到其他設(shè)備上。
在其之上,是高層次的數(shù)據(jù)傳輸,允許讀取內(nèi)存信息和開鎖。便攜式編程器中還有其他幾個(gè)功能,但因?yàn)楹捅疚拿枋龅穆┒礋o關(guān),開鎖設(shè)備也不需要,在此不表。
線路協(xié)議
基本概念
我們先定義能和門鎖產(chǎn)生交互的設(shè)備為“主人”,主導(dǎo)所有交互功能。
在上拉電阻作用下,線路閑置在3.3伏高電平。“主人”和門鎖要產(chǎn)生交互,需要產(chǎn)生一段時(shí)間的低電平信號(hào)(接地),稱為脈沖。交互信息以瞬發(fā)方式進(jìn)行,我們稱之為“數(shù)據(jù)組”,即“主人”發(fā)送每段20微秒同步脈沖,之間間隔200微秒(兩個(gè)脈沖邊緣之間)。實(shí)際的交互在這些同步脈沖之間進(jìn)行。如果一組12微秒數(shù)據(jù)脈沖在這些同步脈沖中出現(xiàn),則設(shè)備之間交換了1比特信息。數(shù)據(jù)脈沖的缺失則視為一個(gè)零比特。
這里的重點(diǎn)是,無論“主人”還是門鎖都能用數(shù)據(jù)脈沖進(jìn)行交互,但同步脈沖只能由“主人”產(chǎn)生。
數(shù)據(jù)組結(jié)構(gòu)
如上所述,數(shù)據(jù)組包含重復(fù)的同步脈沖,當(dāng)中也許有數(shù)據(jù)脈沖,也許沒有。要注意一下,所有數(shù)據(jù)組都有一個(gè)同步跟蹤脈沖,當(dāng)中并沒有數(shù)據(jù)脈沖在內(nèi)。
根據(jù)實(shí)驗(yàn)所得,數(shù)據(jù)組之間時(shí)間間隔不少于500微秒,而基本時(shí)序記錄是2700微秒。
要在“主人”與門鎖之間發(fā)送數(shù)據(jù),無需一個(gè)起始信息,只要將數(shù)據(jù)組按次序發(fā)送即可。不過,正因?yàn)殚T鎖本身無法生成自己的同步脈沖,它必須提示“主人”它希望得到信息。做到這一點(diǎn),在線路閑置時(shí)將其中電平信號(hào)降低120微秒即可。門鎖做到上一點(diǎn)的話,“主人”就開始生成同步脈沖,并監(jiān)察門鎖發(fā)送的數(shù)據(jù)脈沖信號(hào)。
高層傳輸協(xié)議
下面將會(huì)講到相關(guān)高層控制指令的細(xì)節(jié)。注意:當(dāng)提到“字節(jié)”時(shí),意思是從最低有效位開始的8個(gè)比特位。
校驗(yàn)上的注意事項(xiàng)
每個(gè)高層指令看起來都有自己的校驗(yàn)值,其實(shí)只是指令值對(duì)自己和指令特定常量的異或運(yùn)算。我們不清楚這些常量哪里得到的,也許它們單純是硬編碼隨機(jī)量而已,只是為了將傳輸協(xié)議搞得更加復(fù)雜罷了。
讀取指令
讀取命令會(huì)用到一個(gè)16比特內(nèi)存地址,然后返回該地址的16字節(jié)信息。這意味著如果你從地址0讀取信息后,再讀取地址1時(shí),會(huì)有15字節(jié)信息重復(fù)。通常你每次讀取信息時(shí),是希望得到每行不重復(fù)的16字節(jié)信息的。
讀取指令中,單個(gè)數(shù)據(jù)組用以下的格式編碼:00000000000000000000000000000000000000001010001111AAAAAAAA1BBBBBBBB1CCCCCCCC。A字節(jié)是內(nèi)存地址高8位信息,B是低8位,C字節(jié)是一個(gè)校驗(yàn)值,由A^B^0x1D異或運(yùn)算得到。
當(dāng)這條信息發(fā)送時(shí),門鎖會(huì)發(fā)出信號(hào),傳出165比特為一數(shù)據(jù)組的信息。頭13比特信息作用不明,隨后有16個(gè)9比特字節(jié)(就是每個(gè)8位字節(jié)后跟隨1個(gè)比特),在最后就是用于校驗(yàn)的8比特信息。(每個(gè)常規(guī)通信都是如此)
開鎖指令
開鎖指令需要用到32位的源代碼,假如門卡身份信息與門鎖內(nèi)信息吻合,馬上就開。
開鎖指令用到好幾個(gè)數(shù)據(jù)組,下面是它們傳輸?shù)母袷脚c順序:
00000000000000000000000000000000000000001010001001AAAAAAAA1BBBBBBBB1CCCCCCCC1DDDDDDDD1SSSSSSSS000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100110101111001010
上面的A、B、C和D字節(jié)分別為源代碼的第一、第二、第三、第四字節(jié)。S字節(jié)是校驗(yàn)結(jié)果,由A ^ B ^ C ^ D ^ 0xDD異或運(yùn)算得到。
無論運(yùn)算結(jié)果正確或錯(cuò)誤,門鎖都不對(duì)“主人”作回應(yīng),只是源代碼計(jì)算正確的話,就會(huì)開啟。(譯者注:這句看起來好矛盾,但如果還記得文章中門鎖的定義,那就好理解了。門鎖不對(duì)門卡進(jìn)行消息反饋例如失敗什么的,反正門卡沒有耳朵眼睛,但是我們?nèi)擞校酝ǔi_鎖失敗時(shí)候閃紅燈,那是給人看的,不是給卡片看的。)
門鎖內(nèi)存信息
從前面詳細(xì)敘述門鎖通信協(xié)議細(xì)節(jié)來看,我們能做到讀取所有內(nèi)存信息,然后給予一個(gè)源代碼來開鎖,只是你必須清楚源代碼到底在內(nèi)存地址當(dāng)中哪個(gè)位置。
下面是普通客房門鎖當(dāng)中幾個(gè)關(guān)鍵內(nèi)存地址。而其他類型的門,例如墻上刷卡機(jī)(多數(shù)用作酒店外部的門)和客房門鎖的內(nèi)存映射有一點(diǎn)點(diǎn)差異。
· 源代碼:在0×114有4個(gè)字節(jié) · 編程卡編碼:在0×124有3個(gè)字節(jié) · 鑰匙編碼:在0x412C 鑰匙編碼所在的地址包括了一系列不同的值。首先是客人的值,共3個(gè)字節(jié),后面跟隨了一個(gè)0×00字節(jié)。再之后,就能得到一些“主人”編碼,每個(gè)有效“主人”由3個(gè)字節(jié)及后面跟隨一個(gè)0×80字節(jié)組成。如果不是,則后面跟隨的字節(jié)為0xFF。最后一行記錄(帶有0xFF結(jié)尾的)一定是無效用戶。
門卡加密
前面提過,門卡是通過源代碼作為鑰匙進(jìn)行加密。在本文發(fā)布前,通常認(rèn)為算法是自定義的、不公開的。而這一說法還沒得到證實(shí),但是一個(gè)用Python寫的實(shí)例附在了本文附錄B中。
對(duì)算法缺陷的研究一直在進(jìn)行中,但是給予一個(gè)狹小的密鑰可能空間(只有32比特)以及已知明文攻擊,簡單的暴力破解是能做到的。
漏洞
前面提到了很多Onity門鎖系統(tǒng)內(nèi)部工作原理,但還是應(yīng)該難以理解,何以所有岔子都走在一塊了。
開鎖功能
只要有能力讀取門鎖內(nèi)存,以及得知源代碼在內(nèi)存哪個(gè)位置,讀取其中的源代碼然后以開鎖指令格式發(fā)送回去簡直是小菜一碟。這樣就能馬上獲得開門權(quán)限,在審核日志當(dāng)中不過只是顯示PP(便攜式編程器)曾經(jīng)用過門鎖。
這個(gè)過程在四分之一秒內(nèi)能夠完成,在附錄A中有破解設(shè)備例子可以參考。
制作主管門卡
因?yàn)槲覀冇心芰ψx取門鎖內(nèi)存,以此類推,將主管鑰匙編碼讀出門鎖,制作自己的主管門卡成為了可能。和賦予員工編號(hào)差不多,只要有主管編碼,任何門都是可進(jìn)的。
當(dāng)然,一卡在手還是不能進(jìn)所有的門的。因?yàn)榫退闶蔷频甑闹鞴軅円卜謳椎取Ee例來說,酒店會(huì)將主管們分為三類,而客房部的主管們則人手一張主管門卡。因?yàn)檫@樣的分類配置,拿到了一張主管門卡只能讓你擁有酒店三分之一的權(quán)限。
編程卡制作
能夠存取內(nèi)存,我們就能獲得酒店的源代碼及編程卡編碼。有了這些,我們就能夠?yàn)槊堪焰i做一張編程卡。做一張備份卡無需對(duì)酒店或一切鎖的了解,而且能提前為未來準(zhǔn)備完成。
在對(duì)門鎖使用了編程卡后,只要插入備份卡,門鎖就能開啟。(譯者注:其實(shí)就像是單位門禁卡管理中,不看說明書強(qiáng)行為下屬獲取門卡的主管,一個(gè)勁在門上刷,碰巧和前面步驟相符就能制作新卡,完事后還一個(gè)勁抱怨工作辛苦什么的。)日后,這張備份卡能夠不斷反復(fù)使用進(jìn)入房門,能熬到新客人入住為止。
偽造備份卡
缺乏加密,以及備份卡能逐漸制作出來,那么偽造備份卡獲得進(jìn)入另一個(gè)房間也是可行的。
舉個(gè)例子,一臺(tái)編碼器故障了,住戶們正由酒店員工手工發(fā)放備份卡進(jìn)行入住手續(xù)。你獲發(fā)一張編號(hào)為1234的備份卡,但你能夠?qū)⑵涓臑?233或1235,然后嘗試進(jìn)入其他房門。雖然沒有其他情報(bào)下,判斷這能具體開酒店哪個(gè)房門幾近妄想,但卡本身增加的特性還是讓你進(jìn)入酒店某間房可能增加不少。
基本密碼學(xué)破解
密鑰可能空間狹小,以及門卡上缺乏真正的加密,有不少簡單破解手段能夠付諸實(shí)行。在后面會(huì)提到,我們?nèi)孕柙诜治雒艽a上下多點(diǎn)工夫。
從門卡加密的結(jié)果來看,每個(gè)字節(jié)的加密只用到了源代碼的一小部分,加上已知關(guān)系推敲聯(lián)系,就能確定源代碼。舉例來說,你入住一間客房,獲得兩張門卡。兩張門卡的區(qū)別僅僅是識(shí)別區(qū)的一個(gè)字節(jié)信息。同樣,如果你知道幾張卡的到期日,就能利用之間的差異作為破解提示。(譯者注:這活脫脫就是明文攻擊。)
這過程沒有技術(shù)含量,不需要一個(gè)密碼專家就能完成,在之后會(huì)有更多的研究需要去做。無需多言,這里牽扯到的密碼學(xué)對(duì)安全毫無助益,對(duì)這32位加密空間涂鴉級(jí)別作品遮遮掩掩其秘密超過二十年,這樣的產(chǎn)品不值信任。
設(shè)計(jì)兇殺案陷害酒店員工
擁有了讀取門鎖全部內(nèi)存信息的能力,那就可能獲取主管門卡編碼。以上這些,結(jié)合源代碼進(jìn)行加密編碼,就能做出主管門卡,從而獲取開啟酒店門鎖的權(quán)限。
且看看這樣一個(gè)假想情況:
· 破解者用前面提到的漏洞讀取門鎖的內(nèi)存信息。 · 破解者利用源代碼和主管門卡編碼生成一張或多張主管門卡。 · 破解者利用主管門卡進(jìn)入一間客房。 · 破解者在客房內(nèi)殺害受害人。 · 破解者逃離現(xiàn)場。
而在司法偵察過程中,刑事探員們往往會(huì)查閱門鎖的審核日志,以查看在何時(shí)為何人進(jìn)入房門。在這當(dāng)中,他們會(huì)看到某個(gè)特定員工(因?yàn)殚T卡在識(shí)別編碼范圍內(nèi)是唯一編號(hào)的)在受害人死亡相近時(shí)間用主管門卡進(jìn)入客房。
這樣一個(gè)充分證據(jù),將一名員工在死亡時(shí)間推進(jìn)客房,在謀殺案審判中可置其萬劫不復(fù),最差也能讓那員工成為頭號(hào)嫌疑人。而其他因素(例如閉路電視、目擊證人等)也許會(huì)對(duì)該名員工有利,但我們卻無從知曉門鎖審核日志的真?zhèn)涡粤恕?譯者補(bǔ)充:于是某些酒店為了平息事件,淡出公眾視野,直接開除嫌疑人撇清責(zé)任……)
總結(jié)
在本文中,我們列舉了針對(duì)Onity酒店門鎖提供的安全措施每個(gè)層次破解方法。
· 門鎖通信端口不可靠,能夠直接對(duì)內(nèi)存操作,任意讀取內(nèi)存信息。加上對(duì)系統(tǒng)的基本了解,破解者能夠直接開門、制作主管門卡,甚至制作整個(gè)酒店的編程卡。 · 門卡上的密碼系統(tǒng)有先天缺陷。密鑰空間太狹窄,甚至最普通的暴力破解也能湊效。在這點(diǎn)上,未來將繼續(xù)深入研究系統(tǒng)的加密算法。
· 審核日志一直以來被認(rèn)為是門鎖使用的安全記錄,因能利用內(nèi)存信息制造門卡這點(diǎn)上,可說是蒙人的存在。接下來的研究,在門鎖通信協(xié)議中允許寫入內(nèi)存這點(diǎn)上,將對(duì)審核日志直接修改。
這些漏洞無可饒恕,它們系統(tǒng)本身的缺陷是我們強(qiáng)烈建議不要使用Onity門鎖,直到充分修補(bǔ)這些漏洞為止。
對(duì)于任何酒店的住戶,我們建議使用門鏈或插銷,只要能提供額外安全保障就行。電子鎖的門閂能夠被門鎖機(jī)械系統(tǒng)解除,它唯一的用處只有防暴而已。
披露信息
揭露出這些顯而易見的漏洞(除了那不常見的通信協(xié)議外),他們的震驚,以及消除這方面影響的困難,我無法輕易決定將這篇消息公開。我們無法確定,但我們有理由相信這些問題在Onity內(nèi)部能夠引起注意,讓他們將這些門鎖投放市場前,給多超過十年改進(jìn)時(shí)間。
不過,在權(quán)衡之下,揭露造成的短期潛在效應(yīng)遠(yuǎn)遠(yuǎn)不及對(duì)酒店行業(yè)和公眾長期危害,尤其是只有少數(shù)人知道這一秘密的情況下。
未來的研究
未來的研究方向有很多,大致分為這么幾類。
密碼學(xué)
當(dāng)前實(shí)現(xiàn)的算法在分析上也許不是最優(yōu)的。編輯整理好的算法,外加一個(gè)簡單實(shí)例,對(duì)密碼學(xué)者來說應(yīng)該有所幫助。
這也許是個(gè)自定義算法,也有可能是現(xiàn)成就有的算法,或已有算法的某個(gè)變種。
逆向通信協(xié)議
比起讀取門鎖內(nèi)存來說,寫入內(nèi)存更為可行。實(shí)際上,便攜式編程器就是如此。盡管對(duì)便攜式編程器通信方式還在研究,確定寫入內(nèi)存指令的格式只是遲早問題。
門鎖內(nèi)存映射
我們只了解門鎖內(nèi)存空間的很少部分,僅在酒店客房部分。對(duì)不同門鎖用特定變量進(jìn)行編程,或?qū)⑵渲糜诓煌闆r下,將所有Onity門鎖的完整內(nèi)存映射確定下來應(yīng)該不難。
確定現(xiàn)有研究對(duì)保險(xiǎn)柜鎖是否適用
我們懷疑Onity商用鎖(保險(xiǎn)柜)所用的通信協(xié)議和他們的酒店門鎖也是大同小異的。如果是的話,就能進(jìn)行相似的操作乃至破解保險(xiǎn)柜鎖。
附錄A:開鎖設(shè)備
本附錄詳細(xì)列明在Arduino平臺(tái)下制作及編程一臺(tái)開鎖設(shè)備。
附注
這臺(tái)設(shè)備上有些瑕疵,以至于不能作用在一些鎖上。現(xiàn)階段,暫且認(rèn)為是計(jì)時(shí)出錯(cuò),以至于每個(gè)字節(jié)的第一個(gè)比特錯(cuò)誤。
補(bǔ)充一點(diǎn),基于特定司法區(qū)域的防盜相關(guān)法律下,擁有這個(gè)設(shè)備可能違法,在做一臺(tái)開鎖設(shè)備前最好咨詢一下法律顧問。利用這臺(tái)設(shè)備獲取你無法進(jìn)入?yún)^(qū)域的權(quán)限或?yàn)榉欠ā1疚牟槐WC,也不承擔(dān)任何責(zé)任,也就是說,責(zé)任自負(fù)。
硬件安裝
需要的硬件:
· Arduino Mega 128 · 5.6千歐電阻 · 直流電源接口,外徑5毫米,內(nèi)徑2.1毫米。
將Arduino上3.3伏電源和數(shù)字IO引腳3用電阻連接,再將數(shù)字引腳3和直流接口內(nèi)部相連,最后將直流接口外部和Arduino一起接地。
詳細(xì)代碼可到原文查看
《開源雜志》微信請(qǐng)搜:開源雜志 ,官網(wǎng)oszine.com 關(guān)注開源硬件與創(chuàng)新,通過推廣開源文化將創(chuàng)意實(shí)現(xiàn)的門檻降低
以上就是關(guān)于怎么查自己的刷卡機(jī)密碼的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于怎么查自己的刷卡機(jī)密碼的知識(shí),希望能夠幫助到大家!

轉(zhuǎn)載請(qǐng)帶上網(wǎng)址:http://www.keemji.com/shuakatwo/263334.html