Как подписание с использованием строгого имени защищает от подделки набора сборок?

Подписание строгим именем (пара ключей хранится в файле. snk file) предназначен (среди прочего) для защиты от подделки сборок .

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

Но что мешает злонамеренной стороне подделать и мою сборку, и эту зависимую сборку другого разработчика и "отгрузку" они оба? Они берут мою сборку и эту сборку разработчика, подделывают и то, и другое, подписывают поддельную версию моей сборки любым ключом, затем добавляют ссылку на нее в поддельную версию зависимой сборки, подписывают ее и отправляют обе. Я имею в виду, что злонамеренная «доставка» двух сборок не должна быть намного сложнее, чем «доставка» одной сборки.

Как подписание строгими именами защищает от подделки нескольких сборок?

6
задан Community 23 May 2017 в 12:20
поделиться