两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

單片機在線可編程的身份認證方法

文檔序號:7591412閱讀:292來源:國知局
專利名稱:單片機在線可編程的身份認證方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種單片機在線可編程的身份認證方法。
背景技術(shù)
在線可編程技術(shù)已經(jīng)在很多單片機中得以實現(xiàn),用戶可以通過單片機上的專用在線可編程ロ,對其用戶程序存儲器進行修改(既更改系統(tǒng)軟件),從而在不更改系統(tǒng)硬件的基礎(chǔ)上,使產(chǎn)品得到升級,大大地降低了成品的開發(fā)成本。但現(xiàn)有的支持在線可編程技術(shù)的傳統(tǒng)單片機中,在安全方面或多或少都存在著隱患。主要有三種情況一是沒有安全認證,大多單片機只要在編程口上檢測到ー個或多個固 定的序列,那么編程模式就被打開,用戶可以進行程序訪問,而這段固定序列是公開的,所以任何人都能進入編程模式;ニ是安全措施太簡單,比如一些單片機具有程序區(qū)域鎖功能,既當(dāng)程序區(qū)鎖位為編程(Program)狀態(tài)時,程序區(qū)不可讀也不可寫,要對程序區(qū)進行擦寫操作(即在線編程),必須先擦除(Erase)掉程序區(qū)鎖位,擦除過程會把用戶程序區(qū)也一井擦除掉,這種方式保證了原有的用戶程序不能被讀出,但保證不了用戶程序存儲器被惡意修改;三是在線可編程的次數(shù)有限,有很多單片機支持用戶一次性或有限次在線可編程,但當(dāng)程序測試穩(wěn)定后,用戶會編程(program)某些一次可編程(OTP)位,使系統(tǒng)再也回不到編程狀態(tài),由于此類單片機在線可編程次數(shù)有限,所以不能滿足需要多次更新的需求。單片機在線編程的安全性問題,大大制約了降低系統(tǒng)成品成本的可能性。比如在電表,水表和天燃氣表領(lǐng)域,由于單片機內(nèi)的程序有很高的安全性要求,不能隨意地對其通過編程ロ進行訪問,不然后果就非常嚴重了。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種單片機在線可編程的身份認證方法,解決單片機在線可編程的不安全問題。為解決上述技術(shù)問題,本發(fā)明的單片機在線可編程的身份認證方法,其為在單片機內(nèi)設(shè)置安全驗證碼和安全密鑰;先采用安全驗證碼的比對方法來進行第一重身份認證;在通過第一重身份認證后,通過安全密鑰來進行第二重身份認證。本發(fā)明的方法中,采用安全驗證碼和安全密鑰認證技術(shù)這兩種手段,對用戶的身份進行雙重認證,只有在兩重身份認證成功之后,才能通過在線可編程通信接ロ進行讀寫操作。同時本發(fā)明的方法中,進入在線可編程狀態(tài)下,可對保存在存儲器中安全驗證碼和安全密鑰進行多次修改,進ー步提高在線可編程的安全性。在單片機在線可編程接ロ開放的情況下,用以保證芯片內(nèi)部用戶程序存儲區(qū)不被未經(jīng)授權(quán)的非法用戶隨意訪問,進行程序讀取或是下載惡意代碼,從而實現(xiàn)既能通過在線可編程技術(shù)降低成品開發(fā)成本,又能保證用戶程序安全性的問題。


下面結(jié)合附圖與具體實施方式
對本發(fā)明作進ー步詳細的說明圖I為本發(fā)明的身份認證示意圖;圖2為本發(fā)明的 方法流程圖。
具體實施例方式本發(fā)明的單片機在線可編程的身份認證方法,采用安全驗證碼和安全密鑰形成兩重身份認證。ー個具體的實例為在單片機(通常在芯片上)上設(shè)有密鑰算法模塊(可為現(xiàn)成的安全算法模塊)、隨機數(shù)產(chǎn)生器、在線可編程通信接口和非易失性存儲器(具體稱為嵌入式非易失性存儲器);在非易失性存儲器內(nèi)保存有安全驗證碼,用于和用戶通過在線可編程通信接ロ輸入的驗證碼進行比較,在用戶機和單片機之間提供第一重安全身份認證;非易失性存儲器內(nèi)還保存有安全密鑰,在用戶通過第一重身份認證后,從隨機數(shù)產(chǎn)生器中取出一段隨機數(shù)并發(fā)送給用戶,用戶在接收到所述隨機數(shù)后通過預(yù)存的安全密鑰和密鑰算法模塊對所述隨機數(shù)進行加密,并將加密后的隨機數(shù)通過所述在線可編程通信接ロ返回所述單片機,所述單片機用密鑰算法模塊和所述安全密鑰對所述加密后的隨機數(shù)進行解密,而后與原始隨機數(shù)進行比對判斷,在用戶和單片機之間提供第二重身份認證。通過兩重身份認證后,單片機進入在線可編程狀態(tài),用戶即可進行編程操作。非易失性存儲器可分為信息引導(dǎo)區(qū)和用戶程序區(qū)等,安全驗證碼和安全密鑰一般存儲在信息引導(dǎo)區(qū)下的信息區(qū)域,而用于的編程操作在用戶程序區(qū)內(nèi)進行。上述的安全密鑰認證中,可采用現(xiàn)有的任意ー種認證技木。還可在非易失性存儲器內(nèi)保存安全鎖位,用于在用戶通過第二重身份認證后,當(dāng)且僅當(dāng)所有的安全鎖位為擦除狀態(tài)時,才允許用戶對存儲器的用戶程序區(qū)進行讀寫訪問,能有效避免可能的誤操作。上述方法中,在線可編程通信接ロ可為UART接ロ、SPI接ロ、I2C接ロ或其它通用單片機通信接ロ。非易失性存儲器可為任意ー種已知的類型,如Flash存儲器或EEPROM存儲器。而密鑰算法模塊可為DES密鑰算法模塊,此時非易失性存儲器內(nèi)保存的安全密鑰為DES密鑰。密鑰算法模塊也可為RSA密鑰算法模塊,相應(yīng)地非易失性存儲器內(nèi)保存的安全密鑰為RSA密鑰。密鑰算法模塊還可為3DES密鑰算法模塊,相應(yīng)地非易失性存儲器內(nèi)保存的安全密鑰為3DES密鑰。在具體使用中,用戶端(上位編程器或上位機)也需要使用相同的密鑰算法模塊。本發(fā)明的ー個具體單片機在線編程身份認證過程,參見圖I和圖2給出,其中圖I為使用本發(fā)明的單片機的配置示意圖,圖2為本發(fā)明的身份認證流程示意圖I)單片機在上電或是系統(tǒng)復(fù)位后,系統(tǒng)在嵌入式非易失性存儲器的信息引導(dǎo)區(qū)(Boot-Ioader)內(nèi)執(zhí)行程序,主要為初始化好單片機外設(shè),打開在線編程通訊接ロ(可為UART接ロ),并且觸發(fā)計時器(Timer)開始計吋,Timer會在預(yù)設(shè)時間(如A時間)后產(chǎn)生中斷;2)在這個過程中,用戶(如上位編程器)就開始以預(yù)設(shè)時間(如B時間)為單位間隔,不停地通過UART接ロ向單片機發(fā)送安全驗證碼(可為8比特的認證碼);在上述兩個過程中,可產(chǎn)生如下幾種情況(I)在時間A內(nèi),如果單片機的UART接ロ沒有接收到任何數(shù)據(jù),則計數(shù)器產(chǎn)生中斷,單片機響應(yīng)中斷,進行系統(tǒng)軟復(fù)位,系統(tǒng)在嵌入式存儲器用戶程序區(qū)內(nèi)執(zhí)行程序;(2)在時間A內(nèi),如果單片機的UART接ロ接收到上位編程器發(fā)送的數(shù)據(jù),但將該數(shù)據(jù)和預(yù)存在非易失性存儲器中的安全驗證碼比較后,并不一致,此時單片機通過UART接ロ返回錯誤信息,讓上位編程器重新發(fā)送安全驗證碼。如果嘗試次數(shù)超時(即超過A時間),且第一重身份驗證還未通過,那么單片機進行系統(tǒng)軟復(fù)位,系統(tǒng)在嵌入式存儲器用戶程序區(qū)內(nèi)執(zhí)行程序;(3)在時間A內(nèi),如果單片機的UART接ロ接收到上位編程器發(fā)送的驗證數(shù)據(jù),且該驗證數(shù)據(jù)與用戶在非易失性存儲器(如Flash)內(nèi)預(yù)存的安全驗證碼一致,單片機通過UART接ロ返回正確消息;上述的B時間,具體大小應(yīng)滿足一次上位機發(fā)送安全驗證碼,和單片機通過UART接ロ返回一個響應(yīng)的時間;A時間的具體大小應(yīng)是B時間的整數(shù)倍,即表示通信雙方希望建
立第一重安全驗證的最多嘗試次數(shù)。3)在第一重安全驗證通過之后,即進行密鑰驗證。單片機從其上隨機數(shù)產(chǎn)生器(random number generator)中取出一段隨機數(shù),隨機數(shù)的長度可由通訊雙方?jīng)Q定,單片機通過UART接ロ將這段隨機數(shù)發(fā)送給上位編程器;4)上位編程器在接收到這段隨機數(shù)后,用DES密鑰算法模塊和預(yù)定好的密鑰(可為64比特密鑰)對其進行加密,之后將加密的數(shù)據(jù)通過UART接ロ返送回單片機;5)單片機在接收到這段加密數(shù)據(jù)后,通過其內(nèi)的DES密鑰算法模塊和用戶預(yù)存在非易失性存儲器(具體可為Flash)上的密鑰對此加密數(shù)據(jù)進行解密操作,并將解密結(jié)果與上輪自己產(chǎn)生的隨機數(shù)進行比對,如果結(jié)果一致,那么通過第二輪身份驗證,否則單片機通過UART接ロ返回認證錯誤信息,并重新進行步驟3到步驟5,嘗試次數(shù)可由通訊雙方預(yù)先決定。如果嘗試次數(shù)超過預(yù)定值,且第二重身份認證還未通過,那么單片機進行系統(tǒng)軟復(fù)位,系統(tǒng)在嵌入式存儲器用戶程序區(qū)內(nèi)執(zhí)行程序;6)在通過雙重認證后,單片機進入在線可編程狀態(tài),可直接進行編程操作。還可在Flash內(nèi)設(shè)置安全鎖位(LOCK BIT),具體可設(shè)為3比特的LOCK BIT,用以決定用戶程序存儲區(qū),保存在非易失性存儲器內(nèi)的安全驗證碼和密鑰的訪問權(quán)限。ー個具體例子可參見表1,當(dāng)3比特的安全鎖位均為“000”時,為鎖狀態(tài),不能進行編程操作;而在其他狀態(tài)時,為未鎖狀態(tài),可進行讀寫操作。在鎖狀態(tài)下吋,當(dāng)上位編程器發(fā)送解鎖命令后,整個用戶程序存儲區(qū)會被同時擦棹,以防止用戶通過MOVC指令讀出原有的用戶程序。解鎖后,用戶可以進行編程操作。也可以對8-bit驗證碼和64-bit密鑰進行讀寫操作,通過這種方式,用戶可以自行決定不定期地更換驗證碼和密鑰,從而達到更高的在線可編程安全性。表I
權(quán)利要求
1.一種單片機在線可編程的身份認證方法,其特征在于在所述單片機內(nèi)設(shè)置安全驗證碼和安全密鑰;先采用安全驗證碼的比對判斷方法來進行第一重身份認證;在通過第一重身份認證后,通過安全密鑰來進行第二重身份認證。
2.如權(quán)利要求I所述的身份認證方法,其特征在于在所述單片機上設(shè)有密鑰算法模塊、隨機數(shù)產(chǎn)生器、在線可編程通信接口和非易失性存儲器;在所述非易失性存儲器內(nèi)保存有安全驗證碼,用于和用戶通過所述在線可編程通信接ロ輸入的驗證碼進行比較,在用戶機和單片機之間提供第一重身份認證;非易失性存儲器內(nèi)還保存有安全密鑰,在用戶通過第一重身份認證后,從所述隨機數(shù)產(chǎn)生器中取出一段隨機數(shù)并發(fā)送給用戶,用戶在接收到所述隨機數(shù)后通過預(yù)存的安全密鑰和密鑰算法模塊對所述隨機數(shù)進行加密,并將加密后的隨機數(shù)通過所述在線可編程通信接ロ返回所述單片機,所述單片機用密鑰算法模塊和所述安全密鑰對所述加密后的隨機數(shù)進行解密,而后與原始隨機數(shù)進行比對,在用戶和單片機之間提供第二重身份認證。
3.如權(quán)利要求2所述的身份認證方法,其特征在于在所述非易失性存儲器內(nèi)還保存有安全鎖位,用于在用戶通過第二重身份認證后,當(dāng)且僅當(dāng)所有的安全鎖位為擦除狀態(tài)時,才允許用戶進行讀寫訪問。
4.如權(quán)利要求2或3所述的身份認證方法,其特征在于所述在線可編程通信接ロ為UART 接ロ、SPI 接ロ或 I2C 接ロ。
5.如權(quán)利要求2或3所述的身份認證方法,其特征在于所述非易失性存儲器為Flash存儲器或EEPROM存儲器。
6.如權(quán)利要求4所述的身份認證方法,其特征在于所述非易失性存儲器為Flash存儲器或EEPROM存儲器。
7.如權(quán)利要求2或3所述的身份認證方法,其特征在于所述密鑰算法模塊為DES密鑰算法模塊,所述非易失性存儲器內(nèi)保存的安全密鑰為DES密鑰。
8.如權(quán)利要求4所述的身份認證方法,其特征在于所述密鑰算法模塊為DES密鑰算法模塊,所述非易失性存儲器內(nèi)保存的安全密鑰為DES密鑰。
9.如權(quán)利要求2或3所述的身份認證方法,其特征在于所述密鑰算法模塊為RSA密鑰算法模塊,所述非易失性存儲器內(nèi)保存的安全密鑰為RSA密鑰。
10.如權(quán)利要求2或3所述的身份認證方法,其特征在于所述密鑰算法模塊為3DES密鑰算法模塊,所述非易失性存儲器內(nèi)保存的安全密鑰為3DES密鑰。
全文摘要
本發(fā)明公開了一種單片機在線可編程的身份認證方法,其包括在單片機內(nèi)設(shè)置安全驗證碼和安全密鑰;先采用安全驗證碼的比對判斷方法來進行第一重身份認證;在通過第一重身份認證后,通過安全密鑰來進行第二重身份認證。本發(fā)明的方法,在單片機在線可編程接口開放的情況下,保證了芯片內(nèi)部用戶程序存儲區(qū)不被未經(jīng)授權(quán)的非法用戶隨意訪問、程序讀取或是下載惡意代碼,從而實現(xiàn)既能通過在線可編程技術(shù)降低成品開發(fā)成本,又能保證用戶程序安全性的問題。
文檔編號H04L9/14GK102651686SQ201110043690
公開日2012年8月29日 申請日期2011年2月23日 優(yōu)先權(quán)日2011年2月23日
發(fā)明者景蔚亮 申請人:上海華虹集成電路有限責(zé)任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
双城市| 娱乐| 曲阜市| 富顺县| 阿勒泰市| 临桂县| 新晃| 化德县| 鹿泉市| 枞阳县| 皋兰县| 广汉市| 余江县| 满城县| 凭祥市| 冷水江市| 葵青区| 冕宁县| 北流市| 龙门县| 五寨县| 剑川县| 灵山县| 略阳县| 东乡县| 清镇市| 中西区| 读书| 凭祥市| 财经| 韶关市| 雅江县| 务川| 榆社县| 略阳县| 延津县| 和林格尔县| 额济纳旗| 凤山县| 顺义区| 泸州市|