曰韩免费无码AV一区二区,男女啪啪高清无遮挡免费,精品国产自在精品国产精

<delect id="ygmw2"><rp id="ygmw2"></rp></delect>
      1. <object id="ygmw2"><option id="ygmw2"></option></object>
        <object id="ygmw2"><option id="ygmw2"></option></object>

        您當前的位置:   首頁 > 新聞中心
        提升軟件安全性,軟件加密的終極攻略(一)
        發布時間:2019-07-11 10:42:14   閱讀次數:

        此文章為攬閣信息JACK撰寫,未經授權,禁止一切復制和轉發行為!


        提升軟件安全性,軟件加密的終極攻略(圖1)

        在上一篇文章《Sentinel LDK究竟安全嗎?看“愛好者”的破解之路!》中,我對客戶提出的一些問題進行了總結,并提供了一個案例。今天將多年從業的一些技術干貨分享給大家。


        提升軟件安全性,軟件加密的終極攻略(圖2)

        經過幾十年的發展,在軟件開發過程中,加密保護已經成為一個必須且必要的環節。軟件開發商需要清楚的理解一個問題,我們的軟件究竟需要保護什么?


        軟件的版權數量

        對于非SaaS類軟件來說,軟件開發商通過銷售軟件的拷貝來獲取利潤,因此軟件版權數量的可控性是一個非常重要議題。確保市面上不出現盜版軟件,是保障軟件開發商核心利益的重點。


        軟件的核心算法

        軟件開發商在自己開發的軟件中內置了很多核心算法,這些算法體現了軟件價值度,是軟件售價定位的重要依據。將核心算法進行安全有效的保護,即可確保長期利益,也可免去軟件開發商的顧慮。


        在軟件加密時,我們不能閉門造車,要知子之矛,才能造己之盾。下面我們來了解一下對軟件攻擊的基本類型。

        提升軟件安全性,軟件加密的終極攻略(圖3)

        對于采用的加密鎖或加密狗加密保護的軟件來說,破解“愛好者”們可以攻擊的點,正式軟件開發商發布到市場上的東西,這里面包括了:

        • 軟件開發商發布到市場上的軟件程序

        • 軟件和加密鎖/加密狗進行數據交互的驅動程序

        • 硬件/軟件加密產品。(硬鎖或軟鎖)


        對軟件程序的破解

        “愛好者”們對軟件程序進行逆向,直接將程序內的加密點全部排除后,重新編譯軟件。在這一點上,對框架解釋型的軟件(.net和Java)進行逆向是非常輕而易舉的。而C語言開發的程序,逆向后通過對匯編語言進行跟蹤,在所有報錯指令上方加入goto,即完成了破解。


        對驅動層的破解

        通過對驅動層進行破解,監聽驅動層內軟件和加密鎖之間的每一次對話,將交互數據做成彩虹表(Rainbow Table)。當全部交互數據都被監聽后,就可以利用Rainbow Table制作一個模擬鎖,將軟件的請求轉到Rainbow Table中進行匹配并返回??蓞⒖级昵皫D Key的游戲破解方式,將游戲套件中的CD Key光盤制作成虛擬光盤,通過虛擬光驅加載。


        對加密鎖/加密狗的破解

        “愛好者”們通過讀取加密鎖/加密狗內的信息,并將信息自行寫入一只空白的同型號產品中,即完成了加密鎖/加密狗的復制工作。


        軟件安全的一個重要問題!你是否每天都在編寫安全代碼?

        提升軟件安全性,軟件加密的終極攻略(圖4)

        對保護不善的應用程序,只需要執行數個快速更改就可以使它在不附加加密鎖的情況下運行,例如:“愛好者”們可能會使用“代碼補丁”或“ 偽造應用程序組件”。


        在這種情況下,軟件開發商需要組織專業的人員與團隊,不停的研究黑客破解技術以及行業最新動態,從而不斷的對軟件進行安全升級。這種成本無疑是高昂的。

        這也是為什么眾多軟件開發商會選擇攬閣信息。通過我們所提供的專業性產品,以及依據軟件開發商實際產品情況而定制的解決方案,軟件開發商可以輕松的面對現在的問題和未來可能出現的問題。


        現在讓我們進入正題,談談如何保護你的軟件產品。

        首先選擇一款可以放心使用的加密鎖產品!

        提升軟件安全性,軟件加密的終極攻略(圖5)

        這里插入一個基礎性的信息安全知識。如上圖所示,當一個明文數據通過加密算法,用指定的密鑰進行加密后,可以得到密文。通常情況下加密算法有“對稱算法”、“非對稱算法”、“哈希運算”等,此處我們不對算法本身展開說明。

        被加密的數據或軟件程序,如果沒有加密時的密鑰,是無法進行逆向的。因此密鑰的安全是加密安全的核心!


        以Sentinel LDK加密鎖為例

        • 密鑰被封裝在硬件內,任何人(包括軟件開發商)無法獲知密鑰的實際Value。

        • 只有軟件開發商可以通過SDK創建密鑰并將密鑰寫入硬件。

        • 軟件只能使用密鑰。

        • 加密鎖采用專有芯片,硬件的制作、序列號的燒制都有一系列的安全機制進行管控。

        提升軟件安全性,軟件加密的終極攻略(圖6)

        這樣的機制,確保加密鎖本身很難被破解,加密鎖被復制的可能性也就不存在了。


        提升軟件安全性,軟件加密的終極攻略(圖7)

        在驅動層上,軟件每次與加密鎖之間的會話和數據傳遞,都通過白盒安全通道的技術方式進行保護,以防止驅動層被破解監聽。


        技巧一:使用API+外殼的方式,對程序進行保護

        提升軟件安全性,軟件加密的終極攻略(圖8)

        將您基于API 元素的自定義保護與外殼保護結合起來。增加額外的保護層。即使攻擊者成功地刪除了外殼,應用程序內部依然是受到保護的-因為這兩種保護方式都是獨立運行的。


        提升軟件安全性,軟件加密的終極攻略(圖9)

        在對加密鎖的任何一次訪問過程中,通常都會涉及到以上的二叉樹判斷,這里包含2個重要的關注點:正確與錯誤的判斷、判斷接點數量。


        如果每次程序運行到加密點都進行正確或錯誤的判斷,那么“愛好者”們也很容易跟蹤到這個加密點。

        如果加密點的數量非常少,那么將全部加密點找到,也變得很簡單。


        技巧二:頻繁查詢

        提升軟件安全性,軟件加密的終極攻略(圖10)

        我們在程序中可以多加入一些加密點,使查詢變得頻繁,以增加破解難度。


        技巧三:將增加查詢點的復雜度

        提升軟件安全性,軟件加密的終極攻略(圖11)

        查詢內容單一,容易被跟蹤、被識別。

        查詢內容復雜,就耗費時間進行分析判斷,破解難度增加。

        這里我們可以通過建立明密文表(查詢響應機制)的形式來增加復雜度。讓每一個加密點每次發送請求和返回結果都不一樣。

        提升軟件安全性,軟件加密的終極攻略(一)(圖12)

        例如:創建一個1000行的隨機字符串表,并且將這個表內數據用加密鎖內的密鑰進行加密,得到密文表。每次查詢時,可以用循環或隨機數的形式,將明文表內的單行數據進行加密,密文值到密文表內進行比對。


        其他技巧,放在后續的文章中介紹。請您關注攬閣信息官網!


        連載文章列表:

        如需購買相關加密鎖/加密狗產品,或希望獲取更多信息安全解決方案,請隨時與我們攬閣信息聯系。



        攬閣信息可提供的部分安全產品和解決方案信息

        聯系攬閣信息,您可以獲取到更多滿足全球合規性要求的信息安全產品資料,以及相關的整體解決方案的相關資料。如:


        您還可以得到攬閣信息所提供的優質服務。

        攬閣信息 · 值得您信賴的信息安全顧問!


        相關閱讀

        購買咨詢電話
        021-54410609
        曰韩免费无码AV一区二区,男女啪啪高清无遮挡免费,精品国产自在精品国产精