2011-08-11 3 views
2

Есть ли проблемы с безопасностью с использованием атрибута InternalsVisibleTo с узлами с сильным именем? Я понимаю, что сборка, получающая информацию таким образом, должна иметь закрытый ключ для дешифрования сообщений, а внутри атрибута InternalsVisibleTo вы указываете открытый ключ в открытом тексте. Возможно ли кому-то изменить сборку dll и открытый ключ в атрибуте InternalsVisibleTo для совместного использования внутренних функций с сборками, изначально не предназначенными для совместного использования?C# - Проблемы безопасности с InternalsVisibleTo атрибутом

+2

Какие «сообщения» вы говорите? Имейте в виду, что если кто-то может изменить сборку, они все равно смогут запустить все это в режиме полного доверия, и в этот момент они могут делать все, что им нравится ... –

+1

«расшифровать сообщения»? Какие сообщения? Это не имеет никакого отношения к обмену сообщениями ... –

+1

Открытые ключи предназначены для публичного видения, отсюда и название. –

ответ

4

Это не имеет никакого отношения к шифрованию. И сильное имя для сборки InternalsVisibleTo является жестким требованием. Все, что он доказывает, это то, что кто-то создал сборку, имел доступ к тому же секрету, что и вы. Закрытый ключ. С очень сильной гарантией того, что кто-либо модифицирует сборку или пытается создать тот, который олицетворяет сборку, не может обеспечить такое же доказательство. Они не могут получить подписку таким же образом, не имея доступа к этому закрытому ключу.

Этого достаточно, чтобы гарантировать доверие. Если вы охраняете секретный ключ.