文件系統隱寫術

嘿哈布爾。

我想向您介紹一個小型項目 隱寫術,是我在學習的空閒時間製作的。

我做了一個關於檔案系統中資訊隱藏儲存的專案(進一步 FS).
這可用於竊取用於教育目的的機密資訊。

文件系統隱寫術

選擇一個非常古老的 Linux FS 作為原型 ext2.

履行

實施注意事項

如果「解開」ext2標準是件好事,那麼你可以在FS中有一個所謂的替換它 超級街區,它提供有關係統的基本資訊。 我被發現後 區塊位圖 и 索引節點表。 幾乎立刻,將資訊記錄到目前空的 FS 區塊中的想法就誕生了。 現在值得考慮的是防止程式設計師武裝 十六進位編輯器.

如果您儲存隱藏資訊而不加密,那麼,即使它在檔案系統中很模糊,它仍然會太顯眼,特別是如果程式設計師知道要尋找什麼的話。 因此,決定對來源檔案的所有區塊進行加密。 我選擇了分組密碼 AES,但正如你所理解的,這並不重要。

為了在閱讀時將必要的區塊與所有其他區塊分開,決定在每個區塊的開頭添加一個特殊標記。 此令牌根據來源檔案中的區塊號進行加密。 這個技巧不僅可以立即找到必要的區塊,還可以識別它們的正確順序。

系統的一般工作原理。

文件系統隱寫術

錄音演算法

要點:

  • 首先向原始檔案系統寫入一些資訊;
  • 刪除此資訊(不一定是全部);
  • 將要隱藏的文件分成等長的區塊,並加入標記;
  • 加密這些區塊;
  • 將加密區塊放入空 FS 區塊中。

對於框圖愛好者

下面是記錄演算法的框圖。 此演算法接收四個文件作為輸入:
-可修改檔案系統的映像;
-受隱寫術保護的文件;
-帶有 AES 加密金鑰的檔案;
- 有標記的檔案。
文件系統隱寫術

值得注意的是,演算法有一個缺點:將檔案寫入 FS 後, 不得 將任何新資訊寫入 FS,因為任何新資訊都可能最終出現在我們指派給壓縮檔案的區塊中,儘管這也開啟了「快速覆蓋我們的蹤跡」的可能性。

但很明顯如何解決這個問題:有必要重寫在 FS 中寫入區塊的演算法。 這是一項可以理解但極其耗時的任務。
對於概念證明,我沒有實現這一點。

因此,將對 FS 進行以下更改;這是在隱寫術之前 FS 的樣子(之前錄製了音訊檔案)。
文件系統隱寫術
這就是 FS 的樣子,訊息已經被壓縮了。
文件系統隱寫術

讀取演算法

要點:

  • 知道金鑰和建構標記的方法,組成前 N 個標記,並保證 N 乘以檔案系統區塊的長度大於壓縮檔案的長度;
  • 在 FS 中以標記開始搜尋區塊;
  • 破解接收到的區塊並分離標記;
  • 以正確的順序收集生成的區塊並取得原始檔案。

對於框圖愛好者

下面是記錄演算法的框圖。 此演算法接收三個文件作為輸入:
- 檔案系統映像;
-帶有 AES 加密金鑰的檔案;
- 有標記的檔案。
文件系統隱寫術

程式運行後,會出現讀取文件,該文件將是從隱寫文件系統中提取的文件;如果密鑰或標記指定不正確,則讀取文件將為空。
(對於愛美的人來說,您不僅可以插入文件,還可以插入包含元資訊的「標頭」:文件名、權限、上次修改時間等)

啟動自動化

為了方便起見,編寫了 bash 腳本來在 Linux 上自動啟動(在 Ubuntu 16.04.3 LTS 上測試)。
讓我們一步步看一下啟動過程。
記錄:

  1. sudo Copy_Flash.sh “DEVICE” - 從 DEVICE(快閃記憶體)取得 FS 映像;
  2. ./Write.sh “FILE” “KEY” “MARKER” – 建立虛擬環境,下載必要的程式庫並執行寫入腳本;
  3. sudo ./Write_Flash.sh “DEVICE” – 將更改後的 FS 再次寫入 DEVICE。

讀:

  1. sudo Copy_Flash.sh “DEVICE” - 從 DEVICE(快閃記憶體)取得 FS 映像;
  2. ./Read.sh「KEY」「MARKER」-建立虛擬環境,下載必要的函式庫並執行skipt進行讀取;
  3. 在目前目錄中,開啟讀取檔案 - 這是壓縮資訊。

結論

這種隱寫術方法可能需要改進、額外的測試和擴展到更流行的檔案系統,例如 Fat32, NTFS и ext4.
但這項工作的目的是展示在檔案系統中進行資訊隱藏儲存的原理。
借助此類演算法,您可以無所畏懼地存儲信息,並且如果您知道密鑰,則可以不通過暴力(而是通過很長的算法)來破解這樣的系統,那麼在不知道密鑰的情況下,這在我看來,系統絕對穩定,但是,這可以作為單獨一篇文章的原因。

所有程式碼均在 Python 版本 3.5.2 中實作。 工作範例 在我的 YouTube 頻道上展示。 該專案的完整程式碼發佈在 GitHub上.
(是的,是的,我知道對於生產版本,你需要用「快速」的東西編寫,例如 C 😉)
在此實作中,隱寫術的輸入檔的大小不應超過 1000 kB。

我想向用戶表示感謝 帕維爾·MSTU 為規劃研究提供寶貴意見以及對文章設計的建議。

來源: www.habr.com

添加評論