專利名稱:一種智能卡及其修改數(shù)據(jù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種智能卡及其修改數(shù)據(jù)方法。
背景技術(shù):
智能卡已廣泛應(yīng)用到電信、交通、金融等社會(huì)各領(lǐng)域。目前比較常見的智能卡芯片有兩種類型,一種是掩膜類型的芯片,一種是FLASH類型的芯片。掩膜類型的芯片使用 EEPROM(Electrically-Erasable Programmable Read-Only Memory,電子抹除式可復(fù)寫只讀存儲(chǔ)器)用來存取文件系統(tǒng)、補(bǔ)丁代碼、及其他一些數(shù)據(jù)的可讀可寫的信息。其中,補(bǔ)丁代碼或是一些不需要改變的數(shù)據(jù),在EEPROM中是不需要改變的,而文件系統(tǒng)是可以改變的。但由于文件系統(tǒng)和補(bǔ)丁代碼都放在同一個(gè)EEPROM中,因此智能卡在寫文件系統(tǒng)的時(shí)候,如果發(fā)生內(nèi)存跳變,或是受到外界攻擊,使本來寫文件系統(tǒng)的地址改變?yōu)閷懷a(bǔ)丁代碼的地址,就會(huì)導(dǎo)致在存補(bǔ)丁代碼的區(qū)域?qū)懥艘恍┛勺兊臄?shù)據(jù),使得補(bǔ)丁代碼不能正常運(yùn)行,從而導(dǎo)致壞卡或其他一些不確定的狀態(tài)。所以,需要給補(bǔ)丁代碼或是一些不需要改變的數(shù)據(jù)一個(gè)只讀屬性,使它們不能隨意改變。FLASH類型的芯片也有類似的問題出現(xiàn),因?yàn)樗写a、文件系統(tǒng)、及其他數(shù)據(jù)都是存放在同一個(gè)FLASH ROM (FLASH Read-Only Memory,閃速存儲(chǔ)器)中,且為統(tǒng)一編址, 因此也需要保護(hù)那些不需要改變的數(shù)據(jù)或代碼。
發(fā)明內(nèi)容
本發(fā)明提供一種智能卡及其修改數(shù)據(jù)方法,用以解決現(xiàn)有技術(shù)中,由于可修改的數(shù)據(jù)與不可修改的數(shù)據(jù)都存儲(chǔ)于智能卡內(nèi)同一可寫存取區(qū)中,在可寫存取區(qū)出現(xiàn)內(nèi)存跳變的情況時(shí),有可能出現(xiàn)將不可修改的數(shù)據(jù)錯(cuò)誤地進(jìn)行了修改的問題。本發(fā)明方法包括—種智能卡修改數(shù)據(jù)方法,包括以下步驟修改所述智能卡內(nèi)可寫存取區(qū)的存儲(chǔ)數(shù)據(jù)之前,確定所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址是否為保護(hù)區(qū)內(nèi)的地址,所述保護(hù)區(qū)為對(duì)所述可寫存取區(qū)中存儲(chǔ)的可修改數(shù)據(jù)和不可修改數(shù)據(jù)進(jìn)行分類編址后,確定的存儲(chǔ)不可修改數(shù)據(jù)的存儲(chǔ)地址集合;如果是,則不對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行修改,否則,對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行修改。一種智能卡,包括修改模塊,用于修改所述智能卡內(nèi)可寫存取區(qū)的存儲(chǔ)數(shù)據(jù)之前,確定所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址是否為保護(hù)區(qū)內(nèi)的地址,所述保護(hù)區(qū)為對(duì)所述可寫存取區(qū)中存儲(chǔ)的可修改數(shù)據(jù)和不可修改數(shù)據(jù)進(jìn)行分類編址后,確定的存儲(chǔ)不可修改數(shù)據(jù)的存儲(chǔ)地址集合;如果是,則不對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行修改,否則,對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行修改。本發(fā)明通過在智能卡對(duì)其可寫存取區(qū)的存儲(chǔ)數(shù)據(jù)進(jìn)行修改之前,先判斷該存儲(chǔ)數(shù)據(jù)是否允許被修改,在確定不允許被修改時(shí),能夠有效地保護(hù)不可修改數(shù)據(jù)不被改動(dòng)。本發(fā)明尤其適用于在智能卡操作系統(tǒng)層次上對(duì)智能卡芯片中的不可修改數(shù)據(jù)進(jìn)行保護(hù)。
圖1為本發(fā)明提供的一種智能卡修改數(shù)據(jù)方法實(shí)施例的流程圖;圖2為本發(fā)明實(shí)施例提供的一種智能卡結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例,對(duì)本發(fā)明智能卡及其修改數(shù)據(jù)方法的具體實(shí)施方式
作進(jìn)一步詳細(xì)描述。智能卡內(nèi)可寫存取區(qū)中存儲(chǔ)的可修改數(shù)據(jù)為可讀可寫的數(shù)據(jù),而不可修改數(shù)據(jù)為只讀數(shù)據(jù),因此在兩種數(shù)據(jù)同時(shí)存儲(chǔ)于同一智能卡的可寫存取區(qū)中時(shí),有可能出現(xiàn)將只讀數(shù)據(jù)錯(cuò)誤的進(jìn)行了修改的問題。一般地,智能卡的可寫存取區(qū)中欲保護(hù)的不可修改數(shù)據(jù)(例如補(bǔ)丁代碼)為預(yù)先確定的,因此,智能卡的操作系統(tǒng)可以采用分類編址的方式對(duì)可寫存取區(qū)中的可修改數(shù)據(jù)和不可修改數(shù)據(jù)進(jìn)行編碼,并且在對(duì)兩種類型的數(shù)據(jù)分類編址后,確定存儲(chǔ)不可修改數(shù)據(jù)的存儲(chǔ)地址的集合為保護(hù)區(qū),即保護(hù)區(qū)內(nèi)的存儲(chǔ)數(shù)據(jù)為不可修改數(shù)據(jù)。為保護(hù)只讀數(shù)據(jù)不被錯(cuò)誤地修改,本發(fā)明提供一種智能卡修改數(shù)據(jù)方法,用于當(dāng)智能卡內(nèi)可寫存取區(qū)存儲(chǔ)了可修改數(shù)據(jù)以及不可修改數(shù)據(jù)時(shí),智能卡內(nèi)嵌的寫函數(shù)在修改所述可寫存取區(qū)內(nèi)的存儲(chǔ)數(shù)據(jù)之前,確定所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址是否為保護(hù)區(qū)內(nèi)的地址,如果是,則不對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行修改,否則,對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行修改。本發(fā)明通過在對(duì)智能卡內(nèi)可寫存取區(qū)的存儲(chǔ)數(shù)據(jù)進(jìn)行修改之前,先判斷該存儲(chǔ)數(shù)據(jù)是否允許被修改,在確定不允許被修改時(shí),不對(duì)不可修改數(shù)據(jù)進(jìn)行改動(dòng)。應(yīng)用本發(fā)明,在可寫存取區(qū)出現(xiàn)內(nèi)存跳變的情況時(shí),也能夠有效地保護(hù)不可修改數(shù)據(jù)不被改動(dòng)??蓪懘嫒^(qū)中不可修改數(shù)據(jù)的存儲(chǔ)地址可以是連續(xù)的或不連續(xù)的,為了容易地確定出欲修改數(shù)據(jù)的存儲(chǔ)地址是否為保護(hù)區(qū)內(nèi)的地址,優(yōu)選的,可將可寫存取區(qū)中連續(xù)存儲(chǔ)不可修改數(shù)據(jù)的存儲(chǔ)地址集合確定為一個(gè)保護(hù)區(qū),即一個(gè)保護(hù)區(qū)中的存儲(chǔ)地址連續(xù)。因此, 可寫存取區(qū)中可以包含一個(gè)或多個(gè)保護(hù)區(qū),并且由于保護(hù)區(qū)內(nèi)的地址為連續(xù)的,優(yōu)選的,通過以下方式判斷所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址是否為保護(hù)區(qū)內(nèi)的地址確定所述可寫存取區(qū)中所有保護(hù)區(qū)的起始地址和結(jié)束地址,判斷所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地介于其中一個(gè)保護(hù)區(qū)的起始地址和結(jié)束地址之間時(shí),確定所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址為保護(hù)區(qū)內(nèi)的地址。可寫存取區(qū)中的不可修改數(shù)據(jù)雖然為只讀性質(zhì)的數(shù)據(jù)(不能被修改),但是卻可以在可寫存取區(qū)中增加新的不可修改數(shù)據(jù),并且在增加了新的不可修改數(shù)據(jù)后,保護(hù)區(qū)的起始地址與結(jié)束地址就會(huì)相應(yīng)的改變。因此,智能卡在使用同一寫函數(shù)對(duì)可寫存取區(qū)進(jìn)行數(shù)據(jù)修改時(shí),寫函數(shù)中所使用的保護(hù)區(qū)起始地址、結(jié)束地址可以為固定不變的存儲(chǔ)地址或者動(dòng)態(tài)變化的存儲(chǔ)地址。其中,起始地址和結(jié)束地址為固定不變的存儲(chǔ)地址是指可寫存取區(qū)中不會(huì)增加新的不可修改數(shù)據(jù),保護(hù)區(qū)的范圍不發(fā)生改變,起始地址和結(jié)束地址固定不變;起始地址和/或結(jié)束地址為動(dòng)態(tài)變化的存儲(chǔ)地址是指可寫存取區(qū)中會(huì)增加新的不可修改數(shù)據(jù),保護(hù)區(qū)的范圍會(huì)擴(kuò)大,起始地址和/或結(jié)束地址是動(dòng)態(tài)可變的。當(dāng)保護(hù)區(qū)的范圍不發(fā)生改變,起始地址和結(jié)束地址固定不變時(shí),寫函數(shù)中可直接定義起始地址和結(jié)束地址為常量,并利用所述常量判斷欲修改數(shù)據(jù)的存儲(chǔ)地址是否介于二者之間。當(dāng)保護(hù)區(qū)的范圍會(huì)發(fā)生擴(kuò)大,起始地址和/或結(jié)束地址為動(dòng)態(tài)可變的存儲(chǔ)地址時(shí),寫函數(shù)需要獲取變化的起始地址、結(jié)束地址,并利用所述變化的起始地址、結(jié)束地址判斷欲修改數(shù)據(jù)的存儲(chǔ)地址是否介于二者之間。由于對(duì)不可修改數(shù)據(jù)的編址及對(duì)不可修改數(shù)據(jù)的增加都是由智能卡的操作系統(tǒng)控制的,因此智能卡的操作系統(tǒng)能夠清楚的掌握可寫存取區(qū)中保護(hù)區(qū)的范圍信息;優(yōu)選的, 在可寫存取區(qū)中分配預(yù)先設(shè)定的存儲(chǔ)單元來存儲(chǔ)保護(hù)區(qū)的起始地址和結(jié)束地址,確定所述可寫存取區(qū)中所有保護(hù)區(qū)的起始地址和結(jié)束地址,具體為從所述可寫存取區(qū)的設(shè)定存儲(chǔ)單元獲取所述起始地址和結(jié)束地址;即當(dāng)保護(hù)區(qū)的起始地址和結(jié)束地址固定不變時(shí),可直接在寫函數(shù)中定義為常量,也可以利用可寫存取區(qū)中的設(shè)定存儲(chǔ)單元存取固定不變的起始地址和結(jié)束地址,優(yōu)選的,所述起始地址和結(jié)束地址為固定不變的存儲(chǔ)地址時(shí),在寫函數(shù)中定義起始地址和結(jié)束地址為常量。當(dāng)保護(hù)區(qū)的起始地址和結(jié)束地址動(dòng)態(tài)可變時(shí),寫函數(shù)可以從智能卡外部獲取變化的起始地址、結(jié)束地址,也可以從可寫存取區(qū)中用于存儲(chǔ)保護(hù)區(qū)起始地址和結(jié)束地址的設(shè)定存儲(chǔ)單元獲取變化的保護(hù)區(qū)起始地址、結(jié)束地址,優(yōu)選的,所述起始地址和結(jié)束地址為動(dòng)態(tài)可變的存儲(chǔ)地址時(shí),寫函數(shù)從可寫存取區(qū)中的設(shè)定存儲(chǔ)單元獲取變化的起始地址、結(jié)束地址。在向可寫存取區(qū)中增加了不可修改數(shù)據(jù)后,由智能卡的操作系統(tǒng)修改所述設(shè)定存儲(chǔ)空間中存儲(chǔ)的保護(hù)區(qū)的起始地址和結(jié)束地址。本發(fā)明適用于保護(hù)智能卡中各種類型的不可修改數(shù)據(jù)不被改動(dòng),優(yōu)選的,所述不可修改數(shù)據(jù)為所述智能卡的補(bǔ)丁代碼,所述可修改數(shù)據(jù)為所述智能卡的文件系統(tǒng)數(shù)據(jù)。本發(fā)明提供一種智能卡修改數(shù)據(jù)方法的實(shí)施例,如圖1所示,包括以下步驟步驟Si,智能卡的操作系統(tǒng)確定當(dāng)前智能卡芯片可寫存取區(qū)中連續(xù)存儲(chǔ)的補(bǔ)丁代碼及其他一些不需要改變的存儲(chǔ)數(shù)據(jù),由這些存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址集合形成保護(hù)區(qū),并確定可寫存取區(qū)中所有保護(hù)區(qū)的起始地址及結(jié)束地址,存儲(chǔ)到該可寫存取區(qū)中預(yù)先設(shè)定的存儲(chǔ)空間內(nèi)。起始地址和結(jié)束地址為智能卡中同一可寫存取區(qū)中的地址,智能卡芯片可以為電子抹除式可復(fù)寫只讀存儲(chǔ)器EEPR0M,或者可擦出可編程只讀存儲(chǔ)器EPROM或者閃速存儲(chǔ)器 FLASH ROM。步驟S2,智能卡使用寫函數(shù)對(duì)所述可寫存取區(qū)中的存儲(chǔ)數(shù)據(jù)進(jìn)行修改時(shí),從該可寫存取區(qū)的設(shè)定存儲(chǔ)空間獲取所有保護(hù)區(qū)的起始地址和結(jié)束地址,并執(zhí)行以下步驟。步驟S3,確定欲修改的存儲(chǔ)數(shù)據(jù)是否為不可修改數(shù)據(jù),采用以下方式判斷所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址是否介于其中一個(gè)保護(hù)區(qū)的起始地址和結(jié)束地址之間,如果是,則確定該存儲(chǔ)數(shù)據(jù)為不可修改數(shù)據(jù),執(zhí)行步驟S4,否則,確定該存儲(chǔ)數(shù)據(jù)為可修改數(shù)據(jù),執(zhí)行步馬聚S5 ο步驟S4,停止所述寫函數(shù),并告警通知智能卡的操作系統(tǒng)。步驟S5,執(zhí)行寫函數(shù)對(duì)所述存儲(chǔ)數(shù)據(jù)的修改。本發(fā)明實(shí)施例還提供一種智能卡,如圖2所示,包括修改模塊,用于修改所述智能卡內(nèi)可寫存取區(qū)的存儲(chǔ)數(shù)據(jù)之前,確定所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址是否為保護(hù)區(qū)內(nèi)的地址,所述保護(hù)區(qū)為對(duì)所述可寫存取區(qū)中存儲(chǔ)的可修改數(shù)據(jù)和不可修改數(shù)據(jù)進(jìn)行分類編址后,確定的存儲(chǔ)不可修改數(shù)據(jù)的存儲(chǔ)地址集合;如果是,則不對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行修改,否則,對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行修改。所述智能卡的具體實(shí)現(xiàn)功能參見上述智能卡修改數(shù)據(jù)方法的具體實(shí)現(xiàn)過程,在此不再贅述。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種智能卡修改數(shù)據(jù)方法,其特征在于,包括修改所述智能卡內(nèi)可寫存取區(qū)的存儲(chǔ)數(shù)據(jù)之前,確定所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址是否為保護(hù)區(qū)內(nèi)的地址,所述保護(hù)區(qū)為對(duì)所述可寫存取區(qū)中存儲(chǔ)的可修改數(shù)據(jù)和不可修改數(shù)據(jù)進(jìn)行分類編址后,確定的存儲(chǔ)不可修改數(shù)據(jù)的存儲(chǔ)地址集合;如果是,則不對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行修改,否則,對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行修改。
2.如權(quán)利要求1所述的方法,其特征在于,所述保護(hù)區(qū)中的存儲(chǔ)地址連續(xù),確定所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址是否為保護(hù)區(qū)內(nèi)的地址,具體為確定所述可寫存取區(qū)中所有保護(hù)區(qū)的起始地址和結(jié)束地址,判斷所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址介于其中一個(gè)保護(hù)區(qū)的起始地址和結(jié)束地址之間時(shí),確定所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址為保護(hù)區(qū)內(nèi)的地址。
3.如權(quán)利要求2所述的方法,其特征在于,確定所述可寫存取區(qū)中所有保護(hù)區(qū)的起始地址和結(jié)束地址,具體為從所述可寫存取區(qū)的設(shè)定存儲(chǔ)單元獲取所述起始地址和結(jié)束地址。
4.如權(quán)利要求3所述的方法,其特征在于,所述起始地址或結(jié)束地址為動(dòng)態(tài)可變的存儲(chǔ)地址。
5.如權(quán)利要求1 4任一所述的方法,其特征在于,所述可修改數(shù)據(jù)為所述智能卡的文件系統(tǒng)數(shù)據(jù),所述不可修改數(shù)據(jù)為所述智能卡的補(bǔ)丁代碼。
6.一種智能卡,其特征在于,包括修改模塊,用于修改所述智能卡內(nèi)可寫存取區(qū)的存儲(chǔ)數(shù)據(jù)之前,確定所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址是否為保護(hù)區(qū)內(nèi)的地址,所述保護(hù)區(qū)為對(duì)所述可寫存取區(qū)中存儲(chǔ)的可修改數(shù)據(jù)和不可修改數(shù)據(jù)進(jìn)行分類編址后,確定的存儲(chǔ)不可修改數(shù)據(jù)的存儲(chǔ)地址集合;如果是,則不對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行修改,否則,對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行修改。
7.如權(quán)利要求6所述的智能卡,其特征在于,所述保護(hù)區(qū)中的存儲(chǔ)地址連續(xù),所述修改模塊確定所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址是否為保護(hù)區(qū)內(nèi)的地址,具體為確定所述可寫存取區(qū)中所有保護(hù)區(qū)的起始地址和結(jié)束地址,判斷所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址介于其中一個(gè)保護(hù)區(qū)的起始地址和結(jié)束地址之間時(shí),確定所述存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址為保護(hù)區(qū)內(nèi)的地址。
8.如權(quán)利要求7所述的智能卡,其特征在于,所述修改模塊確定所述可寫存取區(qū)中所有保護(hù)區(qū)的起始地址和結(jié)束地址,具體為從所述可寫存取區(qū)的設(shè)定存儲(chǔ)單元獲取所述起始地址和結(jié)束地址。
9.如權(quán)利要求8所述的智能卡,其特征在于,所述起始地址或結(jié)束地址為動(dòng)態(tài)可變的存儲(chǔ)地址。
10.如權(quán)利要求6 9任一所述的智能卡,其特征在于,所述可修改數(shù)據(jù)為所述智能卡的文件系統(tǒng)數(shù)據(jù),所述不可修改數(shù)據(jù)為所述智能卡的補(bǔ)丁代碼。
全文摘要
本發(fā)明公開了一種智能卡及其修改數(shù)據(jù)方法,包括以下步驟修改智能卡內(nèi)可寫存取區(qū)的存儲(chǔ)數(shù)據(jù)之前,確定存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址是否為保護(hù)區(qū)內(nèi)的地址,所述保護(hù)區(qū)為對(duì)可寫存取區(qū)進(jìn)行分類編址后,確定的存儲(chǔ)不可修改數(shù)據(jù)的存儲(chǔ)地址集合;如果是,則不對(duì)該存儲(chǔ)數(shù)據(jù)進(jìn)行修改,否則,對(duì)該存儲(chǔ)數(shù)據(jù)進(jìn)行修改。一種智能卡,包括修改判斷模塊,用于修改智能卡內(nèi)可寫存取區(qū)的存儲(chǔ)數(shù)據(jù)之前,確定存儲(chǔ)數(shù)據(jù)的存儲(chǔ)地址是否為保護(hù)區(qū)內(nèi)的地址;如果是,則不對(duì)該存儲(chǔ)數(shù)據(jù)進(jìn)行修改,否則,對(duì)該存儲(chǔ)數(shù)據(jù)進(jìn)行修改。本發(fā)明通過在對(duì)智能卡內(nèi)的存儲(chǔ)數(shù)據(jù)進(jìn)行修改之前,先判斷該存儲(chǔ)數(shù)據(jù)是否允許被修改,在確定不允許被修改時(shí),能夠有效地保護(hù)不可修改數(shù)據(jù)不被改動(dòng)。
文檔編號(hào)G06K19/073GK102339403SQ20111025591
公開日2012年2月1日 申請(qǐng)日期2011年8月31日 優(yōu)先權(quán)日2011年8月31日
發(fā)明者姚成正 申請(qǐng)人:北京握奇數(shù)據(jù)系統(tǒng)有限公司