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

  • 軟件加密


  • 加密芯片


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


  • 加密過程


  • 加密保護(hù)的攻與守


    • 破解思路1:從軟件入手,繞開加密點(diǎn)


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


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


    • PUF:物理上無法克隆



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


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


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


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


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


軟件加密的攻與防,是一個(gè)沒有終極結(jié)果的無限游戲,只會(huì)永遠(yuǎn)進(jìn)行下去。


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


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


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


上周末偶遇到當(dāng)時(shí)對(duì)接的技術(shù)人員,聊到了之前的那個(gè)產(chǎn)品,于是就有了此文。


純軟件加密

我們在安裝一些有版權(quán)的軟件時(shí),一般都會(huì)要求輸入一個(gè)序列號(hào)


當(dāng)這個(gè)序列號(hào)被輸入之后,它就與當(dāng)前這臺(tái)電腦的硬件信息進(jìn)行綁定


換句話說,如果把這個(gè)軟件安裝在另一臺(tái)電腦中時(shí),輸入同樣的序列號(hào),肯定是無法運(yùn)行的。


因?yàn)樵诘谝淮伟惭b的時(shí)候,軟件就會(huì)搜集當(dāng)前電腦的 CPU、硬盤、主板、網(wǎng)卡等硬件信息,并且把這些信息與序列號(hào)進(jìn)行綁定。


當(dāng)然了,每一個(gè)軟件選擇哪些硬件信息不是確定的。因?yàn)橐紤]到用戶會(huì)更換硬盤、更換網(wǎng)卡硬件設(shè)備等。


因此,大部分軟件都是搜集那些更換可能性比較小的硬件,并且對(duì)不同的硬件賦予不同的權(quán)重,來計(jì)算一個(gè)最終的結(jié)果。


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


其中的缺點(diǎn)很明顯:


  1. 無法做到唯一的標(biāo)識(shí)一臺(tái)設(shè)備:盡管對(duì)很多的硬件信息進(jìn)行采集,但是無法確定一臺(tái)電腦的絕對(duì)唯一性;


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


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


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


加密芯片

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


其實(shí)就是利用加密芯片本身,來保護(hù)另一個(gè)軟件或者硬件不被破解。


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


在軟件運(yùn)行的過程中,定期的與加密芯片進(jìn)行通信。


只有當(dāng)加密芯片返回正確的結(jié)果時(shí),軟件才會(huì)正常的執(zhí)行。


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


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


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

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


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


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


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


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


加密過程

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


當(dāng)我們把一款軟件部署到客戶的設(shè)備中時(shí),會(huì)為每一臺(tái)設(shè)備安裝加密狗的驅(qū)動(dòng)程序,并且配置一個(gè)加密狗硬件。


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


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


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


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


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


加密保護(hù)的攻與守

破解思路1:從軟件入手,繞開加密點(diǎn)

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


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


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


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


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


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

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


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


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


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


針對(duì)以上這兩點(diǎn),可以設(shè)計(jì)出相應(yīng)的反破解方式:


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


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


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

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


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


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


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


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


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


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


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


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


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


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


例如:在加密芯片之上增加一層覆銅保護(hù),這個(gè)覆銅同時(shí)充當(dāng)電源的角色。


當(dāng)剖片設(shè)備在磨掉這層覆銅時(shí),也就破壞了芯片的電源,這樣破解設(shè)備就無法通過探針等手段來干擾芯片的工作,因?yàn)樾酒纪V构ぷ髁?,壓根就不給你探測的機(jī)會(huì)。


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


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


PUF:物理上無法克隆

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


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


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


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


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


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


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


即使仿制了一個(gè)加密狗硬件,但是由于工藝的原因,芯片的物理結(jié)構(gòu)、電氣特性等都不相同,生成的秘鑰也是錯(cuò)誤的,無法與應(yīng)用程序進(jìn)行正確的加密、解密,從而達(dá)到了反破解的目的。


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


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


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


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


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



點(diǎn)擊上方名片關(guān)注公眾號(hào)



分享   點(diǎn)贊   在看 ??


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



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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉