www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 小麥大叔
[導讀]純軟件加密加密芯片加密芯片的兩種硬件連接形式加密過程加密保護的攻與守破解思路1:從軟件入手,繞開加密點破解思路2:從加密狗的驅(qū)動程序入手,偽造驅(qū)動程序破解思路3:從加密狗硬件入手,仿制加密狗PUF:物理上無法克隆當你辛辛苦苦、歷經(jīng)萬難,成功開發(fā)出一套軟件的時候,如果有黑客從授權電...

  • 軟件加密


  • 加密芯片


  • 加密芯片的兩種硬件連接形式


  • 加密過程


  • 加密保護的攻與守


    • 破解思路1:從軟件入手,繞開加密點


    • 破解思路2:從加密狗的驅(qū)動程序入手,偽造驅(qū)動程序


    • 破解思路3:從加密狗硬件入手,仿制加密狗


    • PUF:物理上無法克隆



當你辛辛苦苦、歷經(jīng)萬難,成功開發(fā)出一套軟件的時候,如果有黑客從授權電腦上破解了軟件,然后大量拷貝、倒賣,你會是什么樣的心情?


如果你沒有感覺、或者無所謂的話,那只能說明目前寫的程序還不是足夠的優(yōu)秀,還沒有進入黑客的目光中~~


但是,在很多看不到的戰(zhàn)場上,軟件的破解和反破解大戲,時刻都在上演著。


以前聽過這么一個段子:任何一家公司都不會公開說自家的軟件是最安全的。


只要他說出來,就會分分鐘遭到破解,因為這樣的聲明,無疑是給黑客們下了一道挑戰(zhàn)書


軟件加密的攻與防,是一個沒有終極結果的無限游戲,只會永遠進行下去。


但是,這并不妨礙我們給自己的軟件,加上一道防火墻,在一定的范圍內(nèi),最大程度的保護自己的勞動成果。


這篇文章我們就來聊聊關于軟件加密的那些事!


這篇文章的素材,來源于兩年前為一個客戶開發(fā)的一款軟件。


上周末偶遇到當時對接的技術人員,聊到了之前的那個產(chǎn)品,于是就有了此文。


純軟件加密

我們在安裝一些有版權的軟件時,一般都會要求輸入一個序列號。


當這個序列號被輸入之后,它就與當前這臺電腦的硬件信息進行綁定


換句話說,如果把這個軟件安裝在另一臺電腦中時,輸入同樣的序列號,肯定是無法運行的。


因為在第一次安裝的時候,軟件就會搜集當前電腦的 CPU、硬盤、主板、網(wǎng)卡等硬件信息,并且把這些信息與序列號進行綁定。


當然了,每一個軟件選擇哪些硬件信息不是確定的。因為要考慮到用戶會更換硬盤、更換網(wǎng)卡硬件設備等。


因此,大部分軟件都是搜集那些更換可能性比較小的硬件,并且對不同的硬件賦予不同的權重,來計算一個最終的結果。


在很多的消費類產(chǎn)品、工業(yè)產(chǎn)品中,都是按照這樣的思路來對軟件產(chǎn)品進行保護的。


其中的缺點很明顯:


  1. 無法做到唯一的標識一臺設備:盡管對很多的硬件信息進行采集,但是無法確定一臺電腦的絕對唯一性;


  2. 無法阻止硬件信息復制:如果黑客知道了軟件的保護策略,他就可能去把多臺電腦的硬件信息修改成完全一樣的,這樣的話,所有這些電腦都變成“合法”的設備了;


也許,這樣的事情對于我們平常使用的電腦來說根本不會發(fā)生,但是在一些工業(yè)產(chǎn)品中,這樣的破解方式就不得不被重視了。


這樣的軟件保護方式,是所有純軟件加密保護的缺點,無法徹底的解決,只能通過使用各種小技巧來降低被破解的可能性。


加密芯片

加密芯片,就是專門用來進行加密的芯片,這樣說好像等于沒說一樣!


其實就是利用加密芯片本身,來保護另一個軟件或者硬件不被破解


我們這里就拿軟件舉例,它倆的邏輯關系如下:


在軟件運行的過程中,定期的與加密芯片進行通信。


只有當加密芯片返回正確的結果時,軟件才會正常的執(zhí)行。


如果加密芯片不存在、或者加密芯片是一個假的仿制品,那么被保護的軟件就可以立刻偵測到,從而停止運行,這樣就達到了保護的目的。


即使通過各種手段把軟件拷貝出來,放在另一臺設備中去執(zhí)行,由于沒有對應的加密芯片,因此軟件也會拒絕執(zhí)行。


加密芯片的兩種硬件連接形式

隨著軟、硬件的不斷發(fā)展,生產(chǎn)工藝的不斷提高,各種加密需求場景的層出不窮,加密芯片的存在形式也是多種多樣。


最常見的就是類似于信用卡使用的 U 盾那種形式,通過 USB 接口與電腦(或其他硬件設備)進行連接:


通常,把這種通過 USB 接口連接的加密設備稱作 Dongle(加密狗)。


另外,還有一種在嵌入式設備中比較常見的連接方式:把加密芯片通過一根 GPIO 口,與主控芯片進行通信,也就是采用單總線方式進行通信:


以上這兩種連接方式,僅僅是硬件上的不同而已,加密過程、原理都是一樣的!


加密過程

我們就拿USB加密狗來描述加密過程:


當我們把一款軟件部署到客戶的設備中時,會為每一臺設備安裝加密狗的驅(qū)動程序,并且配置一個加密狗硬件


每一個加密狗硬件中,都有一個唯一的ID,并且內(nèi)部被預先燒錄一個秘鑰,這個秘鑰就用來對數(shù)據(jù)進行加密和解密。


當我們的軟件需要驗證時,就調(diào)用加密狗驅(qū)動提供的 API 函數(shù)。


API 函數(shù)在接收到軟件調(diào)用時,就會通過 USB 口,與硬件加密狗進行通信,發(fā)送請求數(shù)據(jù)。


加密狗在接收到請求數(shù)據(jù)之后,把計算結果再通過 USB 發(fā)送給驅(qū)動程序,進而返回到應用程序。


在這個通信過程中,會使用秘鑰對數(shù)據(jù)進行加密、解密,以此來保證通信鏈路中的數(shù)據(jù)安全性。


加密保護的攻與守

破解思路1:從軟件入手,繞開加密點

所謂的加密點,就是指在應用程序中,調(diào)用加密狗驅(qū)動 API 函數(shù)的地方。


黑客可以對軟件的二進制代碼進行反編譯,結合加密狗驅(qū)動的 API 函數(shù)手冊,來分析、找出這些加密點,然后修改二進制代碼,來繞過這些加密點函數(shù)調(diào)用。


這樣的話,軟件就相當于是裸跑一樣了,完全與加密狗失去了數(shù)據(jù)交互。


對于這樣的破解方式,我們只能從軟件入手,增加黑客找出加密點的難度了。


例如:在代碼的很多個地方安裝加密點,在一些輔助的動態(tài)庫中安裝加密點,對加密點的 API 函數(shù)調(diào)用進行一些混淆處理,讓 API 函數(shù)調(diào)用的返回結果參與到軟件的業(yè)務邏輯中,這樣的話,就必須調(diào) API 函數(shù)才可以讓程序正常執(zhí)行。


破解思路2:從加密狗的驅(qū)動程序入手,偽造驅(qū)動程序

黑客們可以根據(jù)加密狗驅(qū)動的API手冊,自己寫一個偽造的驅(qū)動程序,其中包括合法驅(qū)動中所有的API函數(shù),每個函數(shù)的參數(shù)和返回值,都滿足手冊的說明。


這樣的話,偽造驅(qū)動程序中的API函數(shù),在接收到軟件的調(diào)用后,不會與加密狗進行通信,而是直接返回正確的結果給軟件,從而達到破解的目的。


從上圖可以看出:偽造的驅(qū)動程序在接收到程序的調(diào)用之后,就直接把“正確的”的結果返回了,壓根沒有加密狗硬件什么事情。


這樣的破解方式,利用的就是驅(qū)動程序中API函數(shù)中參數(shù)和返回值的靜態(tài)特性,而且我們也沒有對驅(qū)動程序的合法性進行驗證。


針對以上這兩點,可以設計出相應的反破解方式:


  1. 不要返回靜態(tài)不變的結果,而是利用一定的算法,或者是利用預先準備好的大批量的數(shù)據(jù)對,返回動態(tài)變化的結果給應用程序。這樣的話,黑客就無法通過分析 API 手冊或者抓包,來找到返回數(shù)據(jù)的規(guī)律;


  2. 可以使用一些額外的加密、指紋信息等,來對驅(qū)動代碼的合法性進行檢驗;


破解思路3:從加密狗硬件入手,偽造加密狗

之前我們說到:在加密狗硬件中,存在一個唯一的ID和預先放置的秘鑰。


如果要破解加密狗硬件,那么黑客們就必須通過各種手段來復制這些信息。


芯片也能克?。繘]接觸過硬件的小伙伴,可能感覺小小的芯片里成千上萬的晶體管電路怎么可能抄的出來?


可以理解。但是,這個正和逆本身就是共存的。


搞板級硬件的同學可能抄過別人的PCB板,IC逆向類似,只不過需要專業(yè)的工具而已。


如今芯片級別的逆向工程已經(jīng)是非常的成熟了。


對于一些簡單的芯片,2K~3K 的價格就可以分分鐘幫你逆向出來。


關于這部分內(nèi)容,我不是特別了解,具體的步驟比較多,這里就不一一敘述了。


總之,請你相信:芯片逆向是可能的,這都不是事!放幾張截圖來感受一下:


道高一尺,魔高一丈!攻與守的無限游戲,總是此消彼長。


針對剖片這種終極大招,加密芯片的廠商也不敢懈怠,也想出了很多的破解方式。


例如:在加密芯片之上增加一層覆銅保護,這個覆銅同時充當電源的角色。


當剖片設備在磨掉這層覆銅時,也就破壞了芯片的電源,這樣破解設備就無法通過探針等手段來干擾芯片的工作,因為芯片都停止工作了,壓根就不給你探測的機會。


還要另外一種比較牛逼的方式,來阻止黑客獲取加密狗中的秘鑰信息。


一般來說,秘鑰文件都是存儲在芯片中的非易失性存儲設備(NVM)中的,如果是這樣的,黑客們就比較容易從存儲設備中讀取秘鑰信息。


PUF:物理上無法克隆

近年來,一種稱作 PUF(Physically Unclonable Functions 物理上無法克隆) 的技術非常熱,它通過一種無形的方式來“存儲”秘鑰信息。具體來說是下面這樣:


基于PUF的全新安全加密模式是通過硬件PUF安全芯片加密,在 NVM 中只存儲密文信息。


密鑰在PUF芯片內(nèi)部物理結構中,使用即生成,使用后銷毀,全程不對外輸出任何密鑰信息。


黑客只能在NVM中獲取密文信息,沒有PUF密鑰,永遠無法解密。


簡單的說,就是在加密芯片中并不存在秘鑰信息。


當加密芯片自己需要使用秘鑰的時候,就利用芯片的各種物理結構、電氣特性,動態(tài)的生成秘鑰,使用之后立刻銷毀。


這樣的話,黑客就無從獲取秘鑰了。


即使仿制了一個加密狗硬件,但是由于工藝的原因,芯片的物理結構、電氣特性等都不相同,生成的秘鑰也是錯誤的,無法與應用程序進行正確的加密、解密,從而達到了反破解的目的。


關于這部分的內(nèi)容,我也不是很專業(yè),找了下面一些資料,感興趣的小伙伴可以再深入了解一下:


SRAM PUF技術(https://www.intrinsic-id.com/zh-CN/SRAM的PUF/)


PUF :一種讓芯片更安全的新技術(http://news.eeworld.com.cn/IoT/ic494467.html)


PUF物聯(lián)網(wǎng)安全秘鑰生成技術(https://www.wulianwangiot.com/iotanquan/4395.html)


—— The End ——
推薦好文 點擊藍色字體即可跳轉(zhuǎn)? 非常重要!單片機模塊化設計讓我事半功倍
? 推薦一個直接用于項目開發(fā)的PID庫!很好用,很穩(wěn)定? 80家MCU國產(chǎn)和國外廠家匯總!? 推薦一款我私藏已久的串口示波神器
歡迎轉(zhuǎn)發(fā)、留言、點贊、分享給你的朋友,感謝您的支持!



點擊上方名片關注公眾號



分享   點贊   在看 ??


以“三連”行動支持優(yōu)質(zhì)內(nèi)容!



本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉