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