關(guān) 閉

新聞中心

EEPW首頁 > 安全與國防 > 設(shè)計應(yīng)用 > 由Mifare 1卡破解帶來的危險以及應(yīng)對方法

由Mifare 1卡破解帶來的危險以及應(yīng)對方法

作者: 時間:2009-09-02 來源:網(wǎng)絡(luò) 收藏

1卡片安全問題暴露后,一些公司公開宣稱已經(jīng)有了解決的辦法,其中的法寶就是所謂“一卡一密”,也就是每一張卡片的每一個扇區(qū)的密鑰都不相同,使用CPU卡裝載系統(tǒng)根密鑰,根據(jù)1卡的唯一序列號計算子密鑰,防止一張卡片被破解而影響整個系統(tǒng)。其實這種解決方案在1卡破解之前就已經(jīng)出現(xiàn)。那么,一卡一密真的能解決Mifare1的安全問題么,我們還是要從Mifare1卡的認(rèn)證機(jī)制著手進(jìn)行分析。

我們已經(jīng)知道,Mifare1卡的認(rèn)證實質(zhì)上是卡與基站芯片之間的認(rèn)證。常用的RC500等基站芯片已經(jīng)為業(yè)界廣為熟知,它的接口和通訊協(xié)議都是公開的。在基站與Mifare1卡認(rèn)證前,需要通過LoadKey命令將Mifare1卡的密碼裝載到基站芯片中。這一過程是一個明文寫入的過程,是由終端設(shè)備(如讀卡器)主控單片機(jī)傳送給RC500的,并且單片機(jī)對RC500的命令傳輸是非加密的。如下圖所示:



這樣就可以通過截獲單片機(jī)與RC500之間的通訊來獲取M1卡的密鑰。而要做到這一點,一個使用過RC500的對單片機(jī)技術(shù)稍微了解的技術(shù)人員都能夠輕而易舉的實現(xiàn)。

那么,在讀卡器中安裝SAM卡,通過SAM卡計算卡片密鑰實現(xiàn)一卡一密是否就安全了呢。想法非常美好,然而結(jié)果卻非人所愿,這樣的做法不但沒有增加安全,反而更加加大了安全漏洞。如下圖所示:



如圖所示,M1卡通過SAM卡實現(xiàn)一卡一密本質(zhì)上是將SAM卡內(nèi)的主密鑰通過對M1卡的卡號分散后得到M1卡的子密鑰,但是這個子密鑰仍然要通過終端單片機(jī)明文傳送給RC500芯片完成對M1卡的認(rèn)證。更為嚴(yán)重的是SAM卡送出的是Mifare1卡的明文密碼,黑客只要獲得一張SAM卡,就能夠通過它獲得所有卡片的密碼,連破解手段都不用。

此外,在M1卡消費密碼被泄露的情況下,即使采用了聯(lián)機(jī)充值的方法,也無法保障運營商的利益,因為在此情況下,盜竊者使用偽造的M1卡,完全可以不用系統(tǒng)的充值密碼,而直接采用M1卡的缺省密碼對卡片進(jìn)行“充值”,然后用真實的消費密碼在終端上消費。在此情況下,即使采用了黑名單機(jī)制也難以避免運營商和授卡商戶遭受損失,因為黑名單機(jī)制是一種事后防范機(jī)制,防止的是再次發(fā)生同一偽卡的交易,而在M1卡小額消費日益普及的今天,盜竊者只需將偽卡使用一次,就足以獲得比一張偽卡成本高得多的收益。

這樣,我們可以假設(shè)一下幾種情況:

外部人員作案:

作案人盜取一個正式使用的終端設(shè)備,通過線路截獲方式獲取單片機(jī)發(fā)送給RC500的密鑰,從而破解M1卡的密鑰。

作案人盜取終端內(nèi)的PSAM卡,通過向PSAM卡發(fā)送密鑰分散指令的方式得到每一張M1卡的子密鑰。

內(nèi)部人員作案:

終端設(shè)備的開發(fā)人員利用工作之便盜取終端內(nèi)的M1卡密鑰明文或經(jīng)過單片機(jī)發(fā)送給RC500的M1卡密鑰明文。

發(fā)卡機(jī)構(gòu)工作人員利用工作之便截取PC機(jī)通過M1卡讀卡器發(fā)送給M1卡的密鑰明文。或直接操作PSAM卡盜取密鑰明文。

系統(tǒng)開發(fā)人員利用工作之便盜取PSAM卡密鑰明文。



關(guān)鍵詞: NXP Mifare 同方 智能卡 IC卡

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉