一種劃分終端開發模式和產品模式的方法及系統的制作方法
【技術領域】
[0001] 本發明涉及一種劃分終端開發模式和產品模式的方法及系統。
【背景技術】
[0002] 在支付領域中,對終端固件的合法性、安全性、完整性提出了很高的要求,因此促 進了證書驗簽體系在支付領域的廣泛應用。
[0003] 目前主流的驗簽體系使用證書樹完成整個驗簽體系的搭建,通過在一次性燒寫 FLASH代碼中固化CA,所述固化程序就是把程序寫入到DSP,這樣DSP就可以脫離仿真器離 線運行。固化CA的過程包括:使用證書私鑰對固件進行簽名,固件下載進終端時,使用證書 公鑰對簽名進行驗證,滿足了終端固件的合法性、安全性、完整性的要求。如圖1所示,一般 固件簽名格式為"固件+簽名證書+HASH校驗";通過在固件尾部附加包含簽名證書和HASH 校驗的簽名信息,完成對固件合法性的驗證,其中,"HASH校驗"為計算得到固件加簽名證書 的第一 HASH值后,經簽名幀數的私鑰簽名生成;驗簽過程,首先通過簽名證書中的公鑰對 "HASH校驗"進行解密,再計算解密后的文件的HASH值,得到第二HASH值,比較第一 HASH值 和第二HASH值,若相符,則證明簽名正常,若不相符,則證明固件在下載過程中發生異常, 可能被截取修改過。
[0004] 然而,上述現有技術終端下載固件后所使用的驗簽方式,并無法實現固件開發版 本和產品版本的分離。在固件開發過程中,經常會涉及到固件的調試修改,因此,測試版本 的固件可能存在風險;而測試版本的固件雖然處于測試階段,但仍然是合法的,同樣能夠通 過驗簽;在被下載到終端后,終端只能通過上述驗簽方式判斷簽名的合法性,卻無法區分所 下載的固件是測試版本還是正式版本,因此存在可能失誤下載到測試版本的風險,進而導 致終端存在較大的安全隱患,終端能夠正常運行,以及用戶和運營商的利益都無法得到保 證。
[0005] 申請號為201210527778. 9的專利申請,公開了一種防止移動終端升級到非法固 件版本的方法及系統,包括升級工具對待升級固件版本進行版本合法性校驗處理,并根據 版本合法性校驗結果,接收升級工具下發的待升級固件版本;對收到的待升級固件版本進 行合法性驗證,依據驗證結果,進行固件版本的升級。
[0006] 上述申請文件還是只能判定固件的合法性,無法實現固件版本的區分;因此,有必 要提供一種劃分終端開發模式和產品模式的方法及系統,以解決上述問題。
【發明內容】
[0007]本發明所要解決的技術問題是:提供一種劃分終端開發模式和產品模式的方法及 系統,實現開發權限和產品權限的分離,確保測試版本的固件不會被更新至正式產品中,規 避終端可能存在的安全隱患。
[0008] 為了解決上述技術問題,本發明采用的技術方案為:
[0009] -種劃分終端開發模式和產品模式的方法,包括:
[0010] 開發CA簽發開發證書,所述開發證書中包含開發私鑰和開發公鑰;
[0011] 使用開發私鑰對開發固件進行簽名;生成已簽名的開發固件;
[0012] 終端獲取一固件;依據預先存儲在內部FLASH中的標志位判斷所述終端當前處于 開發模式還是產品模式;
[0013] 若為開發模式,則獲取開發CA;使用開發CA驗簽所述一固件;若驗簽通過,則判定 所述一固件為所述開發固件;安裝并運行所述一固件。
[0014] 本發明提供的另一個技術方案為:
[0015] -種劃分終端開發模式和產品模式的系統,包括:
[0016] 第一簽發模塊,用于開發CA簽發開發證書,所述開發證書中包含開發私鑰和開發 公鑰;
[0017] 第一簽名模塊,用于使用開發私鑰對開發固件進行簽名;
[0018] 第一生成模塊,用于生成已簽名的開發固件;
[0019] 第一獲取模塊,用于終端獲取一固件;
[0020] 第一判斷模塊,用于依據預先存儲在內部FLASH中的標志位判斷所述終端當前處 于開發模式還是產品模式;
[0021] 第二獲取模塊,用于獲取開發CA;
[0022] 第一驗簽模塊,用于使用開發CA驗簽所述一固件;
[0023] 第一判定模塊,用于判定所述一固件為所述開發固件;
[0024] 安裝模塊,用于安裝并運行所述一固件。
[0025] 本發明的有益效果在于:本發明對應處于不同階段的固件使用不同的CA及證書 體系進行簽名;在終端獲取到一固件后,依據預先存儲在內部的標志位判斷終端當前是處 于開發模式還是產品模式,進而獲取相應的CA進行驗證,若驗證通過,則確認所述固件符 合終端當前所處模式;實現開發權限與產品權限的分離,確保開發人員使用開發CA簽名后 的測試版本固件無法下載到正式產品中,規避測試版本固件流出的風險,進而保證終端的 安全性。
【附圖說明】
[0026]圖1為現有技術的固件簽名格式;
[0027]圖2為本發明一種劃分終端開發模式和產品模式的方法的流程示意圖;
[0028]圖3為本發明一實施例一種劃分終端開發模式和產品模式的方法的流程示意圖;
[0029]圖4為本發明一實施例一種劃分終端開發模式和產品模式的方法中驗簽過程的 流程示意圖;
[0030]圖5為本發明一種劃分終端開發模式和產品模式的系統的結構示意圖;
[0031]圖6為本發明一實施例一種劃分終端開發模式和產品模式的系統的結構不意圖;
[0032]圖7為本發明一實施例一種劃分終端開發模式和產品模式的系統中第一簽名模 塊的結構示意圖;
[0033]圖8為本發明一實施例一種劃分終端開發模式和產品模式的系統中第一驗簽模 塊的結構示意圖。
[0034] 標號說明:
[0035]I、第一簽發模塊;2、第一簽名模塊;3、第一生成模塊;
[0036] 4、第一獲取模塊;5、第一判斷模塊;6、第二獲取模塊;
[0037] 7、第一驗簽模塊;8、第一判定模塊;9、安裝模塊;
[0038] 10、第二簽發模塊;11、第二簽名模塊;12、第二生成模塊;
[0039] 13、第三獲取模塊;14、第二驗簽模塊;15、第二判定模塊;
[0040] 16、第一計算單元;17、加密單元;18、驗證單元;
[0041] 19、解密單元;20、第二計算單元;21、對比單元。
【具體實施方式】
[0042] 為詳細說明本發明的技術內容、所實現目的及效果,以下結合實施方式并配合附 圖予以說明。
[0043] 本發明最關鍵的構思在于:對應不同階段的固件使用不同的CA及證書體系進行 簽名;依據終端當前所處的模式獲取相應的CA對所下載的固件進行驗證,只有驗證通過才 允許安裝,實現權限的隔離。
[0044] 本發明涉及的技術術語解釋:
[0045]
[0046] 請參照圖2以及圖3,本發明提供一種劃分終端開發模式和產品模式的方法,包 括:
[0047] 開發CA簽發開發證書,所述開發證書中包含開發私鑰和開發公鑰;
[0048] 使用開發私鑰對開發固件進行簽名;生成已簽名的開發固件;
[0049] 終端獲取一固件;依據預先存儲在內部FLASH中的標志位,判斷所述終端當前處 于開發模式還是產品模式;
[0050] 若為開發模式,則獲取開發CA ;使用開發CA驗簽所述一固件;若驗簽通過,則判定 所述一固件為所述開發固件;安裝并運行所述一固件。
[0051] 需要說明的是,所述標志位可以使用四字節表示,如當數據為OxFFFFFFFF時為產 品模式,數據為OxABABABAB時表示當前為開發模式;FLASH的特性是擦除后均被寫為OxFF, 達到默認狀態為產品狀態的效果。
[0052] 從上述描述可知,本發明的有益效果在于:實現開發權限和產品權限的分離,確保 處于開發階段的測試版本固件不會被更新至正式產品中。在開發階段,開發人員能夠使用 開發權限進行開發固件的簽名和各項調試;當產品固件正式發布時,由產品管控人員使用 產品權限對產品固件進行簽名,確保開發和產品權限的隔離,保證開發固件的安全性。
[0053] 進一步的,還包括:
[0054] 產品CA簽發產品證書,所述產品證書中包含產品私鑰和產品公鑰;
[0055] 使用產品私鑰對產品固件進行簽名;生成已簽名的產品固件;
[0056] 若判斷所述終端當前處于產品模式,則獲取產品CA ;使用產品CA驗簽所述一固 件;若驗