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