Понимание CAS в .NET Framework - PullRequest
1 голос
/ 12 мая 2009

Если я предоставлю доказательство .NET Framework, к которой принадлежит группа кодов, к которой принадлежит моя сборка, могу ли я предоставить ложные доказательства того, что я принадлежу к группе кодов доверенной зоны?

Я знаю, что такое политики безопасности, наборы разрешений, но я не понимаю, как инфраструктура проверяет доказательства, а затем на основе этих доказательств определяет группу кода.

Любое объяснение будет оценено.

Спасибо:)

Ответы [ 2 ]

0 голосов
/ 14 мая 2009

Различные методы BCL, которые позволяют вызывающей стороне предоставлять доказательства, сами защищены требованиями о разрешении. Абоненту обычно требуется по крайней мере SecurityPermission \ ControlEvidence, но часто требуется неограниченное разрешение (или «полное доверие»). (Поскольку SecurityPermission \ ControlEvidence предоставляется только локально установленному коду в соответствии с политикой CAS по умолчанию, в большинстве ситуаций практических различий практически нет.) Конечным результатом является то, что только код с высоким доверием может влиять на предоставление разрешений для любой данной сборки, контролируя ее свидетельства.

Если вы считаете, что нашли исключение из этого общего правила, не могли бы вы предоставить подробности?

0 голосов
/ 12 мая 2009

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

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

...