專利名稱:一種存儲卡和讀卡器相互認證的方法
技術領域:
本發(fā)明涉及存儲卡和讀卡器設計技術,特別涉及一種存儲卡和讀卡器之間實現(xiàn)相互認^正的方法。
背景技術:
目前的存儲卡,例如SD (Secure Digital安全數(shù)字)卡、匿(MultiMediCard多媒體卡)只具備存儲功能,存儲卡的一切行為都是由主機(HOST)來控制,存儲卡不能區(qū)分讀卡器的不同,更不能拒絕HOST下發(fā)的控制指令,在一些需要存儲卡區(qū)別什么任務可以完成,什么任務拒絕完成的情況下,這種普通的存儲卡就不能勝任了 。傳統(tǒng)的存儲卡及讀卡器存在以下缺點
1. 存儲卡被動地接受命令,被動地執(zhí)行任何符合相應存儲卡協(xié)議的命令,對主機發(fā)出的命令只執(zhí)行不進行任何判斷;
2. 讀卡器只需要符合相應存儲卡通信協(xié)議,例如SD/固C通信協(xié)議,只傳輸數(shù)據(jù)不進行任何判斷;
3. 存儲卡可以在任意一款讀卡器上使用,無法保證需要執(zhí)行的特殊功能的真實性、可靠性、安全性和唯一性;
4. 讀卡器雖然具有兼容性這一優(yōu)點,但無法控制存儲卡實現(xiàn)某些特殊功能,例如讀卡器識別固定ID的存儲卡,在識別通過的存儲卡上進行文件加密操作,而其他沒有通過識別的存儲卡則不能進行文件加密操作;
5. 存儲卡遵循相應的協(xié)議,不能兼容其它協(xié)議從而限制了功能的擴展。可見,存儲卡和相應讀卡器的上述缺點無法完成那些對安全性需求較高的
功能,本發(fā)明正是為了解決這一問題而提出的。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于針對目前存儲卡只遵循一種標準協(xié)議,不能隨意擴展標準協(xié)議來實現(xiàn)特殊功能的缺點,提供一種存儲卡和讀卡器相互認證的
4方法,從而保證一些基于存儲卡實現(xiàn)特殊功能的可靠性、真實性、安全性和唯一性。
本發(fā)明的技術方案如下 一種存儲卡和讀卡器相互認證的方法,包括如下步驟
(1) 上電初始,存儲卡進行第一處理,并把第一處理后的信息傳送給讀卡器;
(2) 讀卡器對第一處理后的信息數(shù)據(jù)進行第二處理,產(chǎn)生第二處理的
結(jié)果;
(3) 讀卡器根據(jù)第二處理的結(jié)果選擇進行第三處理或產(chǎn)生認證失敗信息,并把第三處理后的信息或認證失敗信息傳送給存儲卡;
(4) 若存儲卡接收到認證失敗信息,則轉(zhuǎn)到步驟(5);否則,存儲卡對第三處理后的信息進行第四處理,產(chǎn)生第四處理的結(jié)果,并根據(jù)第四處理的結(jié)果產(chǎn)生認證成功或認證失敗的信息;
(5) 存儲卡保存認證成功或認證失敗的信息。
如上所述的存儲卡和讀卡器相互認證的方法,其中,步驟(l)中所進行的第一處理是指存儲卡把其自身具有的ID通過校驗算法進行計算,得到第一組校驗碼,存儲卡ID和第一組校驗碼即為第一處理后的信息。
如上所述的存儲卡和讀卡器相互認證的方法,其中,步驟(2)中所進行的第二處理是指讀卡器把接收到的第一處理后的信息中的存儲卡ID通過校
驗算法進行計算,得到第二組校驗碼,并將第二組校驗碼與第一組校驗碼進行比較;且第二處理與第一處理所使用的校驗算法相同。
進一步,在上述存儲卡和讀卡器相互認證的方法中,步驟(2)中讀卡器所進行的第二處理產(chǎn)生兩種結(jié)果1.第一組和第二組校驗碼一致,2.第一組和第二組校驗碼不一致;步驟(3)中讀卡器根據(jù)所述結(jié)果1,選擇進行第三處理,讀卡器根據(jù)所述結(jié)果2,產(chǎn)生認證失敗信息表示讀卡器對存儲卡認證失敗。
如上所述的存儲卡和讀卡器相互認證的方法,其中,步驟(3)中所進行的第三處理是指讀卡器把讀卡器ID通過校驗算法進行計算,得到第三組校驗碼,讀卡器ID和第三組校驗碼即為第三處理后的信息。
如上所述的存儲卡和讀卡器相互認證的方法,其中,步驟(4)中所進行的第四處理是指存儲卡把接收到的第三處理后的信息中的讀卡器ID通過校驗算法進行計算,得到第四組校驗碼,并將第四組校驗碼與第三組校驗碼進
行比較;且第四處理與第三處理中的校驗算法相同。
進一步,在上述存儲卡和讀卡器相互認證的方法中,步驟(4)中存儲卡所進行的第四處理產(chǎn)生兩種結(jié)果1.第三組和第四組校驗碼一致,2.第三組和第四組校驗碼不一致;存儲卡根據(jù)所述結(jié)果1,產(chǎn)生認證成功信息表示存儲卡和讀卡器的相互認證成功,存儲卡根據(jù)所述結(jié)果2,產(chǎn)生認證失敗信息表示存儲卡和讀卡器的相互認證失敗。
如上所述的存儲卡和讀卡器相互認證的方法,其中,根據(jù)所述認證失敗的信息,基于認證成功才能進行的所有功能不能執(zhí)行。
采用本發(fā)明提供的存儲卡和讀卡器之間相互認證的方法,實現(xiàn)了以下效果
1. 存儲卡不僅符合相應存儲卡協(xié)議規(guī)范,還能夠符合ISO/IEC7816協(xié)議規(guī)范;通過ISO/IEC 7816協(xié)議,打開了存儲卡與讀卡器間進行相互認證的通道。
2. 存儲卡與讀卡器通過ISO/IEC7816協(xié)議接口進行數(shù)據(jù)交互,可以實現(xiàn)認證數(shù)據(jù)的傳送和判斷。
圖1為APDU指令結(jié)構示意圖。
圖2為應答APDU命令結(jié)構示意圖。
圖3為SD/匿C卡與讀卡器相互認證過程的流程圖。
圖4為讀卡器發(fā)送的status命令示意圖。
圖5為讀卡器發(fā)送的Fetch命令示意圖。
圖6為讀卡器向SD/固C卡發(fā)送的Terminal Response命令示意圖。
具體實施例方式
存儲卡和讀卡器分別具有唯一的一個ID ( Identification,標識符),存儲卡同讀卡器通過IS0/IEC7816協(xié)議實現(xiàn)認證數(shù)據(jù)的交互。當然,為了使遵循相應存儲卡協(xié)議的存儲卡和讀卡器可以通過ISO/IEC7816協(xié)議實現(xiàn)認證數(shù)據(jù)的交互,存儲卡需要具有單獨或者復用的ISO/IEC7816接口,并具有相應的功能。下面結(jié)合附圖,以SD或MMC為例對本發(fā)明進行詳細的描述。
SD/畫C卡與讀卡器進行相互認證數(shù)據(jù)的傳輸過程符合IS0/IEC 7816標準,存儲卡與讀卡器之間的數(shù)據(jù)傳送使用應用協(xié)議數(shù)據(jù)單元(APDU )命令結(jié)構,APDU的命令結(jié)構如圖1所示,
CLA:命令類別,取值為"AO"
INS:指令代碼;
Pl, P2:指令附加參數(shù);
P3:由INS的編碼而定,或是表示命令中送給卡的數(shù)據(jù)長度,或是表示等待從卡響應的數(shù)據(jù)最大長度。.
存儲卡回應讀卡器的命令為應答APDU命令,命令結(jié)構如圖2所示,SW1和SW2指示命令執(zhí)行的結(jié)果正確與否。
在本實施例中使用主動交互式命令。
SD/MMC卡與讀卡器相互iU正過程如圖3所示,步驟如下
1、 在SD/畫C卡上電后,首先發(fā)送復位應答信息,讀卡器接收到SD/應C卡發(fā)送的復位應答信息后,發(fā)送Status命令,讀卡器發(fā)送的status命令如圖4所示。
2、 SD/薩C卡應答status命令命令應答狀態(tài)字SW1SW2: 91 xx,表示命令正常結(jié)束,并通知讀卡器有主動命令作為附加信息,'xx,為響應數(shù)據(jù)的長度。
3、 讀卡器發(fā)送的Fetch命令如圖5所示。
4、 SD/畫C卡應答,發(fā)送Get Input命令
該命令屬于主動式SIM卡命令,命令格式符合GSMll. 14中的定義,命令中的文本字符串部分包括定義的指令類型、存儲卡ID和SD/,C卡利用存儲卡ID進行CRC (Cyclic Redundancy Check循環(huán)冗余才交一驗)?!灥玫降牟沤?瞼碼,其中指令類型包括校驗指令,表示存儲卡與讀卡器的認證。
CRC校驗技術為一種公知技術,在數(shù)據(jù)通信和數(shù)據(jù)存儲領域,CRC校驗無處不在,其基本思想是利用線性編碼理論,在發(fā)送端或者數(shù)據(jù)存儲時才艮據(jù)k位二進制信息碼序列,以一定的規(guī)則產(chǎn)生一個校驗用的CRC碼r位,并附在信息碼后邊,構成一個新的二進制碼序列數(shù)共(k+r)位。在接收端或數(shù)據(jù)存儲后,則根據(jù)信息碼和CRC碼之間所遵循的規(guī)則進行檢驗,以確定傳送中或者數(shù)據(jù)存儲中是否出錯。例如存儲卡ID為0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x390x30,即十進制1234567890,進行CRC才交-驗的初始值為0xFF, 0xFF, 0xFF, OxFF,進行CRC校驗后得到的校驗碼為0x32 0x18。
5、 讀卡器收到步驟4的SD/醒C卡發(fā)送的Get Input命令后,將根據(jù)命令的文本字符串中攜帶的指令類型數(shù)據(jù)判斷是否是校驗指令,如果不是校驗指令,則按照相應的非校驗指令執(zhí)行或退出此過程;如果是校驗指令,則接著取出命令的文本字符串中攜帶的存儲卡ID進行CRC校驗,計算出校驗碼,并將該校驗碼與讀卡器接收到的CRC校驗碼進行比較,若一致則說明讀卡器對存儲卡的認證成功,不一致則說明讀卡器對存儲卡的認證失敗。其中讀卡器利用存儲卡ID進行CRC校驗的算法與上述步驟4中存儲卡利用存儲卡ID進行CRC校驗的算法相同。
然后,讀卡器向SD/畫C卡發(fā)送Terminal Response命令,如圖6所示,該命令用于對上一次使用FETCH命令取回的SD/醒C卡主動命令Get Input的響應。
1) 當前述讀卡器判斷CRC校驗碼一致,讀卡器對SD/羅C存儲卡的認證成功時,讀卡器向SD/畫C發(fā)送的Terminal Response中的DATA部分包括讀卡器對SD/畫C卡認證成功的標志,定義的指令類型、讀卡器ID和讀卡器利用讀卡器ID計算得到的校驗碼。其中指令類型包括校驗指令的響應指令,表示存儲卡與讀卡器的認證。
2) 當前述讀卡器判斷CRC校驗碼不一致,讀卡器對SD/MMC存儲卡的認證失敗時,讀卡器向SD/MMC發(fā)送的Terminal Response中的DATA部分包括讀卡器對SD/MMC卡認證失敗的標志。
6、 SD/畫C卡收到讀卡器發(fā)送的Terminal Response命令后,根據(jù)命令中定義的指令類型判斷是否是校驗指令的響應指令,如果不是,則按照相應非校驗指令的響應指令執(zhí)行或退出此過程,如果是則根據(jù)命令中的認證成功/失敗標志判斷讀卡器對SD/畫C卡認證是否成功,如果認證失敗,則不置位SD/MMC卡內(nèi)部認證通過標志位;如果認證成功,則取出命令中攜帶的讀卡器ID進行CRC校驗,計算出校驗碼,與讀卡器發(fā)送的CRC校驗碼進行比較,若一致則通過SD/MMC卡與讀卡器的相互認證,并置位SD/固C卡內(nèi)部認i正通過標志位,若不一致則SD/醒C卡對讀卡器的iU正失敗,不置位SD/畫C卡內(nèi)部iU正通過標志位。其中SD/薩C卡利用讀卡器ID進行CRC校驗的算法與上述步驟5中讀卡器利用讀卡器
8ID進行CRC校驗的算法相同。SD/,C卡的特殊功能需在SD/固C卡內(nèi)部的認證通過標志位置位后才能正常進行。
7、 SD/薩C卡應答命令,其中命令應答狀態(tài)字SW1SW2: 90 00,通知讀卡器命令正常結(jié)束。
考慮到在此公開的對本發(fā)明的描述和特殊的實施例,本發(fā)明的其他實施例對于本領域的技術人員來說是顯而易見的。這些說明和實施例僅作為例子來考慮,它們都屬于由所附權利要求所指示的本發(fā)明的保護范圍和精神之內(nèi)。
權利要求
1.一種存儲卡和讀卡器相互認證的方法,包括如下步驟(1)上電初始,存儲卡進行第一處理,并把第一處理后的信息傳送給讀卡器;(2)讀卡器對第一處理后的信息數(shù)據(jù)進行第二處理,產(chǎn)生第二處理的結(jié)果;(3)讀卡器根據(jù)第二處理的結(jié)果選擇進行第三處理或產(chǎn)生認證失敗信息,并把第三處理后的信息或認證失敗信息傳送給存儲卡;(4)若存儲卡接收到認證失敗信息,則轉(zhuǎn)到步驟(5);否則,存儲卡對第三處理后的信息進行第四處理,產(chǎn)生第四處理的結(jié)果,并根據(jù)第四處理的結(jié)果產(chǎn)生認證成功或認證失敗的信息;(5)存儲卡保存認證成功或認證失敗的信息。
2. 如權利要求1所述的存儲卡和讀卡器相互認證的方法,其特征在于步驟(1)中所進行的第一處理是指存儲卡把其自身具有的ID通過校驗算法進行計算,得到第一組校驗碼,存儲卡ID和第一組校驗碼即為第一處理后的信息。
3. 如權利要求2所述的存儲卡和讀卡器相互認證的方法,其特征在于步驟(2)中所進行的第二處理是指讀卡器把接收到的第一處理后的信息中的存儲卡ID通過校驗算法進行計算,得到第二組校驗碼,并將第二組校驗碼與第 一組校驗碼進行比較。
4. 如權利要求3所述的存儲卡和讀卡器相互認證的方法,其特征在于第二處理與第一處理所使用的校驗算法相同。
5. 如權利要求3所述的存儲卡和讀卡器相互認證的方法,其特征在于步驟(2)中讀卡器所進行的第二處理產(chǎn)生兩種結(jié)果1.第一組和第二組校驗碼一致,2.第一組和第二組校驗碼不一致;步驟(3)中讀卡器根據(jù)所述結(jié)果l,選擇進行第三處理,讀卡器根據(jù)所述結(jié)果2,產(chǎn)生認證失敗信息表示讀卡器對存儲卡認證失敗。
6. 如權利要求1所述的存儲卡和讀卡器相互認證的方法,其特征在于步驟(3)中所進行的第三處理是指讀卡器把讀卡器ID通過校驗算法進行計算,得到第三組校驗碼,讀卡器ID和第三組校驗碼即為第三處理后的信息。
7. 如權利要求6所述的存儲卡和讀卡器相互認證的方法,其特征在于步驟(4 )中所進行的第四處理是指存儲卡把接收到的第三處理后的信息中的讀卡器ID通過校驗算法進行計算,得到第四組校驗碼,并將第四組校驗碼與第三組校驗碼進行比較。
8. 如權利要求7所述的存儲卡和讀卡器相互認證的方法,其特征在于第四處理與第三處理中的校驗算法相同。
9. 如權利要求7所述的存儲卡和讀卡器相互認證的方法,其特征在于步驟(4)中存儲卡所進行的第四處理產(chǎn)生兩種結(jié)果1.第三組和第四組校驗碼一致,2.第三組和第四組校驗碼不一致;存儲卡根據(jù)所述結(jié)果l,產(chǎn)生認證成功信息表示存儲卡和讀卡器的相互認證成功,存儲卡根據(jù)所述結(jié)果2,產(chǎn)生認證失敗信息表示存儲卡和讀卡器的相互認證失敗。
10. 如權利要求1所述的存儲卡和讀卡器相互認證的方法,其特征在于根據(jù)所述認證失敗的信息,基于認證成功才能進行的所有功能不能執(zhí)行。
全文摘要
本發(fā)明涉及存儲卡和讀卡器設計技術,特別涉及一種存儲卡和讀卡器之間實現(xiàn)相互認證的方法。該方法在上電初始,存儲卡進行第一處理,并把第一處理后的信息傳送給讀卡器;讀卡器對第一處理后的信息數(shù)據(jù)進行第二處理,產(chǎn)生第二處理的結(jié)果;讀卡器根據(jù)第二處理的結(jié)果選擇進行第三處理或產(chǎn)生認證失敗信息,并把第三處理后的信息或認證失敗信息傳送給存儲卡;存儲卡對第三處理后的信息進行第四處理,產(chǎn)生第四處理的結(jié)果,并根據(jù)第四處理的結(jié)果產(chǎn)生認證成功或認證失敗的信息;存儲卡保存認證成功或認證失敗的信息。本發(fā)明保證了一些基于存儲卡實現(xiàn)特殊功能的可靠性、真實性、安全性和唯一性。
文檔編號G06K7/00GK101561860SQ20081010420
公開日2009年10月21日 申請日期2008年4月17日 優(yōu)先權日2008年4月17日
發(fā)明者璐 徐, 軍 支, 華 閆 申請人:鳳凰微電子(中國)有限公司