Подписание блоков.NET

Вставление объявления функции parens создает выражение, которое оценивает к анонимной функции в. Поэтому первое вводное оценивает к функции.

"пустые parens" в конце вызывают определенную функцию, таким образом, "//делают интересный материал" сразу выполняется.

Это - способ выполнить код на лету, также не допуская переменные в глобальную область видимости.

то, Что проиллюстрировано здесь, однако, не имеет никакого отношения к закрытиям - по крайней мере, не непосредственно. Закрытия о поддержании лексического контекста после того, как родительская функция уже вышла.

24
задан devnull 26 November 2018 в 02:29
поделиться

5 ответов

И строгие имена, и цифровые подписи используют криптографию с открытым ключом для предоставления свидетельств о origin сборки, чтобы вы могли применить политику безопасности , чтобы определить, какие разрешения предоставлены сборке .

Они различаются не своими техническими деталями, а тем, какие проблемы они предназначены для решения.

Целью строгого имени является исключительно обеспечение того, чтобы , когда вы загружаете сборку по имени, вы загружаете именно ту сборку, которую вы считаете вы загружаете . Это только намеренное назначение строгого имени. Вы говорите: «Я хочу загрузить Frobber версии 4, полученной от FooCorp». Механизм строгого имени гарантирует, что вы действительно загрузите именно эту DLL, а не другую сборку под названием Frobber, версия 4, которая пришла от Dr. Evil Enterprises.

Для этого все, что требуется, - это знать токен открытого ключа, связанный с закрытым ключом FooCorp. Как вы узнали, что токен открытого ключа - это полностью ваше дело. Нет инфраструктуры, которая могла бы помочь вам безопасно получать эту информацию. От вас просто ожидают, что вы каким-то образом узнаете, что это такое.

Цель цифровой подписи из сертификата издателя - установить проверяемую цепочку идентичности и доверия . Цепочка доверия идет от фрагмента кода неизвестного или неопределенного происхождения до «доверенного корня» - объекта, которому вы настроили свою операционную систему для доверия. Вы скачиваете код, и код имеет цифровую подпись с сертификатом от FooCorp. Вы проверяете сертификат, и в нем говорится: «Эта программа предоставлена ​​FooCorp. VeriSign гарантирует точность этого сертификата». Поскольку VeriSign является одним из ваших доверенных корней, вы теперь уверены, что этот код действительно был получен от FooCorp.

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

Разница между строгими именами и цифровыми подписями подчеркивает сложность криптографии -основанная безопасность. Трудная проблема не в криптографии; это просто математика. Трудной проблемой является безопасное управление распределением информации о ключах и их связывание с правильными объектами. Сильные имена, поскольку они пытаются решить очень небольшую, но важную проблему, не имеют проблем с управлением ключами. Или, скорее, они навязывают вам, пользователю, проблему управления ключами. Цифровые подписи - это попытка автоматизировать безопасное распространение ключевой информации с помощью сертификатов, чтобы решить гораздо более сложные проблемы доверия и идентичности.

Это ясно?

(Отличный вопрос; это будет обсуждаться на ] мой блог 3 сентября.)

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

Это ясно?

(Отличный вопрос; это будет обсуждаться на ] мой блог 3 сентября.)

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

Это ясно?

(Отличный вопрос; это будет обсуждаться на ] мой блог 3 сентября.)

45
ответ дан 28 November 2019 в 23:04
поделиться

Как вы можете прочитать в этом предыдущем связанном вопросе , избежать вмешательства в сборку со строгим именем не так просто, как вы могли ожидать.

3
ответ дан 28 November 2019 в 23:04
поделиться

Цифровая подпись по сути является битом, который предотвращает подделку. После того, как сборка подписана, любые изменения сделают подпись недействительной, и clr будет знать, что ее не загружать.

Прочтите статью в википедии. Цифровые подписи предотвращают подделку любого цифрового документа. Не только сборки. Это объясняет это лучше, чем я когда-либо мог.

2
ответ дан 28 November 2019 в 23:04
поделиться

Эта запись блога Strong Naming vs Digital Signatures довольно хорошо объясняет это.

2
ответ дан 28 November 2019 в 23:04
поделиться

Я нашел интересное объяснение здесь . Публикация здесь для бумажного следа. Надеюсь, это может кому-то помочь.

1
ответ дан 28 November 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: