本發(fā)明涉及安全加密領域,尤其涉及一種防止mcu內(nèi)部程序被復制的方法。
背景技術:
1、隨著科技的不斷發(fā)展,微控制器(mcu)已成為眾多電子設備中的核心組件,尤其在智能家居、工業(yè)自動化等領域應用廣泛。然而,mcu內(nèi)部存儲的程序代碼經(jīng)常面臨被非法復制或篡改的風險,這不僅侵犯了開發(fā)者的,也給企業(yè)帶來了巨大的經(jīng)濟損失。特別是在開發(fā)公司向客戶交付樣品后,若客戶通過磨片抄板等低成本手段輕易獲取研發(fā)成果,將導致開發(fā)公司無法收到應有的尾款,嚴重影響了企業(yè)的正常運營和研發(fā)積極性。
2、目前市場上存在一些加密保護方案,但它們大多存在以下缺點:
3、高成本:很多加密方案依賴于特定的加密芯片,這類芯片價格較高,對于一些成本敏感的項目來說并不適用。尤其是在小家電等領域,由于產(chǎn)品本身的價格限制,使用高成本的加密芯片會顯著增加產(chǎn)品成本,降低市場競爭力。
4、布局限制:在一些緊湊型設計中,使用多芯片方案可能會受到空間布局的限制。對于小型家電或其他空間有限的應用場景,多芯片方案可能并不可行。
5、防抄板能力有限:盡管使用了加密芯片,但磨片抄板的成本越來越低,技術也越來越成熟。兩顆芯片同時讀出代碼并燒錄的方法仍然可能被用來非法獲取程序代碼。此外,隨著技術的發(fā)展,磨片成本已經(jīng)產(chǎn)業(yè)化,使得非法復制變得更加容易和廉價。
6、本發(fā)明旨在解決現(xiàn)有技術中的上述缺點,提供一種防止mcu內(nèi)部程序被復制的方法。
技術實現(xiàn)思路
1、本發(fā)明提供了一種防止mcu內(nèi)部程序被復制的方法,用于為軟件開發(fā)公司提供更好的保護手段。
2、本發(fā)明第一方面提供了一種防止mcu內(nèi)部程序被復制的方法,所述防止mcu內(nèi)部程序被復制的方法包括:在mcu設計階段,將puf電路嵌入到芯片中,mcu在每次上電時,所述puf電路基于硬件的固有隨機性生成唯一的響應密鑰;預設一個用于mcu燒錄驗證的區(qū)塊鏈平臺,確保數(shù)據(jù)的安全性和不可篡改性,在區(qū)塊鏈平臺上部署智能合約,用于記錄mcu的燒錄信息,燒錄信息包括芯片id、時間戳、燒錄次數(shù),并定義驗證規(guī)則和鎖死機制,預設加密算法,用于對mcu內(nèi)部的程序進行加密,在mcu的flash或rom中存儲加密后的程序,確保程序以密文形式存在;申請燒錄授權,用戶在燒錄前向服務器申請授權,提交芯片id和其他必要信息,服務器通過查詢區(qū)塊鏈平臺記錄,驗證芯片id的有效性、燒錄次數(shù)是否超限,然后生成授權信息,服務器將授權信息通過安全通道傳輸給燒錄設備,燒錄設備在驗證授權信息無誤后開始燒錄過程;依據(jù)所述唯一的響應密鑰對加密程序進行解密,得到解密后的程序,在程序執(zhí)行前,依據(jù)所述解密后的程序進行多,確保程序未被非法篡改,得到校驗信息;依據(jù)校驗信息進行校驗結(jié)果判斷,一旦發(fā)現(xiàn)非法復制或篡改行為,mcu將自動觸發(fā)鎖死機制,使芯片無法再次使用,通過區(qū)塊鏈平臺記錄非法芯片的id和行為信息,以便后續(xù)追蹤和處理。
3、可選的,在本發(fā)明第一方面的第一種實現(xiàn)方式中,所述在mcu設計階段,將puf電路嵌入到芯片中,所述puf電路基于硬件的固有隨機性生成唯一的響應密鑰,包括:選擇一個puf類型,puf類型包括sram?puf、ring?oscillator?puf或delay?puf,基于選定的puf類型,設計puf電路,該電路能夠捕捉和利用晶體管的不均勻性、電阻的微小差異這些硬件固有隨機性,所述固有隨機性包括晶體管的不均勻性、電阻的微小差異,在mcu的設計階段,將puf電路作為安全模塊集成到芯片中;收集輸入數(shù)據(jù),在mcu啟動時,收集輸入數(shù)據(jù),輸入數(shù)據(jù)包括當前時間戳、設備序列號、環(huán)境溫度,將收集到的輸入數(shù)據(jù)輸入到puf電路中,利用硬件的固有隨機性生成一個唯一的響應密鑰;和/或設計一個動態(tài)的挑戰(zhàn)-響應機制,輸入數(shù)據(jù)還包括用戶的生物特征信息;每次mcu啟動時,基于新的輸入數(shù)據(jù)和puf電路生成一個新的唯一的響應密鑰,防止密鑰被長期使用而增加被破解的風險;得到一個唯一的響應密鑰。
4、可選的,在本發(fā)明第一方面的第二種實現(xiàn)方式中,所述預設一個用于mcu燒錄驗證的區(qū)塊鏈平臺,確保數(shù)據(jù)的安全性和不可篡改性,在區(qū)塊鏈平臺上部署智能合約,用于記錄mcu的燒錄信息,燒錄信息包括芯片id、時間戳、燒錄次數(shù),并定義驗證規(guī)則和鎖死機制,預設加密算法,用于對mcu內(nèi)部的程序進行加密,在mcu的flash或rom中存儲加密后的程序,確保程序以密文形式存在,包括:選擇區(qū)塊鏈平臺技術,選擇一個區(qū)塊鏈平臺,區(qū)塊鏈平臺包括以太坊,支持智能合約的部署,搭建一個私有或聯(lián)盟鏈網(wǎng)絡,確保網(wǎng)絡的安全性和性能;在區(qū)塊鏈平臺上部署一個用于記錄mcu燒錄信息的智能合約,所述智能合約具備記錄芯片id、時間戳、燒錄次數(shù)的功能,在智能合約中,預設驗證規(guī)則,驗證規(guī)則包括檢查燒錄次數(shù)的合理性以及定義鎖死機制,當檢測到異常燒錄行為時,可以自動觸發(fā)鎖死,阻止進一步的燒錄操作;基于區(qū)塊鏈平臺的智能合約,實現(xiàn)動態(tài)的燒錄權限管理,只有經(jīng)過授權的實體才能進行燒錄操作,且每次燒錄都需要通過智能合約進行權限驗證;預設加密算法,選擇加密算法,加密算法包括aes或rsa,用于對mcu內(nèi)部的程序進行加密,在mcu程序開發(fā)完成后,使用預設的加密算法對程序進行加密處理;將加密后的程序以密文形式存儲在mcu的flash或rom中,確保即使攻擊者能夠物理訪問mcu,也無法直接讀取或復制解密后的程序。
5、可選的,在本發(fā)明第一方面的第三種實現(xiàn)方式中,所述申請燒錄授權,用戶在燒錄前向服務器申請授權,提交芯片id和其他必要信息,服務器通過查詢區(qū)塊鏈平臺記錄,驗證芯片id的有效性、燒錄次數(shù)是否超限,然后生成授權信息,服務器將授權信息通過安全通道傳輸給燒錄設備,燒錄設備在驗證授權信息無誤后開始燒錄過程,包括:用戶在燒錄前,通過燒錄設備向服務器提交燒錄授權申請,申請中包含芯片id、預計燒錄的程序版本、燒錄設備標識必要信息;服務器接收到申請后,首先通過查詢區(qū)塊鏈平臺記錄來驗證芯片id的歷史燒錄信息和有效性,服務器檢查該芯片的燒錄次數(shù)是否已達到預設的上限,如果芯片id有效且燒錄次數(shù)未超限,服務器生成一個包含時間戳、有效期、芯片id、程序版本號和授權簽名的授權信息;和/或?qū)嵤┒嗉壥跈鄼C制,需要多個管理員或部門的聯(lián)合授權才能進行燒錄;和/或在燒錄設備上實施物理鎖定機制,使用flash或rom存儲和管理密鑰及授權信息;服務器通過https通信協(xié)議將授權信息傳輸給燒錄設備,和/或在傳輸過程中,使用tls加密確保數(shù)據(jù)的安全性;燒錄設備接收到授權信息后,首先驗證授權簽名的有效性,確保授權信息未被篡改,驗證通過后,燒錄設備會檢查授權信息中的時間戳、有效期、芯片id、程序版本號和授權簽名是否與申請時提交的信息一致;所有驗證步驟成功后,燒錄設備開始燒錄程序到mcu中;在燒錄完成后,燒錄設備會向服務器發(fā)送一個燒錄完成的確認信息,以便服務器更新區(qū)塊鏈平臺上的燒錄記錄;設置預警機制,當檢測到異常燒錄請求或未經(jīng)授權的燒錄嘗試時,立即觸發(fā)警報并通知相關人員。
6、可選的,在本發(fā)明第一方面的第四種實現(xiàn)方式中,所述依據(jù)所述唯一的響應密鑰對加密程序進行解密,得到解密后的程序,在程序執(zhí)行前,依據(jù)所述解密后的程序進行多重校驗,確保程序未被非法篡改,得到校驗信息,包括:利用響應密鑰解密,使用之前通過puf電路生成的唯一響應密鑰,對存儲在mcu中的加密程序進行解密;多重校驗包括時間戳校驗、燒錄次數(shù)校驗:在程序解密后,首先提取程序中的時間戳信息,獲取當前時間,并與程序中的時間戳進行對比;程序包含一個記錄燒錄次數(shù)的字段,每次程序燒錄到mcu時,該字段遞增,在程序執(zhí)行前,檢查該字段的值是否超過預設的最大燒錄次數(shù);在程序加密前,計算程序的哈希值并存儲在安全區(qū)域,解密后,重新計算程序的哈希值,并與存儲的哈希值進行對比;使用私鑰對原始程序進行簽名,并將簽名信息存儲在安全區(qū)域,在程序執(zhí)行前,使用公鑰驗證簽名的有效性;根據(jù)mcu的使用情況和環(huán)境,動態(tài)調(diào)整時間戳校驗和燒錄次數(shù)校驗的閾值,如果mcu長時間未使用,放寬時間戳校驗的閾值;得到校驗信息。
7、可選的,在本發(fā)明第一方面的第五種實現(xiàn)方式中,所述依據(jù)校驗信息進行校驗結(jié)果判斷,一旦發(fā)現(xiàn)非法復制或篡改行為,mcu將自動觸發(fā)鎖死機制,使芯片無法再次使用,通過區(qū)塊鏈平臺記錄非法芯片的id和行為信息,以便后續(xù)追蹤和處理,包括:mcu在得到校驗信息后,將其與預設范圍進行比較,檢查芯片id是否與記錄在案的合法id匹配,檢查燒錄次數(shù)是否超過預設的最大值,驗證時間戳、哈希值或簽名這些校驗信息的有效性;一旦發(fā)現(xiàn)任何非法復制或篡改行為,包括芯片id不匹配或燒錄次數(shù)超限,mcu將立即觸發(fā)一個內(nèi)置的鎖死命令;和/或mcu在每次開機時,都會從flash或rom中讀取存儲的數(shù)據(jù),并進行加密計算,將計算結(jié)果與從串口讀取并經(jīng)過處理的數(shù)據(jù)進行比對,如果數(shù)據(jù)不一致,mcu將直接觸發(fā)鎖死命令;所述鎖死命令是一個硬件級別的熔斷機制,通過物理方式永久性地禁用mcu的關鍵功能,使其無法再次使用;當mcu觸發(fā)鎖死命令時,會生成一個包含非法芯片id、行為信息和校驗失敗原因的數(shù)字證書,所述數(shù)字證書將被加密并簽名,mcu或與之通信的服務器將加密后的數(shù)字證書上傳到區(qū)塊鏈平臺,區(qū)塊鏈平臺提供了一個錄系統(tǒng),用于存儲和驗證這些證書。
8、可選的,在本發(fā)明第一方面的第六種實現(xiàn)方式中,還包括:建立一個基于區(qū)塊鏈平臺的聲譽系統(tǒng),對供應鏈中的各方進行評分和排名,根據(jù)各方在處理非法芯片問題上的表現(xiàn),調(diào)整其聲譽評分,從而影響未來的商業(yè)合作和信任關系;對外提供.a和.h文件,僅暴露兩個接口供外部使用,商用時,服務器會給燒錄設備提供授權以及次數(shù)授權。
9、本發(fā)明第二方面提供了一種防止mcu內(nèi)部程序被復制的裝置,所述防止mcu內(nèi)部程序被復制的裝置包括:電路模塊,用于利用硬件的固有隨機性,在mcu每次上電時生成唯一的響應密鑰,這個密鑰用于加密和解密mcu內(nèi)部的程序,增加了程序的安全性,防止未經(jīng)授權的復制或訪問;
10、接口模塊,用于負責與預設的區(qū)塊鏈平臺進行通信,確保數(shù)據(jù)的安全性和不可篡改性,通過區(qū)塊鏈平臺,記錄mcu的燒錄信息,包括芯片id、時間戳、燒錄次數(shù),并利用智能合約來定義驗證規(guī)則和鎖死機制;
11、加密模塊,使用預設的加密算法對mcu內(nèi)部的程序進行加密,并在需要執(zhí)行程序時使用puf電路生成的唯一響應密鑰進行解密,保證程序在存儲時始終以密文形式存在;
12、驗證模塊,用于負責處理燒錄授權的申請和驗證過程,用戶在燒錄前需要通過此模塊向服務器申請授權,提交芯片id信息,并接收服務器返回的授權信息,只有驗證授權信息無誤后,才開始燒錄過程,確保只有經(jīng)過授權的設備才能進行程序的燒錄;
13、校驗模塊,在程序執(zhí)行前,該模塊會對解密后的程序進行校驗,以確保程序未被非法篡改,一旦發(fā)現(xiàn)非法復制或篡改行為,它會觸發(fā)鎖死機制,使芯片無法再次使用,并通過區(qū)塊鏈平臺記錄非法芯片的id和行為信息,便于后續(xù)追蹤和處理。
14、本發(fā)明第三方面提供了一種防止mcu內(nèi)部程序被復制的設備,包括:存儲器和至少一個處理器,所述存儲器中存儲有指令;所述至少一個處理器調(diào)用所述存儲器中的所述指令,以使得所述防止mcu內(nèi)部程序被復制的設備執(zhí)行上述的防止mcu內(nèi)部程序被復制的方法。
15、本發(fā)明的第四方面提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)中存儲有指令,當其在計算機上運行時,使得計算機執(zhí)行上述的防止mcu內(nèi)部程序被復制的方法。
16、本發(fā)明提供的技術方案中,結(jié)合了物理不可克隆函數(shù)(puf)電路、區(qū)塊鏈技術、加密算法以及嚴格的燒錄驗證流程。包括在mcu設計階段嵌入puf電路以生成唯一的響應密鑰,利用區(qū)塊鏈平臺確保數(shù)據(jù)的安全性和不可篡改性,通過智能合約記錄mcu的燒錄信息,并定義驗證規(guī)則和鎖死機制。在燒錄前,用戶需向服務器申請授權,并通過安全通道傳輸授權信息給燒錄設備。加密程序在解密和執(zhí)行前會進行多重校驗,以確保程序未被非法篡改。一旦發(fā)現(xiàn)非法復制或篡改行為,mcu將自動觸發(fā)鎖死機制,并記錄非法芯片的id和行為信息到區(qū)塊鏈平臺,以便后續(xù)追蹤和處理。
17、有益效果:
18、打擊復制行為:市面上存在一些通過磨片等方式非法獲取并復制.bin文件的行為。本發(fā)明通過嚴格的加密、驗證和鎖死機制,極大地提高了非法復制的難度和風險,從而有效地打擊了這類非法行為,保護了原始程序的安全性和完整性。
19、保護開發(fā)者權益:很多開發(fā)者在前期投入大量時間和精力開發(fā)出的項目,往往容易被客戶以低廉的成本占為己有。本發(fā)明通過確保程序的安全性和不可復制性,保護了開發(fā)者的勞動成果,使得客戶無法輕易獲取并復制程序,從而維護了開發(fā)者的合法權益。
20、靈活的應用方式:這套方案不僅適用于個人或企業(yè)自用,還可以通過燒錄的方式安全地分享給供應商。所有數(shù)據(jù)都通過非對稱加密和時間戳校驗,確保了數(shù)據(jù)的合法性和傳輸過程中的安全性。這有效防止了通過錄制重播等方式進行的反復嘗試和非法訪問,為合作雙方提供了安全的數(shù)據(jù)交換環(huán)境。
21、高度的可定制性和適應性:本發(fā)明的硬件方案通過不同的密碼校驗來確保安全性。即使存在泄漏風險,也可以迅速聯(lián)系廠商更改.a文件和密碼,使得非法獲取的程序無法使用。這種高度的可定制性和適應性使得本發(fā)明能夠靈活應對各種安全威脅,確保系統(tǒng)的持續(xù)安全。
22、綜上所述,本發(fā)明的有益效果和好處主要體現(xiàn)在打擊非法復制行為、保護開發(fā)者權益、提供靈活的應用方式以及高度的可定制性和適應性等方面。這些優(yōu)點共同確保了mcu內(nèi)部程序的安全性和完整性,為開發(fā)者和使用者提供了強有力的保障。