PKCS # 7 SignedData и несколько алгоритмов дайджеста

Я изучаю возможность обновления приложения с SHA1 в качестве алгоритма дайджеста SignedData PKCS # 7 по умолчанию до более сильных дайджестов, таких как SHA256, таким образом, чтобы сохранить обратную совместимость для средств проверки подписи, которые не поддерживают алгоритмы дайджеста, отличные от SHA1. Я хочу проверить свое понимание формата PKCS # 7 и доступных опций.

Думаю, я хочу переваривать содержимое сообщения с помощью SHA1 и SHA256 (или, в более общем плане, набора алгоритмов дайджеста), чтобы старые приложения могли продолжайте проверку с помощью SHA1, и обновленные приложения могут начать проверку с помощью SHA256 (в более общем смысле, предоставленный самый надежный дайджест), игнорируя более слабые алгоритмы.[Если есть лучший подход, дайте мне знать.]

Похоже, что в рамках стандарта PKCS # 7 единственный способ предоставить несколько дайджестов - это предоставить несколько SignerInfos, по одному для каждого алгоритма дайджеста. К сожалению, это может привести к чистому снижению безопасности, так как злоумышленник может удалить все, кроме SignerInfo, с помощью самого слабого алгоритма дайджеста, который сам по себе будет формировать действительную подпись. Правильно ли это понимание?

Если так, моя идея состояла в том, чтобы использовать настраиваемые атрибуты в поле AuthenticatedAttributes SignerInfo, чтобы предоставить дополнительные дайджесты сообщений для дополнительных алгоритмов дайджеста (оставив SHA1 в качестве алгоритма «по умолчанию» для обратной совместимости). Поскольку это поле аутентифицируется как единый блок, это предотвратит вышеуказанную атаку. Это кажется жизнеспособным? Есть ли способ добиться этого или чего-то подобного, не выходя за рамки стандарта PKCS?

6
задан emboss 17 August 2011 в 21:53
поделиться