射頻卡讀寫(xiě)器裝載密碼函數(shù)的正確使用
文章出處:http://m.luckydriving.com 作者:中國(guó)一卡通網(wǎng) 收編 人氣: 發(fā)表時(shí)間:2011年10月17日
本文以最常用的MIFARE ONE卡來(lái)說(shuō)明。該卡有16個(gè)扇區(qū),每個(gè)扇區(qū)都有獨(dú)立的密碼,包括A密碼和B密碼。如果需要對(duì)某一扇區(qū)操作就必須對(duì)該扇區(qū)進(jìn)行密碼校驗(yàn)。密碼校驗(yàn)的方式分兩種。下面將分別說(shuō)明。
一種是常規(guī)的被大多數(shù)讀卡器廠(chǎng)商所采用的方式。首先將要校驗(yàn)的扇區(qū)密碼裝載到讀寫(xiě)器的保密存儲(chǔ)區(qū)中,每個(gè)扇區(qū)對(duì)應(yīng)不同的保密存儲(chǔ)區(qū)。這樣在校驗(yàn)卡的時(shí)候,讀寫(xiě)器會(huì)根據(jù)扇區(qū)號(hào)來(lái)和讀寫(xiě)器中對(duì)應(yīng)的保密存儲(chǔ)區(qū)中的密碼進(jìn)行校驗(yàn),如果密碼相同就通過(guò)校驗(yàn),可以 進(jìn)行以后的讀寫(xiě)工作。這種方式的特點(diǎn)是密碼裝載到讀寫(xiě)器的保密存儲(chǔ)區(qū)后將一直保留,斷電后也不會(huì)丟失。用戶(hù)如果不需要改變密碼的話(huà),就不用調(diào)用dc_load_key函數(shù)再次下載密碼。有些程序代碼在尋卡的循環(huán)中包含dc_load_key函數(shù),這樣是不必要的。讀寫(xiě)器保密存儲(chǔ)區(qū)是系統(tǒng)模塊中的EEPROM,在PHILIPS的資料中說(shuō)明該區(qū)域可擦寫(xiě)的次數(shù)最少在10萬(wàn)次以上,但該區(qū)域還是有次數(shù)限制的,如果長(zhǎng)期的執(zhí)行裝載密碼操作將減少讀寫(xiě)器保密存儲(chǔ)區(qū)的使用壽命。
第二種是當(dāng)需要經(jīng)常對(duì)不同密碼的卡進(jìn)行核對(duì)而使用的方式。該方式不用提前將密碼裝載到讀寫(xiě)器的保密存儲(chǔ)區(qū)中。只需要在校驗(yàn)卡的時(shí)候同時(shí)將密碼傳遞給讀寫(xiě)器就可以進(jìn)行校驗(yàn)。對(duì)應(yīng)的函數(shù)聲明如下:
int dc_authentication_pass(int icdev,unsigned char _Mode,unsigned char Addr,unsigned char *passbuff)
功 能:核對(duì)密碼函數(shù),用此函數(shù)時(shí),可以不用執(zhí)行dc_load_key()函數(shù)
參 數(shù):icdev: dc_init返回的設(shè)備描述符
_Mode:密碼驗(yàn)證模式0—KEYA 4—KEYB
Addr:要驗(yàn)證密碼的扇區(qū)號(hào)
passbuff:6字節(jié)密碼字符串
返 回:成功返回0
這種方式大多是在卡片采用一卡一密的時(shí)候使用,可以避免頻繁的對(duì)讀寫(xiě)器的保密存儲(chǔ)區(qū)操作。該函數(shù)在RD800M/RD900M 7.1版本中被支持。
除了上述的兩種方式以外還有根據(jù)讀寫(xiě)器的SAM安全模塊產(chǎn)生密鑰進(jìn)行卡片校驗(yàn)的方式。可以根據(jù)客戶(hù)不同的SAM安全模塊和特殊要求來(lái)定制使用方式,以用于安全保密性要求很高的系統(tǒng)中。