<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    SHA算法基本認證原理

    VSole2021-09-22 07:46:12

    SHA(Secure Hash Algorithm,安全哈希算法)主要適用于數字簽名,也是一種不可逆的MAC算法,但比MD5算法更加安全。目前它有三種主要的版本,即SHA-0、SHA-1、SHA-2和SHA-3。其中SHA-2和SHA-3版本中又有多種不同子分類,如在SHA-2中又根據它們最終所生成的摘要消息長度的不同又包括SHA-224、SHA-256、SHA-384和SHA-512等幾種。

    1. SHA算法基本認證原理

    整個SHA算法的認證原理與MD5算法認證原理極為相似,同樣先把原始消息劃分成固定長度的塊,最后加上用于標識原始消息長度的位(不同SHA版本中用于標識原始消息長度的位數不一樣),再結合共享密鑰(可以是共同設置的預共享密鑰,也可以是對端公鑰),利用一系列的邏輯算法生成固定長度的消息摘,用于在接收端進行消息完整性驗證和消息源身份認證。

    在各種版本SHA算法中(因為SHA-3的算法與其他SHA版本的算法有較大不同,故在此不作介紹),進行散列運算時所涉及的一些參數特性不完全相同,具體如表1所示。從表中可以看出,SHA-0、SHA-1算法與MD5類似,都是把輸入原始消息的二進制串劃分成512位的塊,最后一塊的最后64位用于表示原始消息的長度,不足512位時也要進行填充。

    表1 主要MAC算法的基本參數特性比較

    2. SHA算法消息填充原理

    SHA算法中在進行消息分塊時也可能要進行填充。其填充的方法與MD5算法一樣,也是先加1位“1”,然后填充若干位“0”。如SHA-0和SHA-1最后會把劃分和填充后的消息與共享密鑰進行80輪的邏輯運算處理,得到一個160位的摘要消息。但SHA-0和SHA-1仍然容易出現碰撞(即有可能多個不同消息運算后得到相同的摘要),所以目前主要是采用SHA-2版本。

    下面僅以SHA-512(也有寫成SHA2-256的)為例介紹其基本的摘要運算過程。其他SHA版本的基本摘要算法類似。

    (1)把包括密鑰和初始消息在內的二進制比特串(假設稱之為“原始消息”,小于2128),以及在最后新增一個用于記錄原始消息二進制長度的128位一起被劃分成一個個1024位(32個32位字長)的塊;

    當采用SHA-512進行運算時,如果原始消息長度大于等于2128時,只取前面2128?1位進行摘要運算。

    (2)同樣再對以上劃分的1024位的塊經過系列“與”(And)、“或”(OR)、“非”(NOT)、“異或”(AOR)邏輯算法(具體算法我們可以不做了解)處理后,輸出8個64位分組,將這8個64位分組級聯后將生成一個512位散列值(消息摘要)。

    這里同樣涉及“填充”操作,因為大多數原始消息(包括密鑰和初始消息),加上128位后可能仍不能恰好被1024整除,也就是原始消息的二進制位數除以1024后的余數不是896(1024-128=896),這時就表明需要對原始信息進行填充處理了。但這里同樣有兩種情況:一種是余數小于896,另一種就是余數大于896。

    如果原始消息二進制位數除以1024后的余數小于896,則先在原始消息的最后一個1024位塊的最后填充一個1,然后再填充若干位0,使得該塊的原始消息總長度等于896位,然后加上用于標識原始消息長度的128位,正好形成一個1024位的塊。

    如一個有1500位的消息,則可劃分成兩個1024位的塊:第一個塊是1024位全部為原始消息;第二個塊中有476位原始消息,然后進行填充:先在最后填充1位“1”,再填充419位“0”,使得476位原始信息+1位,1+419位,0=896位,最后再附上128位用于標識原始信息長度(1500)的值。

    如果如果原始消息二進制位數除以1024后的余數大于896,這時要新增一個1024位的塊了。首先是在原始消息的最后一個1024位塊的最后填充一個1,然后再填充若干位0,使得該塊的原始消息總長度等于1024位;接著再新增一個塊,前面896位均填充0,再加上用于標識原始消息長度的128位,形成新的一個1024位塊。

    如有一個1924位的消息,則最終會劃分成三個1024位的塊:第一個塊是1024位全部為原始消息;第二個塊中有900位原始消息,然后進行填充:先在最后填充1位“1”,再填充123位“0”,使得900位原始信息+1位,1+123位,0=1024位;最后是一個新增的塊,也要進行填充:先在前面填充896位0,最后再附上128位用于標識原始信息長度(1924)的值。

    二進制填充
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    近日,“Grandoreiro”銀行木馬針對墨西哥汽車和機械制造商的工人,以及西班牙一家化學品制造商的員工進行攻擊。2022 年 6 月,Zscaler分析師發現Grandoreiro 銀行惡意軟件的攻擊活動。它涉及部署一個 Grandoreiro 惡意軟件變種,該變種具有幾個新功能以逃避檢測和反分析,以及改進的 C2 系統。
    依賴于特定硬件環境的固件無法完整模擬,需要hook掉其中依賴于硬件的函數。LD_PRELOAD的劫持對于特定函數的劫持技術分為動態注入劫持和靜態注入劫持兩種。網上針對LD_PRELOAD的劫持也有大量的描述
    本文根據上述模型和算法實現了一個基于word2vec和LSTM的簡單模型用于判斷兩個函數或者兩個指令序列是否相似。總體框架函數嵌入LSTM是RNN的一個變體,由于RNN容易梯度消失無法處理長期依賴的問題。
    最近,QEMU 的一個bug導致 kexec 之后的內核崩潰,因為 kexec-ed 內核將無法解壓縮壓縮的 initrd。此錯誤僅影響在 QEMU 中使用壓縮內聯的新 Linux 內核。物理機器上的 kexec,以及在 QEMU 中使用壓縮的 initrd 引導 Linux 內核的其他方法,均不受影響。當然,在 QEMU 中,使用未壓縮的initrd來創建新Linux內核是有效的,因此,如果您想在 QEMU中使用基于kexec的引導加載程序,則可能必須使用未壓縮的initrd才能引導目標系統。
    Padre是一款功能強大的高級Padding Oracle安全測試工具,在該工具的幫助下,廣大研究人員可以輕松針對CBC模式加密執行Padding Oracle攻擊測試,以審查和測試目標加密模式的安全性。
    據InQuest、Zscaler、Cyfirma等研究組織報告,地下市場最近冒出了一款名為Mystic Stealer的新惡意軟件,能夠從近40個Web瀏覽器和70多個瀏覽器擴展中竊取憑據,主要針對加密貨幣錢包、Steam和Telegram進行攻擊,并且還采用了多種機制來規避分析。試驗結果表明,Mystic Stealer采用代碼操作技術逃避了大多數防病毒產品的檢測。Mystic Stealer的這些能力及其在地下論壇中收獲的好評進一步吸引了不法分子的注意,需要警惕其對組織和個人有可能構成的重大威脅。
    第1步:檢查系統語言 與許多惡意軟件類似,BAZARLOADER會手動檢查系統的語言以避免在其母國開展惡意攻擊。如果語言標識符大于0x43或小于0x18,則將其視為有效,這樣BAZARLOADER才會繼續執行。如果這個互斥對象已經存在,惡意軟件也會自行終止。線程首先嘗試獲取臨界區對象的所有權并檢查是否啟用了創建標志。
    分析Cobalt Strike Payload
    2021-12-11 06:49:22
    原始Payload Cobalt Strike 的Payload基于 Meterpreter shellcode,例如 API 哈希(x86和x64版本)或http/https Payload中使用的url checksum8 算法等等。 x86 默認的 32 位原始負載的入口點以典型指令開始,CLD (0xFC),然后是CALL指令,并PUSHA (0x60)作為 API 哈希算法的第一條
    0X00前言好兄弟一直讓我寫一篇關于自動化掃描漏洞的文章,由于在公司實習沒時間寫一些文章,這段時間離職閑下來
    VPN:AES加密算法原理
    2021-09-26 12:14:34
    AES(Advanced Encryption Standard,高級加密標準)是美國國家標準與技術研究院(NIST)在2001年建立了電子數據的加密規范。它是一種分組加密標準,每個加密數據塊大小固定為128位(16個字節),最終生成的加密密鑰長度有128位、192位和256位這三種。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类