Protocol-Design

容器格式是否與內部加密消息的安全性有關?

  • December 7, 2017

仍在**嘗試為我的移動應用程序設計一個完全二進制加密容器格式**,我在這裡詢問容器是否相關。

感謝Apple,我不能直接使用GPG,因為我既不能通過GPGME呼叫GPG(fork(2)不允許)也不能嵌入它(許可證衝突)

容器格式是一種簡單的ar(1)格式,它以純文字形式儲存其內容,然後可能使用 Gzip 等算法進行壓縮。我想知道容器格式是否會影響已加密數據的安全性,即作為獨立實體保存的 MAC 和 IV。

計劃是使用 AES-CTR(或 AES-CFB,或 AES-OFB,或我的自製密碼 SHA512-HMAC-OFB,由於其更大的塊大小,結果與 AES 一樣快)來加密數據和將其放入存檔文件(在data.obj存檔中),其初始化向量為普通格式(一些元數據(使用的算法,使用的明文壓縮,可能是使用者提供的純文字標籤)()iv.bin``key.bin``mac.bin``info.json

編輯

ar(1)格式在其文件頭中儲存文件名(最多 16 個字元)、所有者 UID/GID、修改時間、文件模式(權限)。

MAC(或簽名)是在“檢查存檔”上計算的:除 MAC(或簽名)本身之外的每個實體都在檢查存檔中,它也是ar(1)格式的,根據它們的文件名按二進制順序排序,保留它們的所有屬性(名稱、所有者、修改日期和文件模式)。

將評論轉換為答案…

瑞奇·德默

“使用的算法”應與密鑰一起儲存。“使用的明文壓縮,可能是使用者提供的標籤”應該進入 MAC。

傲遊陳

也就是說,算法根本不應該出現在容器中,而不是MAC本身的一切都應該包含在MAC中?

瑞奇·德默

是的。另請注意,壓縮可能有問題

傲遊陳

我忘記了非對稱加密的對稱密鑰可能出現在文件以及 key.bin 中。如何處理?

瑞奇·德默

如果您也使用公鑰,那麼您可能應該使用數字簽名,而不是 MAC。

引用自:https://crypto.stackexchange.com/questions/16041