晶元內部執行被保護程式是乙個很好的思路。但目前並不實用。主要原因的執行效率。
由於加密狗晶元的能力與終端使用者計算機的能力相差太遠,實際上它根本不可能執行任何核心程式段或複雜運算程式段。當然,帶有任何輸入輸出指令的程式段也是不可能被執行的。而且,被執行程式段必須是結構完整的,不能與其它程式段有複雜的呼叫關係。
基於以上原因,開發商在實際應用中很難從現有程式中抽出乙個比較好的部分載入到晶元內部。最後的結果要麼是重新寫一些適用於晶元執行的新演算法,並被上層軟體呼叫以判斷硬體是否合法(這就是為什麼將這種技術叫自定義演算法的原因,它實際上比較可行的是允許開發商開發一些專用的演算法);要麼是在現有程式中挑選一些無關緊要的輕量級的程式段放入晶元中。
帶來的問題是:
1)易用性極差。開發商選擇程式段(或編寫新的自定義的演算法)是乙個非常困難的過程,開發周期很長。此外,開發商往往要用一種新的、晶元能識別的程式語言來編寫(或重寫)要載入的演算法,並且要重構自己的軟體與這些演算法間的呼叫關係。 2)
安全性隱患。無論是新編寫的自定義演算法還是由程式中摘出的現有演算法,其安全性都是沒有經過評估的。與真正的安全產品中專業的安全演算法相比,它們或多或少都存在著較多的安全隱患。此外,無論是何種演算法,只要破解者掌握了其所有的輸入、輸出資料,就沒有任何安全性可言了。而恰恰,對於自定義演算法的實現在輸入、輸出資料的隨機性上和通訊路徑上的安全性上較專業產品的考慮都要少得多。
自定義排序演算法
1.自定義排序演算法 核心思想 確定第乙個元素是最大值,確定第二個元素是最大值,確定第倒數第二個元素是最大值。步驟 1.取出前幾個資料 不要最後乙個 2.與後面元素進行比較 3.發現更xx則交換 取出的 比較的 list01 43,15,5,67,87,9 for r in range len li...
關於自定義控制項引用自定義屬性那點事
自定義控制項相信是每個程式猿的高階必經之路,那在我們使用自定義控制項的時候,有時候會需要使用的我們自定義的屬性,這個時候怎麼辦呢?來,我們一步一步來看。首先,第一步先找到你的資源目錄,在values中建立attrs.xml檔案 第二步 建立你需要使用的自定義屬性 注意這裡有乙個declare sty...
WCF 關於自定義MessageHeader支援
我們在專案中有些公共資訊可以不通過方法引數提供,將這些資訊封裝到messageheader,通過客戶端提交給server。這種情況下我們需要注意wcf不同的例項模式 會話模式對header的支援情況 實力模式 instancecontextmode percall persession支援heade...