Ответ 1
> > сборки, так что вы можете применить strong > политика безопасности, чтобы определить, какие разрешения предоставляются сборке.Они отличаются не своими техническими деталями, а проблемами, которые они должны решить.
Цель сильного имени заключается исключительно в том, чтобы , когда вы загружаете сборку по имени, вы загружаете именно ту сборку, которую, по вашему мнению, загружаете. Это только по назначению сильного имени. Вы говорите: "Я хочу загрузить Frobber, версия 4, которая появилась в FooCorp". Сильное устройство имен гарантирует, что вы действительно загружаете именно эту DLL, а не другую сборку под названием Frobber, версия 4, которая поступает от Dr. Evil Enterprises.
Чтобы достичь этого, требуется только то, что вы знаете токен открытого ключа, связанный с закрытым ключом FooCorp. Как вы узнаете, что токен открытого ключа - это ваш бизнес. Нет никакой инфраструктуры, которая бы помогла вам получить эту информацию безопасно. Вы просто должны знать, что это такое.
Цель цифровой подписи из сертификата издателя - установить проверяемую цепочку идентификации и доверия. Цепочка доверия исходит от куска кода неизвестного или неопределенного происхождения до "доверенного корня" - объекта, которому вы настроили свою операционную систему, чтобы доверять. Вы загружаете некоторый код, а код имеет цифровую подпись с сертификатом от FooCorp. Вы проверяете сертификат, и он говорит: "Эта программа исходит от FooCorp. Точность этого сертификата поручена VeriSign". Поскольку VeriSign является одним из ваших надежных корней, теперь у вас есть уверенность, что этот код действительно появился в FooCorp.
Обратите внимание, насколько сложнее проблема, решаемая цифровыми сигнатурами. Мы не пытаемся просто определить, является ли этот код кода, связанного с этим именем, или нет? Вместо этого мы пытаемся определить, откуда взялся этот код, и кто ругает за существование компании, предположительно ответственной, и следует ли нам доверять этой компании?
Различие между сильными именами и цифровыми подписями подчеркивает, что трудно использовать для криптозащиты. Жесткая проблема - не криптография; это просто математика. Жесткой проблемой является безопасное управление распределением информации о ключах и привязка их к правильным объектам. Сильные имена, потому что они пытаются решить очень небольшую, но важную проблему, не имеют проблем с управлением. Или, скорее, они навязывают вам проблему управления ключами, пользователь. Цифровые подписи направлены на автоматизацию безопасного распространения ключевой информации через сертификаты, чтобы решить гораздо более сложные проблемы доверия и идентификации.
Это ясно?
(Большой вопрос: это будет 3-го сентября мой блог)