Comment : rendre les assemblys APTCA inaccessibles à un code de confiance partielle

L'attribut AllowPartiallyTrustedCallersAttribute (APTCA) permet au code d'un niveau de confiance partiel d'accéder au code d'un niveau de confiance suffisant dans les assemblys signés. Lorsque l'attribut APTCA est appliqué à un assembly, il marque cet assembly comme autorisant des appelants dotés d'un niveau de confiance partiel pour la durée de vie de l'assembly. Cela peut représenter une faille de sécurité si un assembly, une fois installé, expose des ressources protégées au code d'un niveau de confiance partiel. Pour résoudre ce problème, vous pouvez définir une valeur de Registre et indiquer que l'attribut APTCA de cet assembly doit être ignoré.

Important

La suppression possible de la confiance partielle d'un assembly dépend d'une clé de Registre, comme décrit dans la procédure suivante.Si une application s'exécute sous un compte ne disposant pas de l'autorisation de liste de contrôle d'accès (ACL) pour accéder à la clé de Registre, le paramètre n'est pas effectif et autorise les appelants dotés d'une confiance partielle à accéder à l'assembly.Cela entraîne une élévation de privilège involontaire.Vous devez vous assurer que les droits ACL sont configurés pour cette clé et qu'elle peut ainsi être lue pour tous les assemblys.

Pour supprimer la confiance partielle d'un assembly

  1. Créez une clé sous la clé HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\APTCA dans le Registre système. Utilisez un nom de clé qui contient les informations du nom fort pour l'assembly. Ce nom doit inclure le nom simple, le numéro de version, la culture (qui peut être neutre), le jeton de clé publique et la version du fichier de l'assembly. Voici un exemple de clé valide : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\APTCA\Microsoft.Office.Interop.Visio, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, FileVersion=11.0.3216.0.

  2. Créez une valeur DWORD avec un nom de type APTCA_FLAG et une valeur de 1 pour supprimer la visibilité de confiance partielle de cet assembly.