專利名稱:一種智能卡操作方法以及一種智能卡的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及智能卡技術(shù),特別涉及一種能夠滿足實(shí)時(shí)以及非實(shí)時(shí)等各種 業(yè)務(wù)需求的智能卡操作方法以及 一 種智能卡。
背景技術(shù):
隨著國家對智能卡行業(yè)的支持,智能卡在企業(yè)、銀行、學(xué)校、通信、交 通、工商、稅務(wù)以及公安等領(lǐng)域得到了廣泛地應(yīng)用,相應(yīng)地,對智能卡中的 數(shù)據(jù)可靠性也提出了更高的要求。
目前,保證智能卡中的數(shù)據(jù)可靠性的操作被稱之為原子性操作。原子性
操作是將一個(gè)事務(wù)看成一個(gè)完整的操作集合(事務(wù)是指完成一個(gè)應(yīng)用或業(yè)務(wù) 所需的所有操作的集合),事務(wù)中的各操作是不可分的,事務(wù)的所有操作必 須被整體提交或回滾,如果在完成事務(wù)的過程中,當(dāng)執(zhí)行任何一個(gè)操作時(shí)發(fā) 生中斷,則整個(gè)事務(wù)將回滾到事務(wù)開始之前的狀態(tài)。
例如,對于將多塊數(shù)據(jù)連續(xù)寫入智能卡這一事務(wù),如果在寫入數(shù)據(jù)的過 程中發(fā)生中斷,則當(dāng)中斷恢復(fù)后,如果還要執(zhí)行該事務(wù),則需要從頭開始重 新寫入所有數(shù)據(jù)。另外,可以采用舊數(shù)據(jù)備份或新數(shù)據(jù)備份的方式,來避免 中斷對智能卡中原有數(shù)據(jù)可能造成的影響。其中,舊數(shù)據(jù)備份方式是指將智 能卡中的原有數(shù)據(jù)進(jìn)行備份,這樣,如果在寫入新數(shù)據(jù)的過程中發(fā)生中斷,
則可通過所作備份將智能卡中的數(shù)據(jù)恢復(fù)為原有數(shù)據(jù);新數(shù)據(jù)備份方式是指 將新數(shù)據(jù)寫入到備份區(qū),這樣,如果在寫入新數(shù)據(jù)的過程中發(fā)生中斷,則不 會(huì)對智能卡中的原有數(shù)據(jù)造成影響。
上述原子性操作雖然能夠在一定程度上保證智能卡中的數(shù)據(jù)的可靠性, 但是這種操作模式卻無法滿足對于實(shí)時(shí)性要求較高的業(yè)務(wù)的需求。比如,對
于手機(jī)付費(fèi)電視業(yè)務(wù),如果用戶選擇實(shí)時(shí)繳費(fèi)方式,即根據(jù)觀看節(jié)目的時(shí)長 進(jìn)行繳費(fèi),那么,當(dāng)用戶觀看完一段節(jié)目,開始通過智能卡進(jìn)行繳費(fèi)操作時(shí), 如果手機(jī)突然發(fā)生掉電,那么當(dāng)手機(jī)重新上電之后,智能卡中的數(shù)據(jù)將恢復(fù) 到繳費(fèi)操作之前的狀態(tài),也就是說,將無法繼續(xù)進(jìn)行繳費(fèi)操作,從而使運(yùn)營 商的利益受到損害。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種智能卡操作方法,能夠滿足 實(shí)時(shí)以及非實(shí)時(shí)等各種業(yè)務(wù)的需求。
本發(fā)明的另 一 目的在于提供 一 種智能卡,能夠滿足實(shí)時(shí)以及非實(shí)時(shí)等各 種業(yè)務(wù)的需求。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的 一種智能卡操作方法,該方法包括
A、 在執(zhí)行一事務(wù)的過程中,每執(zhí)行完一個(gè)關(guān)^:節(jié)點(diǎn),則將所述關(guān)鍵節(jié)點(diǎn) 對應(yīng)的執(zhí)行結(jié)果進(jìn)行備份,并通過對預(yù)先設(shè)定的更新標(biāo)志位進(jìn)行設(shè)置,來記錄
所述事務(wù)的執(zhí)行進(jìn)程;所述關(guān)鍵節(jié)點(diǎn)為從完成所述事務(wù)所需的所有操作中預(yù)先 選定的 一個(gè)以上重要操作;
B、 如果在執(zhí)行所述事務(wù)的過程中發(fā)生中斷,則在中斷恢復(fù)后,通過查詢 所述更新標(biāo)志位,確定出下一步將要執(zhí)行的操作,并依據(jù)所述備^f分的信息執(zhí)行 所述確定出的操作。
所述步驟A之前,進(jìn)一步包括
接收來自終端的通知指令,根據(jù)所述通知指令確定執(zhí)行所述事務(wù)所需采用 的操作模式,如果確定出的操作模式為完整性操作,則執(zhí)行所述步驟A;
或者,根據(jù)預(yù)先保存的不同事務(wù)分別對應(yīng)的操作模式信息,確定執(zhí)行所述 事務(wù)所需采用的操作模式,如果確定出的操作模式為完整性操作,則執(zhí)行所述 步驟A。
較佳地,所述通知指令為應(yīng)用協(xié)議數(shù)據(jù)單元APDU指令;所述根據(jù)通知指
令確定執(zhí)行所述事務(wù)所需采用的操作模式包括
讀取所述APDU指令中的操作模式標(biāo)志位中攜帶的操作模式指示信息,根
據(jù)所述搡作模式指示信息確定執(zhí)行所述事務(wù)所需采用的操作模式。
如果確定出的操作模式為原子性操作,則在執(zhí)行所述事務(wù)的過程中,當(dāng)發(fā)
生中斷后,將所述事務(wù)的狀態(tài)回滾到所述事務(wù)開始執(zhí)行之前的狀態(tài)。
所述事務(wù)為智能卡內(nèi)部的事務(wù),或者為需要智能卡與終端之間進(jìn)行信息交
互的事務(wù)。
所述依據(jù)所述備份的信息執(zhí)行所述確定出的操作之前,進(jìn)一步包括 判斷所述事務(wù)被中斷的次數(shù)是否已經(jīng)達(dá)到預(yù)先設(shè)定的最大中斷次數(shù)閾值, 如果不是,則依據(jù)所述備份的信息執(zhí)行所述確定出的操作;如果是,則進(jìn)行身 份認(rèn)證,并在認(rèn)證通過后,依據(jù)所述備份的信息執(zhí)行所述確定出的操作。 一種智能卡,包括
備份單元,用于在執(zhí)行一事務(wù)的過程中,每執(zhí)行完一個(gè)關(guān)鍵節(jié)點(diǎn),則將所 述關(guān)鍵節(jié)點(diǎn)對應(yīng)的執(zhí)行結(jié)果進(jìn)行備份,并通過對預(yù)先設(shè)定的更新標(biāo)志位進(jìn)行設(shè) 置,來記錄所述事務(wù)的執(zhí)行進(jìn)程;所述關(guān)鍵節(jié)點(diǎn)為從完成所述事務(wù)所需的所有 操作中預(yù)先選定的 一個(gè)以上重要操作;
執(zhí)行單元,用于當(dāng)執(zhí)行所述事務(wù)的過程中出現(xiàn)的中斷恢復(fù)后,通過查詢所 述更新標(biāo)志位,確定出下一步將要執(zhí)行的操作,并依據(jù)所述備份的信息執(zhí)行所 述確定出的操作。
較佳地,所述智能卡中進(jìn)一步包括
模式選擇單元,用于接收來自終端的通知指令,根據(jù)所述通知指令確定執(zhí) 行所述事務(wù)所需采用的操作模式,如果確定出的操作模式為完整性操作,則通 知所述備份單元執(zhí)行自身功能;或者,用于根據(jù)預(yù)先保存的不同事務(wù)分別對應(yīng) 的操作模式信息,確定執(zhí)行所述事務(wù)所需采用的操作模式,如果確定出的操作 模式為完整性操作,則通知所述備份單元執(zhí)行自身功能。
所述模式選擇單元進(jìn)一步用于,如果確定出的操作模式為原子性操作,則 在執(zhí)行所述事務(wù)的過程中,當(dāng)發(fā)生中斷后,將所述事務(wù)的狀態(tài)回滾到所述事務(wù)
開始執(zhí)行之前的狀態(tài)。
所述事務(wù)為所述智能卡內(nèi)部的事務(wù),或者為需要所述智能卡與終端之間進(jìn) 行信息交互的事務(wù)。
其中,所述執(zhí)行單元包括確定子單元以及執(zhí)行子單元; 所述確定子單元,用于當(dāng)執(zhí)行所述事務(wù)的過程中出現(xiàn)的中斷恢復(fù)后,通過 查詢所述更新標(biāo)志位,確定出下一步將要執(zhí)行的操作;
所述執(zhí)行子單元,用于依據(jù)所述備份的信息執(zhí)行所述確定出的操作。 較佳地,所述執(zhí)行單元中進(jìn)一步包括 計(jì)數(shù)子單元,用于統(tǒng)計(jì)所述事務(wù)被中斷的次數(shù);
判斷子單元,用于判斷所述事務(wù)被中斷的次數(shù)是否已經(jīng)達(dá)到預(yù)先設(shè)定的最 大中斷次數(shù)閾值,如果不是,則通知所述執(zhí)行子單元執(zhí)行自身功能;如果是, 則進(jìn)行身份認(rèn)證,并在認(rèn)證通過后,通知所述執(zhí)行子單元執(zhí)行自身功能。
可見,采用本發(fā)明的技術(shù)方案,智能卡在執(zhí)行某一事務(wù)的過程中,每執(zhí)行 完一個(gè)關(guān)鍵節(jié)點(diǎn)后,則將該關(guān)鍵節(jié)點(diǎn)對應(yīng)的執(zhí)行結(jié)果進(jìn)行備份,并通過設(shè)置更 新標(biāo)志位來記錄該事務(wù)的執(zhí)行進(jìn)程,這樣, 一旦在執(zhí)行該事務(wù)的過程中發(fā)生中 斷,待中斷恢復(fù)后,即可根據(jù)更新標(biāo)志位來確定出下一步將要執(zhí)行的操作,并 可根據(jù)備份的信息執(zhí)行該確定出的操作。與現(xiàn)有原子性操作模式相比,本發(fā)明 所提供的這種操作模式不會(huì)因?yàn)橹袛喽斐蓴?shù)據(jù)丟失,所以能夠滿足實(shí)時(shí)以及 非實(shí)時(shí)等各種業(yè)務(wù)的需求。
圖1為本發(fā)明方法實(shí)施例的流程圖。
圖2為本發(fā)明方法實(shí)施例中 一事務(wù)示例的執(zhí)行過程示意圖。 圖3為本發(fā)明方法實(shí)施例中另一事務(wù)示例的執(zhí)行過程示意圖。 圖4為本發(fā)明方法實(shí)施例中的操作恢復(fù)保護(hù)機(jī)制的實(shí)現(xiàn)流程圖。 圖5為本發(fā)明裝置實(shí)施例的組成結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明中提出 一種全新的智能卡操作模式,
即完整性操作模式在執(zhí)行某一事務(wù)的過程中,每執(zhí)行完一個(gè)關(guān)鍵節(jié)點(diǎn),則將 該關(guān)鍵節(jié)點(diǎn)對應(yīng)的執(zhí)行結(jié)果進(jìn)行備份,并通過對預(yù)先設(shè)定的更新標(biāo)志位進(jìn)行設(shè) 置,來記錄該事務(wù)的執(zhí)行進(jìn)程,即當(dāng)前執(zhí)行到哪個(gè)關(guān)鍵節(jié)點(diǎn),所述關(guān)鍵節(jié)點(diǎn)為 從完成該事務(wù)所需的所有操作中預(yù)先選定的一個(gè)以上重要操作;這樣,如果在 執(zhí)行該事務(wù)的過程中發(fā)生中斷,則當(dāng)中斷恢復(fù)后,通過查詢更新標(biāo)志位,即可 確定出下一步將要執(zhí)行的操作,并可依據(jù)備份的信息執(zhí)行所述確定出的操作。
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí) 施例,對本發(fā)明作進(jìn)一步地詳細(xì)說明。
圖1為本發(fā)明方法實(shí)施例的流程圖。如圖1所示,包括以下步驟
步驟101:將預(yù)先設(shè)置的更新標(biāo)志位進(jìn)行置位。
本實(shí)施例中,當(dāng)需要開始執(zhí)行某一事務(wù)時(shí),首先將預(yù)先設(shè)置的更新標(biāo)志位 進(jìn)行置位,即將更新標(biāo)志位設(shè)置為0。
步驟102:在執(zhí)行事務(wù)的過程中,每執(zhí)行完一個(gè)關(guān)鍵節(jié)點(diǎn),則將該關(guān)鍵節(jié) 點(diǎn)對應(yīng)的執(zhí)行結(jié)果進(jìn)行備份,并通過對更新標(biāo)志位進(jìn)行設(shè)置,來記錄該事務(wù)的 執(zhí)行進(jìn)程。
這里所提到的關(guān)鍵節(jié)點(diǎn),是指從完成該事務(wù)所需的所有操作中預(yù)先選定的 一個(gè)以上重要操作。
本步驟中,每執(zhí)行完一個(gè)關(guān)鍵節(jié)點(diǎn)后,除了要將該關(guān)鍵節(jié)點(diǎn)對應(yīng)的執(zhí)行結(jié) 果進(jìn)行備份外,還需要對更新標(biāo)志位進(jìn)行設(shè)置,以記錄事務(wù)的執(zhí)行進(jìn)程。本實(shí) 施例中,可預(yù)先設(shè)定好不同的關(guān)鍵節(jié)點(diǎn)分別對應(yīng)的不同的更新標(biāo)志位設(shè)置方式, 這樣,后續(xù)過程中通過查詢該更新標(biāo)志位,即可獲知已經(jīng)執(zhí)行完了哪個(gè)關(guān)鍵節(jié) 點(diǎn)。比如,當(dāng)執(zhí)行完第一個(gè)關(guān)鍵節(jié)點(diǎn)后,可將更新標(biāo)志位設(shè)置為1;當(dāng)執(zhí)行完 第二個(gè)關(guān)鍵節(jié)點(diǎn)后,將更新標(biāo)志位設(shè)置為2,依次類推。
步驟103:判斷在執(zhí)行該事務(wù)的過程中是否發(fā)生中斷,如果是,則執(zhí)行步
驟104;否則,返回執(zhí)行步驟102。
步驟104:當(dāng)中斷恢復(fù)后,通過查詢更新標(biāo)志位,確定出下一步將要執(zhí)行 的操作,并依據(jù)備份的信息執(zhí)行該確定出的操作。
如果在執(zhí)行事務(wù)的過程,由于各種可能的原因出現(xiàn)意外中斷,則當(dāng)中斷恢 復(fù)后,通過查詢更新標(biāo)志位,即可獲知下一步將要執(zhí)行的是什么操作,然后, 根據(jù)所作備份,即發(fā)生中斷前所執(zhí)行的關(guān)鍵節(jié)點(diǎn)的執(zhí)行結(jié)果,執(zhí)行該確定出的 下一步將要執(zhí)行的操作。
舉例說明假設(shè)某一事務(wù)共包括三個(gè)關(guān)鍵節(jié)點(diǎn),分別為關(guān)鍵節(jié)點(diǎn)1、關(guān)鍵 節(jié)點(diǎn)2和關(guān)鍵節(jié)點(diǎn)3;為便于描述,假設(shè)完成該事務(wù)總共只需要這三個(gè)操作。 那么,如果在執(zhí)行完關(guān)鍵節(jié)點(diǎn)1,但還未執(zhí)行完關(guān)鍵節(jié)點(diǎn)2時(shí)發(fā)生中斷,則在 中斷恢復(fù)后,從關(guān)鍵節(jié)點(diǎn)2開始執(zhí)行;如果在執(zhí)行完關(guān)鍵節(jié)點(diǎn)2,但還未執(zhí)行 完關(guān)鍵節(jié)點(diǎn)3時(shí)發(fā)生中斷,則在中斷恢復(fù)后,從關(guān)鍵節(jié)點(diǎn)3開始執(zhí)行;當(dāng)然, 如果在還未執(zhí)行完關(guān)鍵節(jié)點(diǎn)1時(shí)即發(fā)生中斷,則在中斷恢復(fù)后,從關(guān)鍵節(jié)點(diǎn)1 開始執(zhí)行即可。
后續(xù)過程中,重復(fù)步驟102 ~ 104所示過程,直至執(zhí)行完該事務(wù)的所有操作。 步驟105:當(dāng)執(zhí)行完該事務(wù)的所有操作后,將更新標(biāo)志位清零,結(jié)束流程。 需要說明的是,本發(fā)明中所提到的事務(wù)可以是指智能卡內(nèi)部的事務(wù),也可 以是指需要智能卡與終端之間進(jìn)行信息交互的事務(wù)。下面即針對這兩種情況, 分別通過具體的示例對本發(fā)明所述方案作進(jìn)一步地詳細(xì)說明。 示例一
假設(shè)智能卡為條件接收卡(CA),事務(wù)為CA卡按照用戶觀看節(jié)目的時(shí)長 進(jìn)行收費(fèi)。如圖2所示,該事務(wù)的執(zhí)行過程包括以下步驟
步驟201:接收終端發(fā)來的APDU指令,開啟事務(wù)保護(hù)功能。
當(dāng)用戶觀看完節(jié)目后,用戶所使用的終端會(huì)向CA卡發(fā)送包含節(jié)目信息, 如觀看時(shí)長、節(jié)目收費(fèi)方式以及價(jià)格等信息的APDU指令。CA卡接收到該 APDU指令后,開啟自身的事務(wù)保護(hù)功能,即將更新標(biāo)志位置位。
步驟202:統(tǒng)計(jì)用戶的觀看時(shí)長。
步驟203:查看節(jié)目收費(fèi)方式以及價(jià)格,計(jì)算用戶所需繳納的費(fèi)用。 步驟204:判斷卡內(nèi)余額是否充足,如果是,則執(zhí)行步驟205;否則,進(jìn)行
錯(cuò)誤處理。
如何進(jìn)行錯(cuò)誤處理與本發(fā)明無關(guān),不作介紹。 步驟205:執(zhí)行扣費(fèi)操作。 步驟206:記錄交易明細(xì)。
上述步驟202-206的具體實(shí)現(xiàn)均與現(xiàn)有技術(shù)中相同,不再贅述。 步驟207:關(guān)閉事務(wù)保護(hù)功能,結(jié)束流程。 即將更新標(biāo)志位清零。
如果在執(zhí)行圖2所示事務(wù)的過程意外發(fā)生中斷,比如,在計(jì)算完用戶所需 繳納的費(fèi)用后,還沒來得及扣費(fèi)就發(fā)生斷電,那么,如果按照現(xiàn)有方式進(jìn)行處 理,則相當(dāng)于用戶觀看了電視節(jié)目卻沒有交錢,從而使運(yùn)營商的利益受到損害; 而采用本發(fā)明所述方案后,即可較好地解決這一問題。
假設(shè)上述步驟202、 203、 204、 205和206均為關(guān)4建節(jié)點(diǎn),則在4丸行圖2 所示事務(wù)的過程中,每執(zhí)行完一個(gè)關(guān)鍵節(jié)點(diǎn)后,均需要進(jìn)行數(shù)據(jù)的備份和更新 標(biāo)志位的設(shè)置。這樣,如果在執(zhí)行步驟203時(shí)發(fā)生中斷,那么,通過查詢更新 標(biāo)志位,即可獲知中斷前已經(jīng)執(zhí)行完了步驟202,并且,由于已經(jīng)備份了步驟 202的執(zhí)行結(jié)果,所以可根據(jù)該執(zhí)行結(jié)果執(zhí)行步驟203;其它情況依此類推。特 別地,對于在執(zhí)行步驟202時(shí)即發(fā)生中斷這種情況,可通過查詢更新標(biāo)志位, 由于其此時(shí)設(shè)置為0,所以可知道還未執(zhí)行任何關(guān)鍵節(jié)點(diǎn),后續(xù)中斷恢復(fù)后直 接執(zhí)行步驟202即可。
示例二
假設(shè)智能卡為CA卡,事務(wù)同樣為CA卡按照用戶觀看節(jié)目的時(shí)長進(jìn)行收
費(fèi),但與圖2所示不同的是,該示例中,終端不會(huì)直接將用戶的觀看節(jié)目時(shí)長
發(fā)送給CA卡,而是需要CA卡通過不斷地與終端進(jìn)行信息交互,來獲取用戶
觀看節(jié)目的起始及結(jié)束時(shí)間,進(jìn)而計(jì)算出用戶的觀看節(jié)目時(shí)長;而且,后續(xù)的
收費(fèi)過程中,CA卡也需要與終端之間進(jìn)行信息交互。如圖3所示,該事務(wù)的
執(zhí)行過程包括以下步驟
步驟301:用戶打開終端應(yīng)用軟件,同時(shí)CA卡進(jìn)行初始化復(fù)位。
步驟302:終端向CA卡發(fā)送選擇應(yīng)用的APDU1指令。
本步驟中,終端向CA卡發(fā)送APDU1指令,以通知CA卡自身所選擇的應(yīng)
用為付費(fèi)電視所對應(yīng)的應(yīng)用。
步驟303:終端選擇要觀看的節(jié)目,接收所選節(jié)目的數(shù)據(jù)流和授權(quán)控制消
息(ECM ),并向CA卡發(fā)送包含ECM信息的APDU2指令。
CA卡接收到來自終端的APDU1指令后,會(huì)向終端回送一個(gè)響應(yīng)消息;終
端接收到該響應(yīng)消息后,即執(zhí)行本步驟所述過程。
步驟304: CA卡接收到APDU2指令后,根據(jù)其中的ECM信息中攜帶的
當(dāng)前時(shí)間信息,獲取并記錄用戶開始觀看節(jié)目的起始時(shí)間,同時(shí)解析出控制字 (CW)返回給終端。
步驟305:終端利用接收到的CW字解析加擾的數(shù)據(jù)流。
步驟306:當(dāng)用戶觀看節(jié)目結(jié)束時(shí),終端向CA卡發(fā)送攜帶有觀看節(jié)目結(jié)
束時(shí)間的APDU3指令。
步驟307: CA卡統(tǒng)計(jì)用戶的觀看時(shí)長,并計(jì)算出用戶需要繳納的費(fèi)用返回
給終端。
步驟308:終端向CA卡發(fā)送確定繳費(fèi)的APDU4指令。 步驟309: CA卡進(jìn)行扣費(fèi)操作。
步驟310:扣費(fèi)成功后,CA卡記錄交易明細(xì),結(jié)束流程。 圖3所示流程的具體實(shí)現(xiàn)與現(xiàn)有技術(shù)中相同,不再贅述。 假設(shè)圖3所示事務(wù)共有四個(gè)關(guān)鍵節(jié)點(diǎn),分別為步驟303 -306、步驟307、 步驟309以及步驟310。每執(zhí)行完一個(gè)關(guān)鍵節(jié)點(diǎn)后,均需要進(jìn)行數(shù)據(jù)的備份和 更新標(biāo)志位的設(shè)置。這樣,在執(zhí)行該事務(wù)的過程中,如果在執(zhí)行步驟303 -306, 或者執(zhí)行步驟307的過程中發(fā)生中斷,則當(dāng)中斷恢復(fù)后,直接執(zhí)行步驟307(如 果發(fā)生中斷時(shí)CA卡還未接收到來自終端的觀看節(jié)目結(jié)束時(shí)間,則以發(fā)生中斷 時(shí)的時(shí)間作為觀看節(jié)目結(jié)束時(shí)間);如果在執(zhí)行309時(shí)發(fā)生中斷,則在中斷恢復(fù)
后,直接執(zhí)行步驟309;如果在執(zhí)行步驟310時(shí)發(fā)生中斷,則在中斷恢復(fù)后, 直接執(zhí)行步驟310。可見,采用上述處理方式后,避免了由于意外中斷所造成 的數(shù)據(jù)丟失,從而使得繳費(fèi)操作可以在中斷恢復(fù)后繼續(xù)進(jìn)行,維護(hù)了運(yùn)營商的 利益。
另外,本發(fā)明所述方案中還提供了操作模式選擇機(jī)制,即支持智能卡對完 整性操作和原子性操作兩種模式的選擇,也就是說,支持對數(shù)據(jù)回滾和操作中 斷后的繼續(xù)執(zhí)行兩種模式的選擇。當(dāng)然,如果還有其它操作模式,同樣可納入 選擇范圍。通常,對于實(shí)時(shí)性要求不高的事務(wù),可選擇原子性操作,而對于實(shí) 時(shí)性要求較高的事務(wù),則可選擇完整性操作。具體選擇方式可以是智能卡接 收來自終端的通知指令,根據(jù)該通知指令來確定執(zhí)行當(dāng)前事務(wù)所需采用的搡作 模式,或者,智能卡也可根據(jù)自身預(yù)先保存(人工進(jìn)行設(shè)置)的不同事務(wù)分別 對應(yīng)的操作模式信息,來確定執(zhí)行當(dāng)前事務(wù)所需采用的操作模式。其中,對于 前一種方式,所述通知指令通常是指APDU指令,在開始某一事務(wù)時(shí),終端可 利用向智能卡發(fā)送的首個(gè)APUD指令,比如圖2所示步驟201中的APDU指令 和圖3所示步驟302中的APDU1指令,通過在其中設(shè)置的一個(gè)操作模式標(biāo)志 位,來將該事務(wù)所需采用的操作模式通知給智能卡。
再有,本發(fā)明所述方案中還提供了一種操作恢復(fù)保護(hù)機(jī)制,即為了防止惡 意攻擊,保證數(shù)據(jù)操作的安全性,預(yù)先設(shè)置一個(gè)最大中斷次數(shù)閾值,這樣,當(dāng) 某一事務(wù)被中斷的次數(shù)超過該最大中斷次數(shù)閾值時(shí),則鎖定該事務(wù)對應(yīng)的應(yīng)用; 如果需要繼續(xù)該事務(wù),則必須通過身份認(rèn)證將該應(yīng)用解鎖,然后才能繼續(xù)之后 的處理流程。
圖4為本發(fā)明實(shí)施例中的操作恢復(fù)保護(hù)機(jī)制的實(shí)現(xiàn)流程圖。如圖4所示, 包括以下步驟
步驟401:中斷恢復(fù),查看統(tǒng)計(jì)出的事務(wù)被中斷次數(shù)。
在智能卡執(zhí)行某一事務(wù)的過程中,當(dāng)中斷恢復(fù)后,繼續(xù)執(zhí)行后續(xù)操作之前, 首先查看已經(jīng)統(tǒng)計(jì)出的事務(wù)被中斷的次數(shù)。在實(shí)際應(yīng)用中,可通過智能卡中的 計(jì)數(shù)器來實(shí)現(xiàn)統(tǒng)計(jì)事務(wù)被中斷次數(shù)這一功能。
步驟402:判斷被中斷次數(shù)是否大于預(yù)先設(shè)定的最大中斷次數(shù)閾值,如果 是,則執(zhí)行步驟403;否則,執(zhí)行步驟405。 步驟403:進(jìn)行非對稱加密認(rèn)證。
即由智能卡對與其進(jìn)行信息交互的終端進(jìn)行非對稱加密認(rèn)證。當(dāng)然,也可 以采用其它的認(rèn)證方式,此處僅為舉例說明。如何認(rèn)證為現(xiàn)有技術(shù),不再贅述。
步驟404:判斷認(rèn)證是否通過,如果是,則執(zhí)行步驟405;否則,返回執(zhí)行 步驟403。
步驟405:將統(tǒng)計(jì)出的被中斷次數(shù)加一。 步驟406:按照備份數(shù)據(jù)和更新標(biāo)志位繼續(xù)之后的操作。 步驟407:判斷是否再次發(fā)生中斷,如果是,則返回執(zhí)行步驟401;否則, 執(zhí)行步驟408。
步驟408:繼續(xù)執(zhí)行后續(xù)操作,并在操作結(jié)束后,將統(tǒng)計(jì)的被中斷次數(shù)歸 零,結(jié)束流程。
基于上述方法,圖5為本發(fā)明裝置(即智能卡)實(shí)施例的組成結(jié)構(gòu)示意圖。 如圖5所示,包括
備份單元51,用于在執(zhí)行一事務(wù)的過程中,每執(zhí)行完一個(gè)關(guān)鍵節(jié)點(diǎn),則將 該關(guān)鍵節(jié)點(diǎn)對應(yīng)的執(zhí)行結(jié)果進(jìn)行備份,并通過對預(yù)先設(shè)定的更新標(biāo)志位進(jìn)行設(shè) 置,來記錄該事務(wù)的執(zhí)行進(jìn)程;所述關(guān)鍵節(jié)點(diǎn)為從完成該事務(wù)所需的所有操作 中預(yù)先選定的 一個(gè)以上重要操作;
執(zhí)行單元52,用于當(dāng)執(zhí)行事務(wù)的過程中出現(xiàn)的中斷恢復(fù)后,通過查詢更新 標(biāo)志位,確定出下一步將要執(zhí)行的操作,并依據(jù)備份的信息執(zhí)行該確定出的操 作。
此外,圖5所示智能卡中還可進(jìn)一步包括
模式選擇單元53,用于接收來自終端的通知指令,根據(jù)該通知指令確定執(zhí) 行當(dāng)前事務(wù)所需采用的操作模式,如果確定出的操作模式為完整性操作,則通 知備份單元51執(zhí)行自身功能;或者,用于根據(jù)預(yù)先保存的不同事務(wù)分別對應(yīng)的 操作模式信息,確定執(zhí)行當(dāng)前事務(wù)所需采用的操作模式,如果確定出的操作模
式為完整性操作,則通知備份單元51執(zhí)行自身功能。
該模式選擇單元53還可進(jìn)一步用于,如果確定出的操作模式為原子性操
作,則在執(zhí)行當(dāng)前事務(wù)的過程中,當(dāng)發(fā)生中斷后,將該事務(wù)的狀態(tài)將回滾到該 事務(wù)開始執(zhí)行之前的狀態(tài)。
上述事務(wù)可以是指智能卡內(nèi)部的事務(wù),也可以是指需要智能卡與終端之間 進(jìn)行信息交互的事務(wù)。
其中,執(zhí)行單元52中可具體包括確定子單元521以及執(zhí)行子單元522;
確定子單元521,用于當(dāng)執(zhí)行事務(wù)的過程中出現(xiàn)的中斷恢復(fù)后,通過查詢 更新標(biāo)志位,確定出下一步將要執(zhí)行的操作;
執(zhí)行子單元522,用于依據(jù)備份的信息執(zhí)行確定出的操作。
此外,該執(zhí)行單元52中還可進(jìn)一步包括
計(jì)數(shù)子單元523,用于統(tǒng)計(jì)當(dāng)前執(zhí)行的事務(wù)被中斷的次數(shù);
判斷子單元524,用于判斷所述被中斷次數(shù)是否已經(jīng)達(dá)到預(yù)先設(shè)定的最大 中斷次數(shù)閾值,如果不是,則通知執(zhí)行子單元522執(zhí)行自身功能;如果是,則 進(jìn)行身份認(rèn)證,并在認(rèn)證通過后,通知執(zhí)行子單元522執(zhí)行自身功能。
圖5所示智能卡實(shí)施例的具體工作流程請參照圖1所示方法實(shí)施例中的相 應(yīng)說明,此處不再贅述。
總之,釆用本發(fā)明的技術(shù)方案,智能卡在執(zhí)行某一事務(wù)的過程中,每執(zhí)行 完一個(gè)關(guān)鍵節(jié)點(diǎn)后,即將該關(guān)鍵節(jié)點(diǎn)對應(yīng)的執(zhí)行結(jié)果進(jìn)行備份,并通過設(shè)置更 新標(biāo)志位來記錄事務(wù)的執(zhí)行進(jìn)程,這樣, 一旦在執(zhí)行該事務(wù)的過程中發(fā)生中斷, 待中斷恢復(fù)后,則可根據(jù)更新標(biāo)志位來確定出下一步將要執(zhí)行的操作,并可根 據(jù)備份的信息執(zhí)行該確定出的操作。與現(xiàn)有原子性操作模式相比,本發(fā)明所提 供的這種操作模式不會(huì)因?yàn)橹袛喽斐蓴?shù)據(jù)丟失,所以能夠滿足實(shí)時(shí)以及非實(shí) 時(shí)等各種業(yè)務(wù)的需求。另外,本發(fā)明所述方案還提供了一種操作模式選擇機(jī)制 以及一種操作恢復(fù)保護(hù)機(jī)制,保證了智能卡操作的靈活性和安全性。
綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的 保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改
進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種智能卡操作方法,其特征在于,該方法包括:A、在執(zhí)行一事務(wù)的過程中,每執(zhí)行完一個(gè)關(guān)鍵節(jié)點(diǎn),則將所述關(guān)鍵節(jié)點(diǎn)對應(yīng)的執(zhí)行結(jié)果進(jìn)行備份,并通過對預(yù)先設(shè)定的更新標(biāo)志位進(jìn)行設(shè)置,來記錄所述事務(wù)的執(zhí)行進(jìn)程;所述關(guān)鍵節(jié)點(diǎn)為從完成所述事務(wù)所需的所有操作中預(yù)先選定的一個(gè)以上重要操作;B、如果在執(zhí)行所述事務(wù)的過程中發(fā)生中斷,則在中斷恢復(fù)后,通過查詢所述更新標(biāo)志位,確定出下一步將要執(zhí)行的操作,并依據(jù)所述備份的信息執(zhí)行所述確定出的操作。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A之前,進(jìn)一步 包括接收來自終端的通知指令,根據(jù)所述通知指令確定執(zhí)行所述事務(wù)所需釆用 的操作模式,如果確定出的操作模式為完整性操作,則執(zhí)行所述步驟A;或者,根據(jù)預(yù)先保存的不同事務(wù)分別對應(yīng)的操作模式信息,確定執(zhí)行所述 事務(wù)所需采用的操作模式,如果確定出的操作模式為完整性操作,則執(zhí)行所述 步驟A。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述通知指令為應(yīng)用協(xié)議數(shù) 據(jù)單元APDU指令;所述根據(jù)通知指令確定執(zhí)行所述事務(wù)所需采用的操作模式 包括讀取所述APDU指令中的操作模式標(biāo)志位中攜帶的操作模式指示信息,根 據(jù)所述操作模式指示信息確定執(zhí)行所述事務(wù)所需采用的操作模式。
4、 根據(jù)權(quán)利要求2所述的方法,其特征在于,如果確定出的操作模式為原 子性操作,則在執(zhí)行所述事務(wù)的過程中,當(dāng)發(fā)生中斷后,將所述事務(wù)的狀態(tài)回 滾到所述事務(wù)開始執(zhí)行之前的狀態(tài)。
5、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述事務(wù)為智能卡內(nèi)部的事 務(wù),或者為需要智能卡與終端之間進(jìn)行信息交互的事務(wù)。
6、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述依據(jù)所述備份的信息執(zhí)行所述確定出的操作之前,進(jìn)一步包括判斷所述事務(wù)被中斷的次數(shù)是否已經(jīng)達(dá)到預(yù)先設(shè)定的最大中斷次數(shù)閾值, 如果不是,則依據(jù)所述備份的信息執(zhí)行所述確定出的操作;如果是,則進(jìn)行身 份認(rèn)證,并在認(rèn)證通過后,依據(jù)所述備份的信息執(zhí)行所述確定出的操作。
7、 一種智能卡,其特征在于,包括備份單元,用于在執(zhí)行一事務(wù)的過程中,每執(zhí)行完一個(gè)關(guān)鍵節(jié)點(diǎn),則將所 述關(guān)鍵節(jié)點(diǎn)對應(yīng)的執(zhí)行結(jié)果進(jìn)行備份,并通過對預(yù)先設(shè)定的更新標(biāo)志位進(jìn)行設(shè) 置,來記錄所述事務(wù)的執(zhí)行進(jìn)程;所述關(guān)鍵節(jié)點(diǎn)為從完成所述事務(wù)所需的所有 操作中預(yù)先選定的 一個(gè)以上重要操作;執(zhí)行單元,用于當(dāng)執(zhí)行所述事務(wù)的過程中出現(xiàn)的中斷恢復(fù)后,通過查詢所 述更新標(biāo)志位,確定出下一步將要執(zhí)行的操作,并依據(jù)所述備份的信息執(zhí)行所 述確定出的操作。
8、 根據(jù)權(quán)利要求7所述的智能卡,其特征在于,所述智能卡中進(jìn)一步包括 模式選擇單元,用于接收來自終端的通知指令,根據(jù)所述通知指令確定執(zhí)行所述事務(wù)所需采用的操作模式,如果確定出的操作模式為完整性操作,則通 知所述備份單元執(zhí)行自身功能;或者,用于根據(jù)預(yù)先保存的不同事務(wù)分別對應(yīng) 的操作模式信息,確定執(zhí)行所述事務(wù)所需采用的操作模式,如果確定出的操作模式為完整性操作,則通知所述備份單元執(zhí)行自身功能。
9、 根據(jù)權(quán)利要求8所述的智能卡,其特征在于,所述模式選擇單元進(jìn)一步 用于,如果確定出的操作模式為原子性操作,則在執(zhí)行所述事務(wù)的過程中,當(dāng) 發(fā)生中斷后,將所述事務(wù)的狀態(tài)回滾到所述事務(wù)開始執(zhí)行之前的狀態(tài)。
10、 根據(jù)權(quán)利要求7所述的智能卡,其特征在于,所述事務(wù)為所述智能卡 內(nèi)部的事務(wù),或者為需要所述智能卡與終端之間進(jìn)行信息交互的事務(wù)。
11、 根據(jù)權(quán)利要求7所述的智能卡,其特征在于,所述執(zhí)行單元包括確 定子單元以及執(zhí)行子單元;所述確定子單元,用于當(dāng)執(zhí)行所述事務(wù)的過程中出現(xiàn)的中斷恢復(fù)后,通過 查詢所述更新標(biāo)志位,確定出下一步將要執(zhí)行的操作;所述執(zhí)行子單元,用于依據(jù)所述備份的信息執(zhí)行所述確定出的操作。
12、根據(jù)權(quán)利要求11所述的智能卡,其特征在于,所述執(zhí)行單元中進(jìn)一步 包括計(jì)數(shù)子單元,用于統(tǒng)計(jì)所述事務(wù)被中斷的次數(shù);判斷子單元,用于判斷所述事務(wù)被中斷的次數(shù)是否已經(jīng)達(dá)到預(yù)先設(shè)定的最 大中斷次數(shù)閾值,如果不是,則通知所述執(zhí)行子單元執(zhí)行自身功能;如果是, 則進(jìn)行身份認(rèn)證,并在認(rèn)證通過后,通知所述執(zhí)行子單元執(zhí)行自身功能。
全文摘要
本發(fā)明公開了一種智能卡操作方法,包括A.在執(zhí)行一事務(wù)的過程中,每執(zhí)行完一個(gè)關(guān)鍵節(jié)點(diǎn),則將該關(guān)鍵節(jié)點(diǎn)對應(yīng)的執(zhí)行結(jié)果進(jìn)行備份,并通過對預(yù)先設(shè)定的更新標(biāo)志位進(jìn)行設(shè)置,來記錄所述事務(wù)的執(zhí)行進(jìn)程;所述關(guān)鍵節(jié)點(diǎn)為從完成所述事務(wù)所需的所有操作中預(yù)先選定的一個(gè)以上重要操作;B.如果在執(zhí)行所述事務(wù)的過程中發(fā)生中斷,則在中斷恢復(fù)后,通過查詢所述更新標(biāo)志位,確定出下一步將要執(zhí)行的操作,并依據(jù)所述備份的信息執(zhí)行所述確定出的操作。本發(fā)明同時(shí)公開了一種智能卡。本發(fā)明所述的智能卡操作方法和智能卡能夠滿足實(shí)時(shí)以及非實(shí)時(shí)等各種業(yè)務(wù)的需求。
文檔編號(hào)G06F9/46GK101382907SQ200810225040
公開日2009年3月11日 申請日期2008年10月24日 優(yōu)先權(quán)日2008年10月24日
發(fā)明者涌 姜, 旭 張, 曹會(huì)揚(yáng), 楊光敏 申請人:普天信息技術(shù)研究院有限公司