一篇帶給你軟件加密的攻與防
- 纯软件加密
- 加密芯片
- 加密芯片的两种硬件连接形式
- 加密过程
- 加密保护的攻与守
破解思路1:从软件入手,绕开加密点
破解思路2:从加密狗的驱动程序入手,伪造驱动程序
破解思路3:从加密狗硬件入手,仿制加密狗
PUF:物理上无法克隆
当你辛辛苦苦、历经万难,成功开发出一套软件的时候,如果有黑客从授权电脑上破解了软件,然后大量拷贝、倒卖,你会是什么样的心情?
如果你没有感觉、或者无所谓的话,那只能说明目前写的程序还不是足够的优秀,还没有进入黑客的目光中~~
但是,在很多看不到的战场上,软件的破解和反破解大戏,时刻都在上演着。
以前听过这么一个段子:任何一家公司都不会公开说自家的软件是最安全的。
只要他说出来,就会分分钟遭到破解,因为这样的声明,无疑是给黑客们下了一道挑战书。
软件加密的攻与防,是一个没有终极结果的无限游戏,只会永远进行下去。
但是,这并不妨碍我们给自己的软件,加上一道防火墙,在一定的范围内,最大程度的保护自己的劳动成果。
这篇文章我们就来聊聊关于软件加密的那些事!
这篇文章的素材,来源于两年前为一个客户开发的一款软件。
上周末偶遇到当时对接的技术人员,聊到了之前的那个产品,于是就有了此文。
纯软件加密
我们在安装一些有版权的软件时,一般都会要求输入一个序列号。
当这个序列号被输入之后,它就与当前这台电脑的硬件信息进行绑定。
换句话说,如果把这个软件安装在另一台电脑中时,输入同样的序列号,肯定是无法运行的。
因为在第一次安装的时候,软件就会搜集当前电脑的 CPU、硬盘、主板、网卡等硬件信息,并且把这些信息与序列号进行绑定。
当然了,每一个软件选择哪些硬件信息不是确定的。因为要考虑到用户会更换硬盘、更换网卡硬件设备等。
因此,大部分软件都是搜集那些更换可能性比较小的硬件,并且对不同的硬件赋予不同的权重,来计算一个最终的结果。
在很多的消费类产品、工业产品中,都是按照这样的思路来对软件产品进行保护的。
其中的缺点很明显:
也许,这样的事情对于我们平常使用的电脑来说根本不会发生,但是在一些工业产品中,这样的破解方式就不得不被重视了。
这样的软件保护方式,是所有纯软件加密保护的缺点,无法彻底的解决,只能通过使用各种小技巧来降低被破解的可能性。
加密芯片
加密芯片,就是专门用来进行加密的芯片,这样说好像等于没说一样!
其实就是利用加密芯片本身,来保护另一个软件或者硬件不被破解。
我们这里就拿软件举例,它俩的逻辑关系如下:
在软件运行的过程中,定期的与加密芯片进行通信。
只有当加密芯片返回正确的结果时,软件才会正常的执行。
如果加密芯片不存在、或者加密芯片是一个假的仿制品,那么被保护的软件就可以立刻侦测到,从而停止运行,这样就达到了保护的目的。
即使通过各种手段把软件拷贝出来,放在另一台设备中去执行,由于没有对应的加密芯片,因此软件也会拒绝执行。
加密芯片的两种硬件连接形式
随着软、硬件的不断发展,生产工艺的不断提高,各种加密需求场景的层出不穷,加密芯片的存在形式也是多种多样。
最常见的就是类似于信用卡使用的 U 盾那种形式,通过 USB 接口与电脑(或其他硬件设备)进行连接:
通常,把这种通过 USB 接口连接的加密设备称作 Dongle(加密狗)。
另外,还有一种在嵌入式设备中比较常见的连接方式:把加密芯片通过一根 GPIO 口,与主控芯片进行通信,也就是采用单总线方式进行通信:
以上这两种连接方式,仅仅是硬件上的不同而已,加密过程、原理都是一样的!
加密过程
我们就拿USB加密狗来描述加密过程:
当我们把一款软件部署到客户的设备中时,会为每一台设备安装加密狗的驱动程序,并且配置一个加密狗硬件。
每一个加密狗硬件中,都有一个唯一的ID,并且内部被预先烧录一个秘钥,这个秘钥就用来对数据进行加密和解密。
当我们的软件需要验证时,就调用加密狗驱动提供的 API 函数。
该 API 函数在接收到软件调用时,就会通过 USB 口,与硬件加密狗进行通信,发送请求数据。
加密狗在接收到请求数据之后,把计算结果再通过 USB 发送给驱动程序,进而返回到应用程序。
在这个通信过程中,会使用秘钥对数据进行加密、解密,以此来保证通信链路中的数据安全性。
加密保护的攻与守
破解思路1:从软件入手,绕开加密点
所谓的加密点,就是指在应用程序中,调用加密狗驱动 API 函数的地方。
黑客可以对软件的二进制代码进行反编译,结合加密狗驱动的 API 函数手册,来分析、找出这些加密点,然后修改二进制代码,来绕过这些加密点函数调用。
这样的话,软件就相当于是裸跑一样了,完全与加密狗失去了数据交互。
对于这样的破解方式,我们只能从软件入手,增加黑客找出加密点的难度了。
例如:在代码的很多个地方安装加密点,在一些辅助的动态库中安装加密点,对加密点的 API 函数调用进行一些混淆处理,让API函数调用的返回结果参与到软件的业务逻辑中,这样的话,就必须调 API 函数才可以让程序正常执行。
破解思路2:从加密狗的驱动程序入手,伪造驱动程序
黑客们可以根据加密狗驱动的API手册,自己写一个伪造的驱动程序,其中包括合法驱动中所有的API函数,每个函数的参数和返回值,都满足手册的说明。
这样的话,伪造驱动程序中的 API 函数,在接收到软件的调用后,不会与加密狗进行通信,而是直接返回正确的结果给软件,从而达到破解的目的。
从上图可以看出:伪造的驱动程序在接收到程序的调用之后,就直接把“正确的”的结果返回了,压根没有加密狗硬件什么事情。
这样的破解方式,利用的就是驱动程序中 API 函数中参数和返回值的静态特性,而且我们也没有对驱动程序的合法性进行验证。
针对以上这两点,可以设计出相应的反破解方式:
破解思路3:从加密狗硬件入手,伪造加密狗
之前我们说到:在加密狗硬件中,存在一个唯一的 ID 和预先放置的秘钥。
如果要破解加密狗硬件,那么黑客们就必须通过各种手段来复制这些信息。
芯片也能克隆?没接触过硬件的小伙伴,可能感觉小小的芯片里成千上万的晶体管电路怎么可能抄的出来?
可以理解。但是,这个正和逆本身就是共存的。
搞板级硬件的同学可能抄过别人的 PCB 板,IC 逆向类似,只不过需要专业的工具而已。
如今芯片级别的逆向工程已经是非常的成熟了。
对于一些简单的芯片,2K~3K 的价格就可以分分钟帮你逆向出来。
关于这部分内容,我不是特别了解,具体的步骤比较多,这里就不一一叙述了。
总之,请你相信:芯片逆向是可能的,这都不是事!放几张截图来感受一下:
道高一尺,魔高一丈!攻与守的无限游戏,总是此消彼长。
针对剖片这种终极大招,加密芯片的厂商也不敢懈怠,也想出了很多的破解方式。
例如:在加密芯片之上增加一层覆铜保护,这个覆铜同时充当电源的角色。
当剖片设备在磨掉这层覆铜时,也就破坏了芯片的电源,这样破解设备就无法通过探针等手段来干扰芯片的工作,因为芯片都停止工作了,压根就不给你探测的机会。
还要另外一种比较牛逼的方式,来阻止黑客获取加密狗中的秘钥信息。
一般来说,秘钥文件都是存储在芯片中的非易失性存储设备(NVM)中的,如果是这样的,黑客们就比较容易从存储设备中读取秘钥信息。
PUF:物理上无法克隆
近年来,一种称作 PUF(Physically Unclonable Functions物理上无法克隆)的技术非常热,它通过一种无形的方式来“存储”秘钥信息。具体来说是下面这样:
- 基于PUF的全新安全加密模式是通过硬件PUF安全芯片加密,在 NVM 中只存储密文信息。
- 密钥在PUF芯片内部物理结构中,使用即生成,使用后销毁,全程不对外输出任何密钥信息。
- 黑客只能在NVM中获取密文信息,没有PUF密钥,永远无法解密。
简单的说,就是在加密芯片中并不存在秘钥信息。
当加密芯片自己需要使用秘钥的时候,就利用芯片的各种物理结构、电气特性,动态的生成秘钥,使用之后立刻销毁。
这样的话,黑客就无从获取秘钥了。
即使仿制了一个加密狗硬件,但是由于工艺的原因,芯片的物理结构、电气特性等都不相同,生成的秘钥也是错误的,无法与应用程序进行正确的加密、解密,从而达到了反破解的目的。
关于这部分的内容,我也不是很专业,找了下面一些资料,感兴趣的小伙伴可以再深入了解一下:
SRAM PUF技术(https://www.intrinsic-id.com/zh-CN/SRAM%E7%9A%84PUF/)
PUF :一种让芯片更安全的新技术(http://news.eeworld.com.cn/IoT/ic494467.html)
PUF物联网安全秘钥生成技术(https://www.wulianwangiot.com/iotanquan/4395.html)
本文转载自微信公众号「 IOT物联网小镇」,可以通过以下二维码关注。转载本文请联系 IOT物联网小镇公众号。
推薦系統(tǒng)
雨林木風(fēng) winxp下載 純凈版 永久激活 winxp ghost系統(tǒng) sp3 系統(tǒng)下載
系統(tǒng)大小:0MB系統(tǒng)類型:WinXP雨林木風(fēng)在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)知名品牌,雨林木風(fēng)WindowsXP其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,是一款穩(wěn)定流暢的系統(tǒng),雨林木風(fēng) winxp下載 純凈版 永久激活 winxp ghost系統(tǒng) sp3 系統(tǒng)下載,有需要的朋友速度下載吧。
系統(tǒng)等級(jí):進(jìn)入下載 >蘿卜家園win7純凈版 ghost系統(tǒng)下載 x64 聯(lián)想電腦專用
系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win7蘿卜家園win7純凈版是款非常純凈的win7系統(tǒng),此版本優(yōu)化更新了大量的驅(qū)動(dòng),幫助用戶們進(jìn)行舒適的使用,更加的適合家庭辦公的使用,方便用戶,有需要的用戶們快來下載安裝吧。
系統(tǒng)等級(jí):進(jìn)入下載 >雨林木風(fēng)xp系統(tǒng) xp系統(tǒng)純凈版 winXP ghost xp sp3 純凈版系統(tǒng)下載
系統(tǒng)大小:1.01GB系統(tǒng)類型:WinXP雨林木風(fēng)xp系統(tǒng) xp系統(tǒng)純凈版 winXP ghost xp sp3 純凈版系統(tǒng)下載,雨林木風(fēng)WinXP系統(tǒng)技術(shù)積累雄厚深耕多年,采用了新的系統(tǒng)功能和硬件驅(qū)動(dòng),可以更好的發(fā)揮系統(tǒng)的性能,優(yōu)化了系統(tǒng)、驅(qū)動(dòng)對(duì)硬件的加速,加固了系統(tǒng)安全策略,運(yùn)行環(huán)境安全可靠穩(wěn)定。
系統(tǒng)等級(jí):進(jìn)入下載 >蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 V2023 X64位系統(tǒng)下載
系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win10蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)的蘿卜家園品牌,(win10企業(yè)版,win10 ghost,win10鏡像),蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 ghost鏡像 X64位系統(tǒng)下載,其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,蘿卜家園win10純凈版是一款穩(wěn)定流暢的系統(tǒng),一直以來都以用戶為中心,是由蘿卜家園win10團(tuán)隊(duì)推出的蘿卜家園
系統(tǒng)等級(jí):進(jìn)入下載 >蘿卜家園windows10游戲版 win10游戲?qū)I(yè)版 V2023 X64位系統(tǒng)下載
系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win10蘿卜家園windows10游戲版 win10游戲?qū)I(yè)版 ghost X64位 系統(tǒng)下載,蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)的蘿卜家園品牌,其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,蘿卜家園win10純凈版是一款穩(wěn)定流暢的系統(tǒng),一直以來都以用戶為中心,是由蘿卜家園win10團(tuán)隊(duì)推出的蘿卜家園win10國內(nèi)鏡像版,基于國內(nèi)用戶的習(xí)慣,做
系統(tǒng)等級(jí):進(jìn)入下載 >windows11下載 蘿卜家園win11專業(yè)版 X64位 V2023官網(wǎng)下載
系統(tǒng)大小:0MB系統(tǒng)類型:Win11蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,windows11下載 蘿卜家園win11專業(yè)版 X64位 官網(wǎng)正式版可以更好的發(fā)揮系統(tǒng)的性能,優(yōu)化了系統(tǒng)、驅(qū)動(dòng)對(duì)硬件的加速,使得軟件在WINDOWS11系統(tǒng)中運(yùn)行得更加流暢,加固了系統(tǒng)安全策略,WINDOWS11系統(tǒng)在家用辦公上跑分表現(xiàn)都是非常優(yōu)秀,完美的兼容各種硬件和軟件,運(yùn)行環(huán)境安全可靠穩(wěn)定。
系統(tǒng)等級(jí):進(jìn)入下載 >
相關(guān)文章
- 如何解決銳龍2200g死機(jī)藍(lán)屏
- Win8.1本地搜索為什么無法使用
- Win8.1無線網(wǎng)絡(luò)不穩(wěn)定/掉線怎么辦
- 電腦機(jī)箱漏電怎么消除?電腦機(jī)箱漏電是哪里的問題?
- 電腦開不了機(jī)怎么辦?電腦無法開機(jī)怎么解決?
- 硬盤雙擊無法打開的問題該怎么辦
- 風(fēng)行下載速度慢甚至是為0怎么辦?風(fēng)行播放器下載問題及解決方法匯總
- 蘋果回應(yīng)新的iOS惡意軟件YiSpector:已在iOS8.4中解決該問題
- 沒有路由器怎么連無線 160wifi 解決沒有路由器連接無線問題
- 維棠FLV下載視頻失敗問題匯總及解決方法
- Word2016 出現(xiàn)“此功能看似已中斷 并需要修復(fù)”問題解決方案(圖文)
- Cisco管理的35個(gè)常見問題及解答
- NanoStudio怎么用?NanoStudio使用方法及常見問題
- IE瀏覽器登錄網(wǎng)上銀行時(shí)出現(xiàn)崩潰問題的解決辦法
熱門系統(tǒng)
推薦軟件
推薦應(yīng)用
推薦游戲
熱門文章
常用系統(tǒng)
- 1win11最新娛樂版下載 技術(shù)員聯(lián)盟x64位 ghost系統(tǒng) ISO鏡像 v2023
- 2電腦公司windows7純凈版 ghost x64位 v2022.05 官網(wǎng)鏡像下載
- 3外星人系統(tǒng)Win11穩(wěn)定版系統(tǒng)下載 windows11 64位穩(wěn)定版Ghost V2022
- 4win11一鍵裝機(jī)小白版下載 外星人系統(tǒng) x64位純凈版下載 筆記本專用
- 5蘿卜家園Ghost win10 64位中文版專業(yè)版系統(tǒng)下載 windows10純凈專業(yè)版下載
- 6【國慶特別版】番茄花園Windows11高性能專業(yè)版ghost系統(tǒng) ISO鏡像下載
- 7青蘋果系統(tǒng) GHOST WIN7 SP1 X64 專業(yè)優(yōu)化版 V2024
- 8深度技術(shù)ghost win7純凈版最新下載 大神裝機(jī)版 ISO鏡像下載
- 9雨林木風(fēng)windows11中文版免激活 ghost鏡像 V2022.04下載