Podpisanie z silną nazwą (keypair przechowywane w pliku .snk) jest (między innymi) przeznaczone na protect against forging assemblies.W jaki sposób podpisywanie pod silną nazwą chroni przed tworzeniem zestawu złożeń?
Na przykład: Wysyłam moje zgłoszenie podpisane silną nazwą, następnie jakiś inny programista używa mojego zestawu, więc jego zestaw zawiera teraz odniesienie do mojego, wspominając o kluczu publicznym mojego klucza. Niektórzy użytkownicy instalują ten zestaw deweloperski i mój zespół iz przyjemnością używają kodu tego dewelopera. Jeśli ktokolwiek spróbuje wyprodukować zestaw wyglądający jak moja wersja i przekonać użytkownika, że jest to "aktualizacja warta instalacji", to podrobiony montaż nie zostanie załadowany, ponieważ kontroluję mój klucz i ten sfałszowany montaż nie jest podpisany za pomocą tego samego klucza. . Ok spoko.
Co jednak powstrzymuje złośliwą stronę przed wykuwaniem zarówno mojego zespołu, jak i tego zależnego zespołu innego programisty i "wysyłania" ich obu? Chwytają mój zespół i ten zespół dewelopera, manipulują obydwoma, podpisują fałszywą wersję mojego zespołu za pomocą dowolnego klucza, a następnie dodają do niego odwołanie do sfałszowanej wersji zespołu zależnego, podpisują go również, a następnie wysyłają oba. Mam na myśli złośliwie "wysyłanie" dwóch zestawów nie powinno być dużo trudniejsze niż "wysyłka" jednego zestawu.
W jaki sposób podpisywanie z silnymi nazwami chroni przed fałszowaniem wielu zespołów?
Cóż, mocne imię również tego zespołu. Ciągnij ten ciąg, a skończysz na EXE. Jeśli atakujący może to również zastąpić, nie ma sensu używanie silnych nazw. –
@Hans Passant: Chyba masz rację.Czy możesz dodać to jako odpowiedź? – sharptooth