5 簽名機制和雜湊函數之間的綁定
本部分規定的簽名機制要求進行雜湊函數Hash的選擇。ISO/IEC 10118規定了雜湊函數。在使用時需要將簽名機制和雜湊函數進行綁定。如果沒有這種綁定,攻擊者可以使用較弱的雜湊函數(不是實際使用的),因此攻擊者可以仿造簽名。
數字簽名機制的使用者必須權衡實現綁定的不同方式的成本與效益,并做出評估。評估也必須包括可能存在的仿造簽名的成本評估。
注1:本部分使用的雜湊函數Hash的一個安全要求是“抗碰撞”。
注2:有很多方式能夠實現上述的綁定。以下選項按照危險程度的遞增列出:
a) 特殊的簽名機制需要特殊的雜湊函數。驗證進程應該使用此雜湊函數。ISO/IEC 14888-3給出了上述選項的實例:DSA機制要求使用專用的雜湊函數3(即SHA-1,在ISO/IEC 10118-3定義);
b) 允許一套雜湊函數,在證書域參數里明確指定使用的雜湊函數。在證書域里,驗證進程也應該使用此證書里說明的雜湊函數。在證書域之外,如果權威機構(CAs)不遵循用戶的策略,威脅就會增加。例如,外部CA生成一個證書,允許使用其它的雜湊函數,簽名偽造的問題可能出現。在這種情況下,被誤導的驗證方可能與此CA產生分歧;
c) 允許一套雜湊函數,使用其它方式指定雜湊函數,例如,在消息或者雙向協商里指定。驗證方應該使用此指定的雜湊函數。但是攻擊者可能使用另一個雜湊函數仿造簽名,所以存在威脅。
注3:上述c)中的“其它方式”可以是把雜湊函數標識符的形式包括在八位位組串d中。如果d中包括雜湊函數標識符,甚至當驗證方接受使用足夠弱的雜湊函數(其能夠導致消息被發現)的時候,攻擊者也不能欺騙地把相同八位位組d1的簽名重復使用在對不同八位位組d2的簽名上。但是在使用弱雜湊函數的情況下,攻擊者依舊能夠發現一個對“隨機的”d1的新簽名。
注4:通過要求在d1中出現指定的結構,就能夠防止注3中提到的產生一個對“隨機的”d1的簽名攻擊。例如,對d1做個長度限制,使其遠遠小于簽名機制的能力。對于許多數字簽名機制,盡管在消息中沒有包括雜湊函數標識符,如果掩碼生成函數MGF是基于雜湊函數的,那么d1的長度限制也能夠阻止攻擊者重復使用已存在的簽名。上述是假設弱雜湊函數是“一般目的”的雜湊函數,而不是專為仿造簽名而設計的。
GB/T 15851.3—2018 信息技術 安全技術 帶消息恢復的數字簽名方案 第3部分:基于離散對數的機制
推薦文章: