專利名稱:存儲(chǔ)器中的編碼數(shù)據(jù)的更新管理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對(duì)于存儲(chǔ)器中存儲(chǔ)的編碼數(shù)據(jù)的更新管理。本發(fā)明尤其適用于在標(biāo)記(token)的存儲(chǔ)器中存儲(chǔ)的安全性數(shù)據(jù)的管理。被選擇用來(lái)舉例說明本發(fā)明的示例是智能卡。
本發(fā)明尤其適用于包括WIM(WAP標(biāo)識(shí)模塊)應(yīng)用的便攜式裝置。該WIM應(yīng)用通常包含在智能卡中,當(dāng)被諸如蜂窩電話的數(shù)據(jù)處理裝置請(qǐng)求時(shí),該WIM應(yīng)用使用諸如電子簽名或數(shù)據(jù)加密等的公共密鑰來(lái)執(zhí)行操作。在該WIM應(yīng)用中,根據(jù)標(biāo)準(zhǔn)PKCS#15(PKCS公共密鑰密碼系統(tǒng)標(biāo)準(zhǔn))將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中,該標(biāo)準(zhǔn)PKCS#15是由RSA公司實(shí)驗(yàn)室定義和發(fā)布用以實(shí)現(xiàn)公共密鑰密碼系統(tǒng)的。作為提醒,請(qǐng)注意公共密鑰密碼系統(tǒng)使用一對(duì)密鑰,一個(gè)公共密鑰可以對(duì)每個(gè)人公開,而一個(gè)私鑰必須被保持在安全場(chǎng)所并從不公開。該標(biāo)準(zhǔn)使用面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu),即由類別分類的對(duì)象類的層次結(jié)構(gòu)。
注意到RSA實(shí)驗(yàn)室定義了一組標(biāo)準(zhǔn)PKCS#n(n是標(biāo)準(zhǔn)的標(biāo)識(shí)符;RSA使用一個(gè)整數(shù)來(lái)標(biāo)識(shí)各種PKCS標(biāo)準(zhǔn)),這一組標(biāo)準(zhǔn)被計(jì)劃用來(lái)確保不同種類的計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)互操作性。這些各種標(biāo)準(zhǔn)(PKCS#1,...,PKCS#15)定義了在公共密鑰密碼系統(tǒng)中使用的數(shù)據(jù)類型和算法。具體的,標(biāo)準(zhǔn)PKCS#15涉及在能夠存儲(chǔ)永久數(shù)據(jù)的標(biāo)記中存儲(chǔ)的密碼信息。
參考描述這些各種標(biāo)準(zhǔn)的RSA文獻(xiàn)。可在下面網(wǎng)站 http://www.rsasecurity.com中獲得所述文獻(xiàn)。
背景技術(shù):
通常,密碼系統(tǒng)使用私鑰和公鑰,該私鑰僅由用戶訪問,該公鑰在那些希望與該用戶通信的人請(qǐng)求以使用時(shí)可以被發(fā)布或分布。希望與用戶通信的人將首先獲得認(rèn)證,所述認(rèn)證可以是從保存用戶的公共密鑰的認(rèn)證機(jī)構(gòu)獲得。
有關(guān)密鑰和認(rèn)證的數(shù)據(jù)由目錄和文件的樹結(jié)構(gòu)來(lái)表示。在該結(jié)構(gòu)中通常發(fā)現(xiàn)兩種文件類型 -包含文件控制信息的DF類型文件(以及指向EF文件或其他文件的指針), -和EF(基本文件)類型文件。
在該應(yīng)用中,將不詳述在所述卡文件結(jié)構(gòu)的每一層定義和用于對(duì)文件作用的功能組的訪問條件。
更確切地說,格式PKCS#15定義了附加到根目錄的四種對(duì)象類。這些類是 -密鑰類, -認(rèn)證類, -授權(quán)類, -和數(shù)據(jù)類。
這些類本身包括子類。例如,“密鑰”類包括三個(gè)類稱為 -私鑰類 -秘密密鑰類 -公共密鑰類 屬于一個(gè)類的每個(gè)對(duì)象包括屬性。因此樹通常包括幾個(gè)遍及該樹分布的對(duì)象。
根據(jù)由ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))發(fā)布的標(biāo)準(zhǔn)ASN.1(ASN.1抽象語(yǔ)法表示法)ISO/IEC 8824來(lái)表示這些對(duì)象和目錄。該標(biāo)準(zhǔn)規(guī)定了用來(lái)描述復(fù)雜數(shù)據(jù)對(duì)象的語(yǔ)法。
然后根據(jù)在相同標(biāo)準(zhǔn)ASN.1中定義的判別(Distinguished)編碼規(guī)則(DER)來(lái)編碼這些對(duì)象。這些編碼規(guī)則定義對(duì)象的編碼為字節(jié)序列。由于標(biāo)準(zhǔn)ASN.1不是本發(fā)明的主題,因此不必描述該標(biāo)準(zhǔn)。
一旦執(zhí)行了編碼,則對(duì)于卡的外部應(yīng)用,例如卡讀出器,可以從目錄PKCS#15(根目錄)讀取存儲(chǔ)在卡上的編碼數(shù)據(jù),并且從上述的樹結(jié)構(gòu)中發(fā)現(xiàn)如何使用存儲(chǔ)在卡上的密鑰、認(rèn)證和應(yīng)用。
在卡個(gè)性化期間通常執(zhí)行編碼。在個(gè)性化之后,可能必須更新一些樹狀屬性。這種更新非常復(fù)雜。從讀出器的更新實(shí)際上包括兩個(gè)主步驟 -首先,必須解碼所有編碼數(shù)據(jù), -其次,一旦已經(jīng)執(zhí)行了更新,則必須再次編碼該數(shù)據(jù)。
無(wú)論何時(shí)必須更新對(duì)象的至少一個(gè)屬性時(shí),都必須重復(fù)這兩個(gè)步驟。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是簡(jiǎn)化用于更新卡上的編碼數(shù)據(jù)的過程。
因此,所述卡包括在存儲(chǔ)器中的能夠引用存儲(chǔ)器中編碼數(shù)據(jù)的全部或一些屬性的特定引用對(duì)象。根據(jù)本發(fā)明,更新包括下列步驟 -從所述引用對(duì)象提取用于定位由該屬性占用的存儲(chǔ)器塊所需的信息, -更新該塊,用新的先前編碼的數(shù)據(jù)來(lái)替換該塊。
與先前的方法不同,所述方法不再需要對(duì)所有的編碼數(shù)據(jù)進(jìn)行解碼,然后在更新之后對(duì)所有該數(shù)據(jù)重新編碼?,F(xiàn)在,通過使用引用對(duì)象,能夠僅更新一些編碼數(shù)據(jù)。為了定位必須更新的編碼數(shù)據(jù),從所述引用對(duì)象提取位置信息?,F(xiàn)在新的數(shù)據(jù)被簡(jiǎn)單編碼并代替先前數(shù)據(jù)而被存儲(chǔ)。更新過程被相當(dāng)?shù)睾?jiǎn)化了。
當(dāng)閱讀下面作為示例給出的描述并參考附圖時(shí),將更容易理解本發(fā)明。
圖1是可應(yīng)用本發(fā)明的計(jì)算機(jī)系統(tǒng)的視圖。
圖2是卡文件樹結(jié)構(gòu)的示例的示意圖。
圖3是存儲(chǔ)器中的數(shù)據(jù)組織的示意圖。
圖4示出了引用對(duì)象的實(shí)現(xiàn)示例。
圖5是圖解說明實(shí)現(xiàn)示例的不同步驟的算法。
具體實(shí)施例方式 為了簡(jiǎn)化描述,附圖中示出的相應(yīng)元件具有相同的附圖標(biāo)記。
圖1是可實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)系統(tǒng)的簡(jiǎn)化圖。該系統(tǒng)包括智能卡CAR和智能卡讀出器RDR。該讀出器可合并在諸如蜂窩電話、電子助理等的計(jì)算機(jī)中。注意到計(jì)算機(jī)是一種能夠進(jìn)行數(shù)據(jù)處理的可編程機(jī)器。
在本發(fā)明實(shí)現(xiàn)的示例中,將智能卡讀出器合并在蜂窩電話中。
注意,智能卡包括電子模塊(未示出)。該模塊包括微控制器和用于與外部進(jìn)行通信的接觸點(diǎn)。微控制器通常包括 -用于執(zhí)行命令的微處理器, -非易失性存儲(chǔ)器ROM(只讀存儲(chǔ)器),它的內(nèi)容在工廠就被烙上了,因此不能修改。從而在ROM中可以寫入加密算法、操作系統(tǒng)、應(yīng)用程序編程接口(API)等等; -非易失性存儲(chǔ)器,例如EEPROM(電可擦除可編程只讀存儲(chǔ)器)。該存儲(chǔ)器通常用于存儲(chǔ)特定于每個(gè)卡的數(shù)據(jù),例如卡持有人身份、對(duì)服務(wù)的訪問權(quán)利、卡應(yīng)用程序的文件系統(tǒng)等。
-易失性存儲(chǔ)器RAM,執(zhí)行卡命令的工作空間, -安全性單元,考慮到電源電壓、時(shí)鐘速度等, -連接所有組件的數(shù)據(jù)總線, -輸入-輸出總線BUS,在本發(fā)明實(shí)現(xiàn)的示例中,用于與讀出器RDR通信。
所述卡在存儲(chǔ)器中存儲(chǔ)各種信息項(xiàng)。在該存儲(chǔ)器中存儲(chǔ)的應(yīng)用WIM當(dāng)被蜂窩電話請(qǐng)求時(shí)執(zhí)行操作。例如,當(dāng)蜂窩電話要求簽名時(shí),它將命令發(fā)送至應(yīng)用WIM,指示應(yīng)用WIM產(chǎn)生簽名并且將所請(qǐng)求的簽名返回到電話。注意,被用來(lái)產(chǎn)生簽名的私鑰從未被公開。
該申請(qǐng)WIM通常使用卡中存儲(chǔ)的幾個(gè)私鑰。當(dāng)電話從應(yīng)用請(qǐng)求簽名時(shí),它必須因此指示將被選擇用以密碼操作的密鑰。電話首先讀出從根PKCS#15直至與私鑰關(guān)聯(lián)的節(jié)點(diǎn)的樹來(lái)發(fā)現(xiàn)可在應(yīng)用WIM中應(yīng)用的私鑰的數(shù)目和每個(gè)私鑰的標(biāo)識(shí)符。
該數(shù)據(jù)在存儲(chǔ)器中存儲(chǔ)為樹結(jié)構(gòu)。圖2是圖解說明這種結(jié)構(gòu)的圖。在示例中,該樹在它的節(jié)點(diǎn)中包括類型DF和EF(基本文件)的文件。DF文件稱作PKCS#15并代表樹根目錄。文件PKCS#15包括子節(jié)點(diǎn),包括稱作EF(ODF)的節(jié)點(diǎn),該EF(ODF)節(jié)點(diǎn)是包含指向其他基本文件的指針的基本文件,尤其指向下列文件的指針 -稱作EF(PkKDF)的基本文件,包含有關(guān)應(yīng)用WIM中的私鑰的完整信息, -稱作EF(PuKDF)的基本文件,專用于公共密鑰, -稱作EF(CDF)的基本文件,專用于認(rèn)證, -等等。
每個(gè)文件EF(PkKDF)、EF(PuKDF)和EF(CDF)通常包含專門類的對(duì)象目錄PKCS#15。文件EF(ODF)的內(nèi)容符合ASN.1語(yǔ)法。
可以如下將對(duì)應(yīng)于私鑰的對(duì)象寫入基本文件EF(PkKDF)中 value PKCS15PrivateKey::=privateRSAKey<!-- SIPO <DP n="4"> --><dp n="d4"/>{commonObjectAttributes{lable“AUT-KEY”,flags{private},authld‘01’H},classAttributes{iD‘6754C890FD57453289AB9076E64245BC6D709FE7’H,usage{encrypt,decrypt,sign,verify},keyReference 1},typeAttributes{value indirectpath{path‘0012’H},modulusLength 1024}} 在讀出該文件時(shí),我們看到每個(gè)對(duì)象包括幾個(gè)屬性。該文件包括下列屬性 -“Lable”屬性,值為AUT-KEY。
-“Flag”屬性,值為{private}。值{private}表示這個(gè)屬性受保護(hù)于未授權(quán)訪問。在集成電路卡上,對(duì)所謂的私有對(duì)象的訪問(讀、寫、使用等)由授權(quán)對(duì)象定義。訪問條件可以是為用戶所知的PIN代碼的輸入。
-屬性“Authld”,包括值“01”H,指示保護(hù)該密鑰的使用的PIN代碼的標(biāo)識(shí)符。
-屬性“ClassAttibute.iD”是密鑰標(biāo)識(shí)符。在示例中,它是一個(gè)二進(jìn)制值,是通過諸如公共密鑰的SHA-1函數(shù)的密碼哈希函數(shù)獲得的值。有關(guān)該函數(shù)的進(jìn)一步詳細(xì)資料請(qǐng)參考標(biāo)準(zhǔn)FIPS 180-1。哈希函數(shù)在該應(yīng)用中不是必要的。
-屬性“Usage”,具有四個(gè)值{加密、解密、簽字、驗(yàn)證},表示該密鑰僅用于加密、解密、文檔簽字和簽字驗(yàn)證。
-提供有關(guān)密鑰訪問路徑的信息的屬性。在示例中,長(zhǎng)度為1024字節(jié)的該密鑰是經(jīng)由訪問路徑“0012”H訪問的。
在本發(fā)明實(shí)現(xiàn)的示例中,該文件是在智能卡個(gè)性化階段期間創(chuàng)建的。
當(dāng)已經(jīng)寫入所有文件時(shí),根據(jù)DER標(biāo)準(zhǔn)來(lái)編碼數(shù)據(jù)。在編碼之后,將結(jié)果存儲(chǔ)在存儲(chǔ)器中。
如在介紹中看出,問題是一旦已經(jīng)執(zhí)行了編碼,在計(jì)算時(shí)間和更新算法的困難級(jí)別方面,更新一個(gè)或多個(gè)屬性是非常昂貴的。
根據(jù)本發(fā)明,創(chuàng)建了引用對(duì)象,所述引用對(duì)象的屬性值提供有關(guān)對(duì)存儲(chǔ)器中所有或一些對(duì)象屬性PKCS#15的引用的信息。隨后這些引用對(duì)象將被在裝置(在該示例中為智能卡)或在卡讀出器中運(yùn)行的程序使用。在本發(fā)明實(shí)現(xiàn)的示例中,在智能卡個(gè)性化階段期間創(chuàng)建該引用對(duì)象。
圖3是編碼后在文件EF(PrKDF)中的數(shù)據(jù)組織的示意和概略圖。通常,存儲(chǔ)器中所有的數(shù)據(jù)項(xiàng)是鏈接的(concatenated),即,一個(gè)接著一個(gè)存儲(chǔ)。在該文件中,每個(gè)屬性的長(zhǎng)度為L(zhǎng),即字節(jié)的數(shù)量。也使用計(jì)數(shù)器OFF來(lái)確定文件EF中的每個(gè)屬性的位置,所述計(jì)數(shù)器OFF以字節(jié)數(shù)量表示文件EF(PrKDF)的開始和屬性的第一字節(jié)之間的偏移。
例如,在該文件EF(PrKDF)中,第一屬性ATT1的長(zhǎng)度為L(zhǎng)12字節(jié)。該屬性是文件EF(PrKDF)中所引用的第一屬性;因此它的計(jì)數(shù)器OFF1等于0。下一個(gè)屬性ATT2的長(zhǎng)度為L(zhǎng)23字節(jié)并且其計(jì)數(shù)器OFF2等于L12。類似地,ATT3的長(zhǎng)度為L(zhǎng)34字節(jié)并且其計(jì)數(shù)器為L(zhǎng)12+L23,等等。
能夠以幾種方式做出引用。在本發(fā)明實(shí)現(xiàn)的示例中,我們已經(jīng)選擇使用下列屬性 -對(duì)象類型屬性(例如privateRSAKey), -用于指定該對(duì)象類型所涉及的實(shí)例(instance)的屬性, -用于指定屬性名稱的屬性, -用于在文件(例如,EF(PrKDF))中定位與該屬性相關(guān)的數(shù)據(jù)塊的計(jì)數(shù)器OFF屬性, -用于表示所涉及的屬性的長(zhǎng)度的長(zhǎng)度屬性。
明顯地,存在不同的方式來(lái)定位文件中的數(shù)據(jù)。例如,除了“Counter”和“Length”屬性,可以使用由該屬性占用的數(shù)據(jù)塊的開始和結(jié)束地址。
圖4是引用對(duì)象的示例。在該圖中,屬性表示為一個(gè)表。
在該表中存儲(chǔ)了上述五個(gè)屬性。在本發(fā)明實(shí)現(xiàn)的示例中,我們希望更新在如上定義的文件EF(PrKDF)中存儲(chǔ)的屬性Lable和ClassAttributes.iD。我們假設(shè)將被修改的對(duì)象是文件EF(PrKDF)中以類型“privateRSAKey”存儲(chǔ)的第一實(shí)例。
明顯地,樹PKCS#15可以存儲(chǔ)相同類型的其他實(shí)例和包括具有屬性的對(duì)象的其他文件。本發(fā)明的原理也適用于所有這些實(shí)例和所有這些文件。
第一行涉及屬性ClassAttributes.iD。對(duì)于該屬性, -表中的第一列標(biāo)識(shí)對(duì)象類型。在示例中,對(duì)象類型是“privateRSAKey”。
-第二列指示所涉及的實(shí)例是類型“privateRSAKey”的第一實(shí)例。明顯地,如果在樹中存在多于一個(gè)的該類型的實(shí)例,才需要這一列。
-第三列指示它的名稱“Lable”。
-第四列指示存儲(chǔ)屬性ClassAttributes.iD的涉及EF(PrKDF)的文件。
-第五列給出了在該示例中為15字節(jié)的計(jì)數(shù)器。
-第六屬性給出了按字節(jié)的屬性長(zhǎng)度。在該示例中,這一屬性被設(shè)定為20個(gè)字節(jié)。
在圖解說明的示例中,為了安全起見,這個(gè)表必須寫保護(hù)。最好是,獨(dú)立于將被更新的屬性的值的長(zhǎng)度來(lái)設(shè)定屬性計(jì)數(shù)器和長(zhǎng)度。換句話說,對(duì)于表中所引用的每個(gè)屬性,設(shè)定不能修改的特定長(zhǎng)度。該特定長(zhǎng)度包括足夠多的字節(jié)來(lái)存儲(chǔ)變化長(zhǎng)度的屬性。
圖5是圖解說明應(yīng)用到實(shí)現(xiàn)的示例的方法的主要步驟的算法。假設(shè)更新涉及類型privateRSAKey的文件EP(PrKDF)中的屬性“Label”,并且該屬性的新值是“AUT-KEY2”。
步驟如下 步驟1 第一步驟ET1包括獲得將要在文件EF(PrKDF)中更新的新的值。
步驟2 第二步驟ET2包括使用蜂窩電話中包含的命令將屬性“Lable”的新的值發(fā)送至所述卡用以更新。為了標(biāo)識(shí)表中的屬性,由于它可能同時(shí)在樹中的幾個(gè)文件中,所以命令也包括例如屬性ClassAttributes.iD和有關(guān)“privateRSAkey”的實(shí)例。蜂窩電話中存儲(chǔ)的計(jì)算機(jī)程序?qū)⒏旅畎l(fā)送至所述卡。
步驟3 在第三步驟ET3期間,卡接收和處理命令。當(dāng)接收從蜂窩電話發(fā)送的更新命令時(shí),激活存儲(chǔ)在卡中的計(jì)算機(jī)程序。隨后該程序指向引用對(duì)象來(lái)定位存儲(chǔ)器中的屬性“Lable”。
步驟4 在第四步驟ETR期間,引用對(duì)象將110提供給計(jì)數(shù)器和將20提供給長(zhǎng)度。
步驟5 第五步驟ET5包括編碼該新值“AUT-KEY2”并將其寫入所指示的位置。
其他示例可以是在智能卡中產(chǎn)生新的公共密鑰對(duì)。在我們的示例中,公共密鑰的哈希(hash)用作對(duì)象PKCS#15中的密鑰標(biāo)識(shí)符。在產(chǎn)生密鑰對(duì)之后,相應(yīng)的對(duì)象PKCS#15必須被公共密鑰的新的哈希值更新。由于公共密鑰的哈希值具有固定長(zhǎng)度,因此在卡中存儲(chǔ)的產(chǎn)生新的公共密鑰對(duì)的應(yīng)用程序只需要在對(duì)象PKCS#15中找到要被替換的哈希公共密鑰的所有實(shí)例;應(yīng)用程序使用特定引用對(duì)象來(lái)發(fā)現(xiàn)這些實(shí)例。一旦發(fā)現(xiàn)這些實(shí)例,則它們將被新的值更新。在這種情況下,過程與附加步驟ET4bis相同。因此通過對(duì)屬性“ClassAttribute.iD”的值的哈希步驟進(jìn)行步驟4的編碼。
“公共密鑰對(duì)”的同義詞是“非對(duì)稱密鑰對(duì)”。
總的來(lái)說,本發(fā)明涉及一種數(shù)據(jù)處理裝置,尤其涉及一種智能卡,其中在存儲(chǔ)器中存儲(chǔ)編碼數(shù)據(jù),所述編碼數(shù)據(jù)由根據(jù)對(duì)象表示法的目錄和文件的樹結(jié)構(gòu)來(lái)表示,其特征在于所述裝置包括 -特定引用對(duì)象,能夠引用存儲(chǔ)器中的編碼數(shù)據(jù)的全部或一些屬性, -并且其特征在于編碼數(shù)據(jù)的更新是由微控制器來(lái)管理的,所述微控制器被編程用來(lái) -從所述引用對(duì)象提取用于定位由該屬性占用的存儲(chǔ)器塊所需的信息, -以及更新該塊,用新的先前編碼的數(shù)據(jù)來(lái)替換所述塊。
該引用對(duì)象存儲(chǔ)在數(shù)據(jù)處理裝置中的存儲(chǔ)器中。在本發(fā)明實(shí)現(xiàn)的示例中,我們可以看出,由于顯而易見的安全原因該引用對(duì)象是寫保護(hù)的。寫保護(hù)確保了存儲(chǔ)在該存儲(chǔ)器中的引用數(shù)據(jù)將不會(huì)被修改。
被編程用于更新的微控制器既可以位于數(shù)據(jù)處理裝置上也可以位于連接到數(shù)據(jù)處理裝置的外部工具上。
在本發(fā)明實(shí)現(xiàn)的示例中,所述引用對(duì)象包括永久數(shù)據(jù),即,即使在電源故障的情況下數(shù)據(jù)也保持不變。在示例中,即使當(dāng)卡從它的讀出器取出時(shí),即,當(dāng)不再對(duì)所述卡通電時(shí),該對(duì)象也存儲(chǔ)在存儲(chǔ)器中并不會(huì)被改變。
而且,我們已經(jīng)看出所述引用對(duì)象包括屬性。在本發(fā)明實(shí)現(xiàn)的示例中,定義了五個(gè)屬性。我們可以看出三個(gè)屬性足夠用來(lái)標(biāo)識(shí) -文件,例如文件EF(PrKDF), -屬性,例如將要在該文件中更新的屬性ClassAttributes.iD, -以及位置,例如通過所述文件中的該屬性的一對(duì)值(計(jì)數(shù)器,長(zhǎng)度)。
我們獲得一種用于更新在諸如智能卡的數(shù)據(jù)處理裝置的存儲(chǔ)器中存儲(chǔ)的編碼數(shù)據(jù)的方法,其特征在于該方法包括 -初始步驟,用于創(chuàng)建能夠引用存儲(chǔ)器中的編碼數(shù)據(jù)的全部或一些屬性的特定引用對(duì)象, 并且其特征在于更新包括下列步驟 -從所述引用對(duì)象提取用于定位由該屬性占用的存儲(chǔ)器塊所需的信息的步驟, -以及更新該塊的步驟,用新的先前編碼的數(shù)據(jù)來(lái)替換所述塊。
優(yōu)選的,在智能卡個(gè)性化階段期間創(chuàng)建該特定引用對(duì)象。
本發(fā)明也涉及用于更新在諸如智能卡的數(shù)據(jù)處理裝置的存儲(chǔ)器中存儲(chǔ)的編碼數(shù)據(jù)的計(jì)算機(jī)程序,所述程序包括用于執(zhí)行如先前定義的更新步驟的程序代碼指令,使用如先前定義的更新系統(tǒng)的微控制器來(lái)執(zhí)行所述程序。也可以看出,該程序執(zhí)行既可以由位于卡上的微控制器又可以由連接到卡的外部工具來(lái)執(zhí)行的更新。該外部工具例如可以是連接到智能卡的移動(dòng)電話讀出器。
本發(fā)明在計(jì)算時(shí)間、存儲(chǔ)大小方面提供了極大的節(jié)省,并且相當(dāng)?shù)睾?jiǎn)化了更新算法。
附錄 1)根據(jù)標(biāo)準(zhǔn)PKCS#15和ASN1寫文件EF(PrKDF) value PKCS15PrivateKey::=privateRSAKey{commonObjectAttributes{label″AUT-KEY″, flags{private}, authld′01′H }, classAttributes { iD′0011111111111111111111111111111111111100′H, usage{encrypt,decrypt,sign,verify}, keyReference 1 }, typeAttributes { value indirectpath { path′0012′H }, modulusLength 1024 } } value PKCS15PrivateKey::=privateRSAKey { commonObjectAttributes { label″NR-KEY″, fiags{private}, authld′02′H }, classAttributes { iD′0022222222222222222222222222222222222200′H,<!-- SIPO <DP n="10"> --><dp n="d10"/> usage{nonRepudiation}, keyReference 2 }, typeAttributes { value indirectpath { path′0012′H }, modulusLength 1024 } } 在編碼該文件后,我們得到 記錄長(zhǎng)度(十六進(jìn)制)41 303F3010 0C074155 542D4B45 59030207 80040101 301D0414 00111111 11111111 11111111 11111111 11111100 030201E2 020101A1 0C300A30 04040200 12020204 00 記錄長(zhǎng)度(十六進(jìn)制)41 303F300F 0C064E52 2D4B4559 03020780 04010230 1E041400 22222222 22222222 22222222 22222222 22220003 03060040 020102A1 0C300A30 04040200 12020204 00 EF(PrKDF)文件長(zhǎng)度82 II)根據(jù)標(biāo)準(zhǔn)PKCS#15和ASN1寫文件EF(UnusedSpace) value PKCS15UnusedSpace::= { path { path′6200′H, index 0, length 1500 },<!-- SIPO <DP n="11"> --><dp n="d11"/> authld′01′H } 在編碼該文件后,我們得到 記錄長(zhǎng)度(十六進(jìn)制)12 3010300B 04026200 02010080 0205DC04 0101 EF(UnusedSpace)文件長(zhǎng)度12 III)根據(jù)標(biāo)準(zhǔn)PKCS#15和ASN1寫文件EF(DODF) value PKCS15Data::=opaqueDO { commonObjectAttributes { flags{private,modifiable}, authld′01′H }, classAttributes { applicationOID{2 23 43 1 2 1} }, typeAttributes indirectpath { path′5108′H, index 0, length 176 } } value PKCS15Data::=opaqueDO { commonObjectAttrlbutes { flags{private,modifiable}, authld′01′H<!-- SIPO <DP n="12"> --><dp n="d12"/> }, classAttributes { appllcationOID{2 23 43 1 2 2} }, typeAttributes indirectpath { path′5109′H, index 0, length 176 } } 在編碼該文件后,我們得到 記錄長(zhǎng)度(十六進(jìn)制)23 30213007 030206C0 04010130 07060567 2B010201 A10D300B 04025108 02010080 0200B0 記錄長(zhǎng)度(十六進(jìn)制)23 30213007 030206C0 04010130 07060567 2B010202 A10D300B 04025109 02010080 0200B0 EF(DODF)文件長(zhǎng)度46 IV)根據(jù)標(biāo)準(zhǔn)PKCS#15和ASN1寫文件EF(CDF) value PKCS15Certificate::=x509Certificate { commonObjectAttributes { label″User Auth Certificate File″, flags{modifiable} }, classAttributes { iD′0011111111111111111111111111111111111100′H, authority FALSE,<!-- SIPO <DP n="13"> --><dp n="d13"/> requestld { idType 5, idValue PKCS15Identifier′492C1FF42D87C376789444E8EC309C67C97B8D25′H } }, typeAttributes { value indirectpath { path′6001′H, index 0, length 704 } } } value PKCS15Certificate::=x509Certificate { commonObjectAttributes { label″User NR Certificate File″, flags{modifiable} }, classAttributes { iD′0022222222222222222222222222222222222200′H, authority FALSE, requestld { idType 5, idValue PKCS15Identifier′492C1FF42D87C376789444E8EC309C67C97B8D25′H } }, typeAttributes { value indirectpath {<!-- SIPO <DP n="14"> --><dp n="d14"/> path′6002′H, index 0, length 704 } } } value PKCS15Certificate::=x509Certificate { commonObjectAttributes { label″User Auth Certificate URL″, flags{modifiable} }, classAttributes { iD′0011111111111111111111111111111111111100′H, authority FALSE, requestld { idType 5, idValue PKCS15Identifier′492C1FF42D87C376789444E8EC309C67C97B8D25′H } }, typeAttributes { value indirecturl″http://baseAddress/certs?ih=Oi+06/g...″ } } value PKCS15Certificate::=x509Certificate { commonObjectAttributes { label″User NR Certificate URL″, flags{modifiable} }, classAttributes<!-- SIPO <DP n="15"> --><dp n="d15"/> { iD′0022222222222222222222222222222222222200′H, authority FALSE, requestld { idType 5, idValue PKCS15Identifier′492C1FF42D87C376789444E8EC309C67C97B8D25′H } }, typeAttributes { value indirecturl″http://baseAddress/certs?ih=Oi+06/g...″ } } 在編碼該文件后,我們得到 記錄長(zhǎng)度(十六進(jìn)制)68 30663020 0C1A5573 65722041 75746820 43657274 69666963 61746520 46696C65 03020640 30310414 00111111 11111111 11111111 11111111 11111100 30190201 05041449 2C1FF42D 87C37678 9444E8EC 309C67C9 7B8D25A1 0F300D30 0B040260 01020100 800202C0 記錄長(zhǎng)度(十六進(jìn)制)66 3064301E 0C185573 6572204E 52204365 72746966 69636174 65204669 6C650302 06403031 04140022 22222222 22222222 22222222 22222222 22003019 02010504 14492C1F F42D87C3 76789444 E8EC309C 67C97B8D 25A10F30 0D300B04 02600202 01008002 02C0 記錄長(zhǎng)度(十六進(jìn)制)AO 30819D30 1F0C1955 73657220 41757468 20436572 74696669 63617465 2055524C 03020640 30310414 00111111 11111111 11111111 11111111 11111100 30190201 05041449 2C1FF42D 87C37678 9444E8EC 309C67C9 7B8D25A1 47304516 43687474 703A2F2F 62617365 41646472 6573732F 63657274 733F6968 3D4F692B 30362F67 3975574E 66777977 42344343 6D343147 79523845 3D736E3D 4F6F7230 36673D3D 記錄長(zhǎng)度(十六進(jìn)制)9E 30819B30 1D0C1755 73657220 4E522043 65727469 66696361 74652055 524C0302 06403031 04140022 22222222 22222222 22222222 22222222 22003019 02010504 14492C1F F42D87C3 76789444 E8EC309C 67C97B8D 25A14730 45164368 7474703A 2F2F6261 73654164 64726573 732F6365 7274733F 69683D4F 692B3036 2F673975 574E6677 79774234 43436D34 31477952 38453D73 6E3D4F6F 72303741 3D3D EF(CDF)文件長(zhǎng)度20C V)根據(jù)標(biāo)準(zhǔn)PKCS#15和ASN1寫文件EF(ODF) value PKCS15Objects::=privateKeyspath { path′5101′H } value PKCS15Objects::=certificatespath { path′5103′H } value PKCS15Objects::=trustedCertificatespath { path′5104′H } value PKCS15Objects::=usefulCertificatespath { path′5105′H } value PKCS15Objects::=dataObjectspath { path′5106′H } value PKCS15Objects::=authObjectspath {<!-- SIPO <DP n="17"> --><dp n="d17"/> path′5107′H } 記錄長(zhǎng)度(十六進(jìn)制)8 A0063004 04025101 記錄長(zhǎng)度(十六進(jìn)制)8 A4063004 04025103 記錄長(zhǎng)度(十六進(jìn)制)8 A5063004 04025104 記錄長(zhǎng)度(十六進(jìn)制)8 A6063004 04025105 記錄長(zhǎng)度(十六進(jìn)制)8 A7063004 04025106 記錄長(zhǎng)度(十六進(jìn)制)8 A8063004 04025107 EF(ODF)文件長(zhǎng)度30 VI)根據(jù)標(biāo)準(zhǔn)PKCS#15和ASN1寫文件EF(CDF) value PKCS15Certificate::=wtlsCertificate { commonObjectAttributes { iabel″Entrust.net Test WAP CA″, flags{ } }, classAttributes<!-- SIPO <DP n="18"> --><dp n="d18"/> { iD′D4C6D9234AEF75233FB5B5BF4427FCFBC55C40E3′H, authority TRUE, requestld { idType 5, idValue PKCS15ldentifier′D4C6D9234AEF75233FB5B5BF4427FCFBC55C40E3′H } }, typeAttributes { value indirectpath { path′6101′H, index 0, length 431 } } } 在編碼該文件后,我們得到 記錄長(zhǎng)度(十六進(jìn)制)67 A365301C 0C17456E 74727573 742E6E65 74205465 73742057 41502043 41030100 30340414 D4C6D923 4AEF7523 3FB5B5BF 4427FCFB C55C40E3 0101FF30 19020105 0414D4C6 D9234AEF 75233FB5 B5BF4427 FCFBC55C 40E3A10F 300D300B 04026101 02010080 0201AF EF(CDF)文件長(zhǎng)度67 VII)根據(jù)標(biāo)準(zhǔn)PKCS#15和ASN1寫文件EF(AODF) value PKCS15Authentication::=pin { commonObjectAttributes { label″PIN-G″,<!-- SIPO <DP n="19"> --><dp n="d19"/> flags{private,modifiable} }, classAttributes { authld′01′H }, typeAttributes { pinFlags{case-sensitive,local,initialized,needs-padding,disable-allowed}, pinType ascii-numeric, minLength 4, storedLength 8, pinReference 1, padChar′FF′H, path { path′0000′H } } } value PKCS15Authentication::=pin { commonObjectAttributes { label″PIN-NR″, flags{private,modifiable} }, classAttributes { authld′02′H }, typeAttributes { pinFlags{case-sensitive,local,initialized,needs-padding}, pinType ascii-numeric, minLength 4, storedLength 8,<!-- SIPO <DP n="20"> --><dp n="d20"/> pinReference 2, padChar′FF′H, path { path′0100′H } } } 在編碼該文件后,我們得到 記錄長(zhǎng)度(十六進(jìn)制)32 3030300B 0C055049 4E2D4703 0206C030 03040101 A11C301A 030307CC 800A0101 02010402 01088001 010401FF 30040402 0000 記錄長(zhǎng)度(十六進(jìn)制)32 3030300C 0C065049 4E2D4E52 030206C0 30030401 02A11B30 19030202 CC0A0101 02010402 01088001 020401FF 30040402 0100 EF(AODF)文件長(zhǎng)度6權(quán)利要求
1.一種數(shù)據(jù)處理裝置,具體為智能卡,其中在存儲(chǔ)器中存儲(chǔ)了由根據(jù)對(duì)象表示法的目錄和文件的樹結(jié)構(gòu)表示的編碼數(shù)據(jù),其特征在于包括
-特定的引用對(duì)象,能夠引用存儲(chǔ)器中的編碼數(shù)據(jù)的全部或一些屬性,
-并且其特征在于所述編碼數(shù)據(jù)的更新是由微控制器管理的,所述微控制器被編程用來(lái)
-從所述引用對(duì)象提取用于定位由該屬性占用的存儲(chǔ)器塊所需的信息,
-和更新該塊,用新的先前編碼的數(shù)據(jù)來(lái)替換該塊。
2.根據(jù)權(quán)利要求1的裝置,其特征在于在所述數(shù)據(jù)處理裝置中對(duì)所述引用對(duì)象的訪問是寫保護(hù)的。
3.根據(jù)權(quán)利要求1或2的裝置,其特征在于所述引用對(duì)象包括永久數(shù)據(jù)。
4.根據(jù)權(quán)利要求1的裝置,其特征在于所述引用對(duì)象包括用于標(biāo)識(shí)以下內(nèi)容的屬性
-文件(EF(PrKDF)),
-該文件中將被更新的屬性(ClassAttributes.iD),
-和所述文件中該屬性的位置(Counter,Length)。
5.一種用于更新在諸如智能卡的數(shù)據(jù)處理裝置的存儲(chǔ)器中存儲(chǔ)的編碼數(shù)據(jù)的方法,所述數(shù)據(jù)由根據(jù)對(duì)象表示法的目錄和文件的樹結(jié)構(gòu)表示,其特征在于所述方法包括
-初始步驟,用于創(chuàng)建能夠引用存儲(chǔ)器中編碼數(shù)據(jù)的全部或一些屬性的特定引用對(duì)象,
并且其特征在于包括下列步驟
-從所述引用對(duì)象提取用于定位由該屬性占用的存儲(chǔ)器塊所需的信息的步驟,
-更新該塊的步驟,用新的先前編碼的數(shù)據(jù)來(lái)替換該塊。
6.根據(jù)權(quán)利要求5的更新方法,其特征在于,在創(chuàng)建所述引用對(duì)象之后并在更新所述編碼數(shù)據(jù)之前,步驟包括在數(shù)據(jù)處理裝置中寫保護(hù)所述引用對(duì)象。
7.根據(jù)權(quán)利要求5的方法,其特征在于,創(chuàng)建特定引用對(duì)象的初始步驟是在數(shù)據(jù)處理裝置的個(gè)性化階段期間執(zhí)行的。
8.一種用于更新在諸如智能卡的數(shù)據(jù)處理裝置的存儲(chǔ)器中存儲(chǔ)的編碼數(shù)據(jù)的計(jì)算機(jī)程序,所述程序包括執(zhí)行權(quán)利要求5所定義的更新步驟的程序代碼指令。
9.根據(jù)權(quán)利要求8的計(jì)算機(jī)程序,其特征在于更新步驟的執(zhí)行是在智能卡上實(shí)施的。
10.根據(jù)權(quán)利要求8的計(jì)算機(jī)程序,其特征在于更新步驟的執(zhí)行是由連接到智能卡的外部工具實(shí)施的。
全文摘要
本發(fā)明涉及一種用于更新在諸如智能卡的數(shù)據(jù)處理裝置的存儲(chǔ)器中存儲(chǔ)的編碼數(shù)據(jù)的系統(tǒng)。在該系統(tǒng)中,數(shù)據(jù)由根據(jù)對(duì)象表示法的目錄和文件的樹結(jié)構(gòu)來(lái)表示。根據(jù)本發(fā)明,所述更新系統(tǒng)包括能夠引用存儲(chǔ)器中的編碼數(shù)據(jù)的全部或一些屬性的特定引用對(duì)象。然后微控制被編程用來(lái)從所述引用對(duì)象提取用于定位由該屬性占用的存儲(chǔ)器塊所需的信息,和更新該塊,用新的先前編碼的數(shù)據(jù)來(lái)替換該塊。
文檔編號(hào)H04L9/10GK1625759SQ0380299
公開日2005年6月8日 申請(qǐng)日期2003年1月31日 優(yōu)先權(quán)日2002年2月1日
發(fā)明者伊蘭·馬哈拉爾 申請(qǐng)人:阿克薩爾托股份有限公司