2010-11-01 27 views
2

我有一個加密方案實現,組成部分:對稱密碼及其鏈接模式和HMAC算法被硬編碼到二進制文件中。此外,算法的參數(HMAC密鑰,對稱密鑰對稱IVEC)在二進制文件中指定,每個參數一個。打包加密方案的配置 - 希望只使用OpenSSL

我想指定在單個文件中選擇算法,模式及其參數。我需要自己的格式,還是可以使用現有的OpenSSL基礎結構?如果有基礎設施,有人可以提供一些參考。

p.s.,我知道配置文件解析代碼,以及OpenSSL中的PEM/x.509代碼。然而,由此構建的任何東西都不具有凝聚力。

+0

難道你不能簡單地腳本嗎?您當然可以將值和多個調用+配置參數放入腳本中。 – 2011-12-31 00:49:06

回答

0

我想指定一個文件

這種類型的靈活性聽起來像是你將允許用戶做出選擇的算法,和模式,以及它們 參數的選擇。不要這樣做,因爲他們可能會選擇一個不好的密碼(或密碼組合)。爲他們做好選擇。

對稱密碼及其鏈接模式和HMAC算法 硬編碼到二進制文件中。

我首先會看看經過身份驗證的加密模式 - EAX,CCM或GCM。我相信OpenSSL目前只有CCM(或者GCM?)。如果您不能使用已認證的加密模式,請轉到Encrypt-Then-Authenticate(即,使用HMAC或CMAC對加密文本進行加密然後進行身份驗證),這聽起來就像您正在做的一樣。

此外,該算法的參數(HMAC密鑰,對稱的密鑰 對稱的IVEC)

HMAC(和CMAC)是好的。不要使用CBC-MAC,因爲它在可變長度的消息中存在弱點。

對稱的鍵[二進制文件]

嗯...

對稱IVEC

的IV被視爲公共參數。隨機選擇IV作爲消息,並將其與密文一起發送。確保MAC密碼文本和IV都能檢測到篡改。

我需要我自己的格式,或者是這可能使用現有的OpenSSL基礎設施

BIO S代表I/O。編碼取決於你。您可以寫出原始字節,您可以Base {16 | 32 | 64}進行編碼,您可以將其編碼並存儲爲XML格式,也可以將其存儲爲名稱/值對。