Хеширование и подписывание двоичных файлов

Если вы хотите убедиться, что файл действителен (не поврежден и получен из правильного / ожидаемого источника), вы можете сделать две вещи: хеширование и подпись .

Для целей моего вопроса хеширование означает предоставление хеш-кода файла (вместе с файлом) для загрузки. Клиент загружает хэш и файл, повторно вычисляет хеш и проверяет, соответствует ли он загруженному хешу; это «доказывает», что файл не был изменен.

Подпись означает использование схемы публично-частного шифрования, при которой вы подписываете двоичный файл открытым ключом, а клиент использует закрытый ключ для проверки того, что вы действительно подписали ключ.

Основываясь на этих определениях, я действительно не понимаю, в чем заключается главное преимущество подписания чего-либо по сравнению с хешированием. Оба они должны доказать, что файл не был подделан.

Единственное, что я вижу, это то, что при хешировании скомпрометированный сервер может означать, что кто-то также скомпрометирует хеш и заменит вредоносный двоичный файл на соответствующий ключ; но при использовании схемы «публично-частный», пока закрытый ключ остается закрытым, невозможно подделать вредоносный файл.

Или я что-то упустил?

10
задан ashes999 19 October 2011 в 21:00
поделиться