專利名稱:一種芯片及片上操作系統下載的方法
技術領域:
本發明屬于信息處理技術領域,特別涉及一種芯片及片上操作系統下載的方法。
背景技術:
在某些情況下,需要把COS (Chip Operating System,片上操作系統)數據提供給 外協廠家,由外協廠家來生產SIM模塊或卡產品,例如,當公司產能不足時,或為節省物流 費用考慮。COS指片上操作系統,主要的功能是維護芯片中的文件系統,處理手機下發給 SIM卡的各種命令,是SIM卡實現客戶需求的基礎,具有非常重要的作用。
如果把從芯片供應商處訂購的芯片和委托方的COS程序直接提供給外協廠家生 產,會有以下風險不能完全杜絕外協廠家將芯片用作其它的用途,外協廠家得到COS程序 后,可以直接找芯片供應商訂購芯片,下載COS程序后即可出售。這樣會損害委托方利益, 所以,在外協過程中如何從技術手段上保證COS程序下載到芯片的安全,就是一個現有技 術中需要解決的問題。
發明內容
為了解決COS程序下載到芯片安全性較低的問題,本發明實施例提供了一種片上 操作系統下載的方法,包括 接收待下載的加密的片上操作系統程序; 調用在芯片上預置的操作系統加載器程序,將加密的片上操作系統程序解密后下 載到芯片上。
同時本發明實施例還提供一種芯片,包括 接收模塊,接收待下載的加密的片上操作系統程序; 控制模塊,調用在芯片上預置的操作系統加載器程序,將加密的片上操作系統程 序解密后下載到芯片上。 由上述本發明提供的具體實施方案可以看出,正是由于通過帶有可解密COS的操 作系統加載器程序的卡片和加密COS來實現COS程序的安全使用。
圖1為本發明提供的運行第一實施例方法流程圖; 圖2為本發明提供的閃存中的存儲空間分配圖; 圖3為本發明提供的閃存中預置有Loader OS程序的芯片下載加密的COS程序流 程圖; 圖4為本發明提供的重新下載Loader OS程序流程圖; 圖5為本發明提供的第二實施例系統結構圖。
具體實施例方式
本發明第一實施例提供了一種片上操作系統下載的方法,該COS程序下載的方法 要解決的技術問題是保證COS程序的安全,通過技術手段來防止外協廠家非法獲取COS程 序,為此,需要在芯片內部的預置操作系統加載器Loader OS程序,提供給外協廠家的是預 置有Loader OS程序的芯片和加密后的COS程序,Loader OS程序用于對加密COS程序進 行解密并加載到芯片,如圖1所示,具體包括以下步驟
步驟101 :在芯片上預置Loader OS程序。
步驟102 :根據加密規則對COS程序進行加密。 步驟103 :COS程序寫入設備向芯片發送待下載的根據加密規則加密后的COS程 序,調用Loader OS程序將加密COS程序解密后下載到芯片上。 步驟104 :COS程序向芯片存儲器中寫入預個人化和個人化數據,完成卡片生產,
預個人化和個人化數據,用于后續COS程序處理各種命令時調用處理。 其中步驟101中預置Loader OS程序,根據芯片類型的不同,又分為預置在只讀內
存ROM(只讀內存,Read-Only Memory)中和預置在閃存flash兩種方式。 當預置在ROM中時,僅需要在Loader OS中設計數據解密指令即可。 當預置在flash中時,需做如下幾方面的設計 在SIM卡Flash上分配存儲空間,如圖2所示,一塊為Flash啟動程序區,用于存 儲Flash啟動程序(OsStart code);—塊為Loader OS程序區,用于存儲Loader OS程序 (Loader code);—塊為COS程序區,用于存儲COS程序。這三塊分區可以設置為連續空間; 也可設為非連續空間,當設為非連續空間時,兩兩分區之間為空數據。 一塊為模式切換標志 位,放在Flash的最后,用于存放模式狀態標志Flagl和Flag2, Flagl用于標記是在Loader OS模式還是在COS模式,Flag2用于標記是在用戶模式狀態還是在芯片初始狀態。
在Loader OS程序中需要設計以下四種APDU指令, 一是擦除指令,用于擦除指定 空間范圍外的數據,剩下Flash啟動程序(OsStart code) 、Loader OS程序(Loader code)、 和模式切換標志位(Flagl和Flag2);—是密鑰分散指令,用于對密鑰進行分散,得到分散 密鑰;一是數據解密指令,用于將加密后的數據解密;一是數據校驗指令,用于比對校驗值 的一致性。 在COS程序中要包含數據下載指令,用于將數據重新下載到芯片中。
其中步驟102中的加密規貝U,可以是對COS程序全部加密,也可以是選取特定的段 進行加密。鑒于加密數據越多,解密時間相應會越長,生產的產能會越低,所以,優選的,采 用選取特定段進行加密的方式。譬如,可以采用加密規則如下COS程序按長度分為80個 段,每段數據只加密前16字節的數據,當最后一個段不足16字節時不加密。更優的,為了保 證數據的安全性,可以采用每一段加密的字節不固定,但符合特定的規律,例如采用21字 節遞進加密方式,即第一條加密前16字節,每二條加密第22到37字節,第三條加密43到 58字節,以此類推。實際應用中可以采取不同的加密規則。 其中步驟103的解密過程,當Loader OS是預置在ROM中時,僅需要根據加密規則 所對應的解密規則進行解密即可;當Loader OS是預置在Flash中時,如圖3所示,需執行 以下的步驟 步驟2Q1 :開始,進入啟動程序。
步驟202 :判斷模式狀態標志Flagl是否為Loader OS模式,如是,進入步驟203 ;否,進入步驟212。 步驟203 :進入Loader OS模式。 步驟204 :執行擦除指令,僅擦除指定空間范圍外的數據,剩下Flash啟動程序(0sStart code)、Loader 0S程序(Loader code)、和模式切換標志位(Flagl和Flag2)。指定空間范圍的數據為Flash啟動程序(OsStart code) 、Loader OS程序(Loader code)、和模式切換標志位(Flagl和Flag2)。 步驟205 :執行密鑰分散指令,對密鑰進行分散,得到分散密鑰。 步驟206 :執行解密指令,完成數據解密,將COS程序寫入芯片。 步驟207 :執行數據校驗指令,對數據進行校驗運算,得到校驗值。對數據進行校
驗運算時采用的校驗算法,包括但不限于CRC32、異或算法。 步驟208 :判斷該校驗值是否與COS程序加密時校驗運算得到的校驗值一致,如果一致則進入步驟209,如果不一致則進入步驟201。
步驟209 :C0S程序解密成功。 步驟210 :修改模式狀態標志Flag2。如成功,則進入步驟211 ;如不成功,則返回步驟201。 步驟211 :C0S程序解密過程結束。再次啟動,會進入步驟201后順序執行跳轉到步驟212。 步驟212 :進入COS模式。 步驟213 :執行COS擦除指令,擦除Loader OS程序區和其他空的數據區。
當卡片需要重新下載時,這時卡內僅有COS程序,沒有Loader 0S程序,直接下載COS程序,不會成功,可保證安全性。如需重新下載COS程序,必須首先執行COS程序中的數據下載指令84DE 0000LC data,完成Loader 0S程序的重新下載,此數據下載指令是以加密的方式將數據寫入芯片,即COS程序是對加密的Loader OS程序解密后下載到芯片上。加密算法可以是包括3DES算法在內的各種運算方法。因為其它COS程序中不支持此數據下載指令,所以,無法重新加載Loader OS程序;并且,這種方式是通過會話密鑰加密方式進行,所以可以保證Loader 0S程序的安全性。如圖4所示,具體包括以下步驟
步驟301 :開始,進入啟動程序。 步驟302 :判斷模式狀態標志Flagl是否為Loader OS模式,如是,執行步驟307進入Loader OS模式;否,進入步驟303。
步驟303 :進入COS模式。 步驟304 :執行數據下載指令,重新加載Loader 0S。 步驟305 :執行校檢指令,校驗Loader OS的完整性。如校驗通過,則進入步驟306。如不通過,返回步驟301。 步驟306 :清除模式狀態標志Flagl結束。
步驟307 :進入Loader OS模式 本發明第二實施例提供了一種芯片,如圖5所示,包括
接收模塊401,接收待下載的加密的片上操作系統程序; 控制模塊402,調用在芯片上預置的操作系統加載器程序,將加密的片上操作系統程序解密后下載到芯片上。 進一步,還包括只讀內存403,用于存儲操作系統加載器程序,或還包括閃存404,用于存儲操作系統加載器程序。 進一步,控制模塊402,還用于在芯片的閃存中預置操作系統加載器程序時,啟動
存儲在閃存中的啟動程序,通過閃存中存儲的模式切換標志位確定當前處于操作系統加載
器工作模式,執行操作系統加載器程序的擦除指令,擦除指定空間范圍外的數據,指定空間
范圍的數據為閃存啟動程序、操作系統加載器程序和模式切換標志位。 進一步,控制模塊402,還用于在執行操作系統加載器程序的密鑰分散指令,對操
作系統加載器程序中的主密鑰進行分散得到分散密鑰后,執行在芯片上預置的操作系統加
載器程序的解密指令,使用分散密鑰將加密的片上操作系統程序解密后下載到芯片上。 進一步,控制模塊402,還用于執行操作系統加載器程序的數據校驗指令,對下載
的片上操作系統程序進行校驗,當校驗通過時,進入片上操作系統工作模式后,調用片上操
作系統程序擦除操作系統加載器程序。 進一步,控制模塊402,還用于調用片上操作系統將加密的操作系統加載器程序進行解密后重新下載到芯片上。 顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
一種片上操作系統下載的方法,其特征在于,包括接收待下載的加密的片上操作系統程序;調用在芯片上預置的操作系統加載器程序,將加密的片上操作系統程序解密后下載到芯片上。
2. 如權利要求1所述的方法,其特征在于,在芯片的只讀內存中或閃存中預置操作系統加載器程序。
3. 如權利要求2所述的方法,其特征在于,在芯片的閃存中預置操作系統加載器程序時,解密步驟前還包括啟動存儲在閃存中的啟動程序,通過閃存中存儲的模式切換標志位確定當前處于操作系統加載器工作模式;執行操作系統加載器程序的擦除指令,擦除指定空間范圍外的數據,指定空間范圍的數據為閃存啟動程序、操作系統加載器程序和模式切換標志位。
4. 如權利要求1至3所述的方法,其特征在于,解密步驟具體為在執行操作系統加載器程序的密鑰分散指令,對操作系統加載器程序中的主密鑰進行分散得到分散密鑰后;執行在芯片上預置的操作系統加載器程序的解密指令,使用分散密鑰將加密的片上操作系統程序解密后下載到芯片上。
5. 如權利要求3所述的方法,其特征在于,將解密后的片上操作系統程序下載到芯片上步驟后還包括執行操作系統加載器程序的數據校驗指令,對下載的片上操作系統程序進行校驗;進行校驗后還包括當校驗通過時,進入片上操作系統工作模式;調用片上操作系統程序擦除操作系統加載器程序。
6. 如權利要求5所述的方法,其特征在于,擦除操作系統加載器程序步驟后還包括調用片上操作系統將加密的操作系統加載器程序進行解密后重新下載到芯片上。
7. 如權利要求1所述的方法,其特征在于,片上操作系統程序按長度被分為多個段,多個段中的部分數據被加密。
8. 如權利要求7所述的方法,其特征在于,在多個段中被加密的部分數據在各段中所在的位置不固定,且符合預定的規律。
9. 一種芯片,其特征在于,包括接收模塊,接收待下載的加密的片上操作系統程序;控制模塊,調用在芯片上預置的操作系統加載器程序,將加密的片上操作系統程序解密后下載到芯片上。
10. 如權利要求9所述的芯片,其特征在于,還包括只讀內存,用于存儲操作系統加載器程序;或還包括閃存,用于存儲操作系統加載器程序。
11. 如權利要求io所述的芯片,其特征在于,控制模塊,還用于在芯片的閃存中預置操作系統加載器程序時,啟動存儲在閃存中的啟動程序,通過閃存中存儲的模式切換標志位確定當前處于操作系統加載器工作模式,執行操作系統加載器程序的擦除指令,擦除指定空間范圍外的數據,指定空間范圍的數據為閃存啟動程序、操作系統加載器程序和模式切換標志位。
12. 如權利要求9至11所述的芯片,其特征在于,控制模塊,還用于在執行操作系統加載器程序的密鑰分散指令,對操作系統加載器程序中的主密鑰進行分散得到分散密鑰后,執行在芯片上預置的操作系統加載器程序的解密指令,使用分散密鑰將加密的片上操作系統程序解密后下載到芯片上。
13. 如權利要求11所述的芯片,其特征在于,控制模塊,還用于執行操作系統加載器程序的數據校驗指令,對下載的片上操作系統程序進行校驗,當校驗通過時,進入片上操作系統工作模式后,調用片上操作系統程序擦除操作系統加載器程序。
14. 如權利要求13所述的芯片,其特征在于,控制模塊,還用于調用片上操作系統將加密的操作系統加載器程序進行解密后重新下載到芯片上。
全文摘要
為了解決COS程序下載到芯片安全性較低的問題,本發明公開了一種芯片及片上操作系統下載的方法,本發明公開的方法包括接收待下載的加密的片上操作系統程序,調用在芯片上預置的操作系統加載器程序,將加密的片上操作系統程序解密后下載到芯片上,由于通過帶有可解密COS的操作系統加載器程序的卡片和加密COS來實現COS程序的安全使用。
文檔編號G06F9/445GK101751279SQ200910243220
公開日2010年6月23日 申請日期2009年12月29日 優先權日2009年12月29日
發明者李佳靜, 臧宏偉, 虞濤, 賈振波 申請人:北京握奇數據系統有限公司