• 您當前所在位置:主頁 > 新聞中心 > 行業動態 >
    新聞中心 / News
    聯系智融 / CONTACT US

    技術經理:13871093995

    郵箱:gongch@zronggsoft.com

    QQ: 點擊這里給我發消息 點擊這里給我發消息
    行業動態

    多密鑰加密方法

    發布時間:2015-06-15 14:22
      攻擊模型假定本文遵循如下幾點假設:(1)目標系統受W④X防御方法保護,攻擊者不能實施代碼注入類攻擊。但攻擊者具備修改進程中可寫內存的能力,攻擊者也可以通過程序中的漏洞獲得程序中的關鍵信息(如棧中返回地址值)。
      
      (2)攻擊者可以獲得用于發動攻擊的代碼碎片,如可從動態加載的庫函數中獲取足夠的代碼碎片。并能通過各種漏洞(如緩沖區溢出、格式化字符串等)篡改進程中的控制流數據(如返回地址、GOT、指針函數地址等),從而將程序的控制流轉移到程序中的任意代碼處,實施ROP攻擊。
      
      (3)攻擊者不能對操作系統及底層硬件環境發起攻擊,即當前的可信計算基僅包括操作系統和硬件。
      
      1.2密鑰指定位多密鑰加密方法是從一組程序啟動時隨機生成的密鑰集中取出任一密鑰用于返回地址值加密,而這一密鑰也將用于返回地址值的解密,
      
      
      ·多密鑰加密方法R【O]R[I】Rf2。]為了從密鑰集中取得隨機指定的密鑰,可將地址中的,z位作為密鑰指定位,并與一隨機值進行哈希運算,用計算得到哈希值定位密鑰。同時為了保證在解密時能引用相同的加密密鑰,需要保證經過加密后的返回地址值相應的密鑰指定位保持不變,在解密時利用相同的n位作為輸入,經哈希運算后取得同一密鑰。這里的加密算法采用異或運算,因此可對所有密鑰相應的n位設置為O,則加密后可保證地址值的n位保持不變。
      
      設在32位地址中,n位作為密鑰指定位,密鑰集R中共有2‘個密鑰,為保證每個密鑰都可被引用,可設置n>i。每個密鑰相應的n位均設置為0。
      
      密鑰指定的哈希運算可以是地址中n位值與程序啟動時生成的隨機值r相加,再取2‘模,即用的值就可確定密鑰。由于加密算法采用異或運算,因此在地址值加密后,n位的值不變。
      
      設攻擊者通過格式化字符串漏洞獲取某一加密后的地址值,與本地相同的地址異或運算后獲取一個密鑰。由于ROP攻擊中一般需要多個gadget實施攻擊,不同的gadget的起始地址均不同,不同的地址可能匹配不同的密鑰,因此攻擊者不可能利用單一密鑰偽裝gadget的地址值以繞過多密鑰防御方法。若密鑰集有2‘個密鑰,且一次ROP攻擊需要后個gadget,攻擊者在獲得一個密鑰情況下,除非后個都適應于該密鑰,則攻擊者可以破解多密鑰方法。此時的成功攻擊的概率為P。=(1/2‘)‘,若且2‘=32,則成功的概率僅為P.一9.09e一3。
      
      倘若攻擊者通過格式化字符串漏洞進一步獲取多個加密后的地址值,從而獲取密鑰集中的部分密鑰。但由于不清楚返回地址與密鑰的匹配關系,只能通過猜測來構造合適的返回地址值,在此種情況下成功攻擊的概率仍然為P,=(1/2‘)‘。在最壞的情況下,即使攻擊者可以獲得全部的密鑰,但仍只能猜測返回地址值與密鑰匹配關系來構造合適的惡意數據,成功攻擊的概率仍為P,。從攻擊者角度分析,攻擊者需要推測出密鑰與地址之間的匹配關系以實施成功的攻擊。
      
      密鑰指定位n的大小與有效性成正比,即凡越大,意味著可以設置更多的密鑰(即2‘的值越大),攻擊者成功猜測的概率也就越低,系統安全性越高。
      
      然而隨著密鑰指定位n的增大,由于部分地址中高比特位的值相似度較高,可能會造成哈希運算的值不夠分散,會集中分布在某一區間內。而這種情況有可能會造成密鑰集中某一段密鑰會被大量使用,若攻擊者使用這一段密鑰,則會間接提高攻擊者成功的概率。因此密鑰指定位n的選擇需要盡量避免地址中相似度較高的比特位,如地址高比特位。
      
      1.3密鑰迷惑位多個密鑰可以防止單一密鑰泄露后防御方法被繞過的問題,但是在最壞的情況下,攻擊者可以獲得全部的密鑰,此時雖然攻擊者不能從獲得的密鑰中直接推斷出返回地址與密鑰的匹配關系,但是有可能通過全部密鑰中比特位為0的數量和位置,推測出密鑰指定位。由于密鑰指定所用的哈希算法較為簡單,任意兩組泄露的加密返回地址值就有可能被攻擊者猜測出隨機值r。而一旦密鑰指定位凡和隨機值r被攻擊者所獲得,則意味著密鑰與地址之間的匹配關系被破解,多密鑰加密方法也隨即被破解。
      
      為有效應對n位被猜測及隨機值r被逆運算破解,防止返回地址與密鑰之間的匹配關系被攻擊者萬方數據陳林博等:用多密鑰加密方法防御面向返回編程的攻擊所獲知,可以通過在密鑰指定位(即n位)的相鄰兩端增設零,用以迷惑攻擊者,如圖2所示。將新增加的設置為零的比特位稱為密鑰迷惑位,其本質是防止攻擊者成功猜測聘的位置和大小。在增設密鑰迷惑位后,用m。i。表示密鑰中相同位為零的最小位的個數。攻擊者在獲取全部密鑰后,需要在m。i。位中猜測出正確的連續n位大小,然后才能通過逆哈希運算獲得隨機值r。
      
      增設密鑰迷惑位為了進一步降低攻擊者成功猜測n位的概率,增加攻擊難度,可將連續的凡位用離散的n位來替換。通過在地址中隨機指定離散的n位作為密鑰指定位,相應增設的密鑰迷惑位也將與密鑰指定位一起離散分布在地址中,如圖3所示。其中砒,]為密圖3 離散的密鑰指定位與密鑰迷惑位進制科片癱鑰集中的密鑰,m。、m:和m,代表在地址中分布的密鑰指定位和密鑰迷惑位的大小,因此m。。=m,+m,+m,。由于所有密鑰中其他比特位存在都為零的可能性,因此m。i。的數量會有所增加。
      
      需要注意的是,隨著m。i。位的增加,攻擊者猜測連續n位的難度也在增加。但是隨著密鑰中值為零的比特位相應增加(這等同于異或加密后的地址值中不變的位數也會增加),需要變化的比特位也相應減少。若m。i。位足夠大,攻擊者為提高成功率,可猜測地址中發生變化的32一m。i。位的值而非n位的信息(如n位的長度與位置)。這種攻擊方法在m。i。足夠大時能增加成功攻擊的概率,假設極端情況下m。,。=31,地址中只有一位在加密時需要改變,攻擊者只需要猜測唯一發生變化的比特位是0或l就能破解多密鑰方法,而此時的密鑰已經失去了意義。因此需要權衡考慮m。i。位的大小,本文第3節將分析這種攻擊成功的概率,以確定最優的m。i。1立。

    上一篇:用多密鑰加密方法防御面向返回編程的攻擊

    下一篇:多密鑰加密方法的實現

     
     
    點擊這里給我發消息

    經理電話:13871093995

    -->

    報價申請
    加密軟件價格申請
    技術咨詢
    加密軟件技術咨詢
    關注我們

    智融科技

    久久久久久久久久久精品