Bonnes pratiques de sécurité pour Information ProtectionSecurity best practices for Information Protection

Les kits SDK Information Protection fournissent un système robuste pour publier et utiliser tous les types d’informations protégées.Information Protection Software Development Kits (SDKs) provide a robust system for publishing and consuming protected information of all types. Pour rendre un système aussi fort que possible, les applications compatibles avec Information Protection doivent être créées en respectant des bonnes pratiques.To help a system be as strong as possible, information protection-enabled applications must be built using best practices. Les applications partagent la responsabilité de la gestion de la sécurité de cet écosystème.Applications share responsibility in helping maintain the security of this ecosystem. L’identification des risques de sécurité et la limitation de ces risques introduits au cours du développement d’applications permet de réduire la probabilité d’une implémentation logicielle moins sécurisée.Identifying security risks and providing mitigations for those risks introduced during application development helps to minimize the likelihood of a less secure software implementation.

Ces informations complètent l’accord juridique qui doit être signé afin d’obtenir les certificats numériques pour les applications utilisant les kits SDK.This information supplements the legal agreement that must be signed, to obtain digital certificates for applications using the SDKs.

Sujets non abordésSubjects not covered

Bien que les sujets suivants constituent des points importants dans la création d’un environnement de développement et d’applications sécurisées, ils n’entrent pas dans le cadre de cet article :Although the following subjects are important considerations for creating a development environment and secure applications, they're out of scope for this article:

  • Gestion de processus de développement logiciel : gestion de la configuration, sécurisation du code source, limitation des accès au code débogué et affectation de priorités aux bogues.Software development process management — Configuration management, securing source code, minimizing access to debugged code, and assigning priority to bugs. Pour certains clients, il est capital de disposer d’un processus de développement de logiciels plus sécurisé.For some customers, having a more secure software development process is of paramount importance to them. Certains clients prescrivent même un processus de développement.Some customers even prescribe a development process.
  • Erreurs de codage courantes : informations sur la prévention des dépassements de mémoire tampon.Common coding errors — Information for avoiding buffer overruns. Nous vous recommandons la version la plus récente de Writing Secure Code par Michael Howard et David LeBlanc (Microsoft Press, 2002) pour passer en revue ces menaces génériques et les solutions possibles.We recommend the latest version of Writing Secure Code by Michael Howard and David LeBlanc (Microsoft Press, 2002) to review these generic threats and mitigations.
  • Ingénierie sociale : inclut des informations sur les dispositifs de protection procéduraux et structurels qui vous permettent de vous protéger contre l’exploitation du code par des développeurs ou d’autres personnes au sein de l’organisation du fabricant.Social engineering — Includes information about procedural and structural safeguards, to help protect code against exploitation by developers or others within the manufacturer's organization.
  • Sécurité physique : inclut des informations sur le verrouillage de l’accès à votre base de code et la signature de certificats.Physical security — Includes information about locking down access to your code base and signing certificates.
  • Déploiement ou distribution de logiciels en version préliminaire : inclut des informations sur la distribution de votre logiciel bêta.Deployment or distribution of prerelease software — Includes information about distributing your beta software.
  • Gestion de réseau : inclut des informations sur les systèmes de détection d’intrusion sur vos réseaux physiques.Network management — Includes information about intrusion-detection systems on your physical networks.

Modèles de menace et préventionThreat models and mitigations

Les propriétaires d’informations numériques doivent être en mesure d’évaluer les environnements dans lesquels leurs ressources seront déchiffrées.Digital information owners need the ability to evaluate the environments in which their assets will be decrypted. Une déclaration des normes de sécurité minimales fournit aux propriétaires d’informations un cadre leur permettant de comprendre et d’évaluer le niveau de sécurité des applications.A statement of minimum security standards provides information owners with a framework for understanding and assessing the security level of the applications.

Certains secteurs, tels que le gouvernement et les soins de santé, incluent des processus de certification et d’accréditation et des normes qui peuvent s’appliquer à votre produit.Some industries, such as government and health care, have certification and accreditation processes and standards that may apply to your product. Répondre à ces recommandations de sécurité minimales ne constitue pas un substitut aux besoins d’accréditation uniques de vos clients.Meeting these minimum security recommendations isn't a substitute for the unique accreditation needs of your customers. Toutefois, les normes de sécurité ont pour but de vous aider à répondre aux besoins actuels et futurs de vos clients, et aucun investissement effectué au début du cycle de développement ne profitera à votre application.However, the intent of the security standards is to help you prepare for current and future customer requirements, and any investment you make early in the development cycle will benefit your application. Ces directives sont des recommandations : elles ne constituent pas un programme de certification Microsoft formel.These guidelines are recommendations, not a formal Microsoft certification program.

Il existe plusieurs catégories principales de vulnérabilités dans un système Rights Management Services, notamment :There are several major categories of vulnerabilities in a rights management services system including:

  • Fuite : des informations apparaissent dans des emplacements non autorisés.Leakage — Information appears in unauthorized locations.
  • Corruption : un logiciel ou des données sont modifiés de façon non autorisée.Corruption — Software or data is modified in an unauthorized manner.
  • Refus : une ressource informatique n’est pas disponible pour être utilisée.Denial — A computing resource isn't available for use.

Ces rubriques portent principalement sur les problèmes de fuites.These topics focus primarily on leakage issues. L’intégrité d’un système d’API dépend de sa capacité, au fil du temps, à protéger les informations et à autoriser l’accès seulement à des entités désignées.The integrity of an API system depends upon its ability, over time, to protect information, enabling access only to designated entities. Ces rubriques abordent également les problèmes de corruption.These topics also touch upon corruption issues. Les problèmes de refus ne sont pas couverts.Denial issues aren't covered.

Microsoft ne teste pas ni ne vérifie les résultats des tests liés au respect de la norme minimale.Microsoft doesn't test or review test results related to meeting the minimum standard. Le partenaire est responsable du respect des normes minimales.The partner is responsible for ensuring the minimum standards are met. Microsoft fournit deux niveaux supplémentaires de recommandations pour aider à limiter les menaces courantes.Microsoft provides two additional levels of recommendations to help mitigate common threats. En règle générale, ces suggestions sont cumulatives.In general, these suggestions are additive. Par exemple, le respect des recommandations préférées implique que vous respectez les normes minimales là où elles sont applicables, sauf indication contraire.For example, meeting preferred recommendations assumes that you have met minimum standards, where applicable, unless otherwise specified.

Niveau de normeStandard level DescriptionDescription
Norme minimaleMinimum standard Une application qui traite des informations protégées doit répondre à la norme minimale pour qu’elle puisse être signée avec le certificat de production reçu de Microsoft.An application that handles protected information must meet the minimum standard, before it can be signed with the production certificate received from Microsoft. Les partenaires utilisent généralement le certificat de hiérarchie de production, au moment de la publication finale du logiciel.Partners generally use the production hierarchy certificate, at the time of final release of the software. Les tests internes propres à un partenaire sont utilisés pour vérifier si l’application répond à cette norme minimale.A partner's own internal tests are used to verify whether the application meets this minimum standard. Le respect de la norme minimale n’est pas et ne doit pas être considéré comme une garantie de sécurité par Microsoft.Meeting the minimum standard isn't, and shouldn't be construed as, a guarantee of security by Microsoft. Microsoft ne teste pas ni ne vérifie les résultats des tests liés au respect de la norme minimale.Microsoft doesn't test or review test results related to meeting the minimum standard. Le partenaire est responsable du respect de ce minimum.The partner is responsible for ensuring the minimum is met.
Norme recommandéeRecommended standard Les instructions recommandées permettent d’optimiser la sécurité des applications et d’indiquer de quelle manière le SDK peut évoluer à mesure que des critères de sécurité supplémentaires sont implémentés.Recommended guidelines both chart a path to improved application security, and provide an indication of how the SDK may evolve as more security criteria are implemented. Les fournisseurs peuvent différencier leurs applications en développant selon ce niveau plus élevé des directives de sécurité.Vendors may differentiate their applications by building to this higher level of security guidelines.
Norme préféréePreferred standard Cette norme est la catégorie de sécurité la plus élevée actuellement définie.This standard is the highest category of security currently defined. Les fournisseurs qui développent des applications commercialisées comme hautement sécurisées doivent respecter cette norme.Vendors who develop applications marketed as highly secure should aim for this standard. Les applications conformes à cette norme sont susceptibles d’être moins vulnérables aux attaques.Applications that adhere to this standard are likely to be the least vulnerable to attack.

Logiciel malveillantMalicious software

Microsoft a défini des normes minimales requises que votre application doit respecter pour protéger le contenu contre des logiciels malveillants.Microsoft has defined minimum required standards that your application must meet to protect content from malicious software.

Importation de logiciels malveillants avec des tables d’adressesImporting malicious software by using address tables

Le SDK Information Protection ne prend pas en charge la modification de code à l’exécution ni la modification de la table d’adresses d’importation (IAT).The information protection SDK doesn't support code modification at run time or modification of the import address table (IAT). Une table d’adresses d’importation est créée pour chaque DLL chargée dans votre espace de processus.An import address table is created for every DLL loaded in your process space. Elle spécifie les adresses de toutes les fonctions importées par votre application.It specifies the addresses of all functions that your application imports. Une attaque courante consiste à modifier les entrées de la table IAT au sein d’une application, par exemple pour qu’elle pointe vers des logiciels malveillants.One common attack is to modify the IAT entries within an application to, for example, point to malicious software. Le SDK arrête l’application quand il détecte ce type d’attaque.The SDK stops the application when it detects this type of attack.

Norme minimaleMinimum standard

  • Vous ne pouvez pas modifier la table d’adresses d’importation dans le processus de l’application pendant l’exécution.You can't modify the import address table in the application process during execution. Votre application spécifie la plupart des fonctions appelées au moment de l’exécution à l’aide de tables d’adresses.Your application specifies many of the functions called at run time by using address tables. Ces tables ne peuvent pas être modifiées pendant ou après l’exécution.These tables can't be altered during or after run time. Entre autres choses, cette restriction signifie que vous ne pouvez pas effectuer le profilage de code dans une application signée à l’aide du certificat de production.Among other things, this restriction means you can't perform code-profiling on an application signed by using the production certificate.
  • Vous ne pouvez pas appeler la fonction DebugBreak à partir des DLL spécifiées dans le manifeste.You can't call the DebugBreak function from within any DLL specified in the manifest.
  • Vous ne pouvez pas appeler LoadLibrary si l’indicateur DONT_RESOLVE_DLL_REFERENCES est défini.You can't call LoadLibrary with the DONT_RESOLVE_DLL_REFERENCES flag set. Cet indicateur signale au chargeur d’ignorer la liaison aux modules importés, modifiant ainsi la table d’adresses d’importation.This flag tells the loader to skip binding to the imported modules, thereby modifying the import address table.
  • Vous ne pouvez pas modifier le chargement différé en apportant des modifications au commutateur d’éditeur de liens /DELAYLOAD à l’exécution ou après celle-ci.You can't alter delayed loading by making run-time or subsequent changes to the /DELAYLOAD linker switch.
  • Vous ne pouvez pas modifier le chargement différé en fournissant votre propre version de la fonction helper Delayimp.lib.You can't alter delayed loading by providing your own version of the Delayimp.lib helper function.
  • Vous ne pouvez pas décharger des modules qui ont été chargés en différé par des modules authentifiés alors que l’environnement du SDK Information Protection existe.You can't unload modules that are delay-loaded by authenticated modules, while the information protection SDK environment exists.
  • Vous ne pouvez pas utiliser le commutateur d’éditeur de liens /DELAY:UNLOAD pour activer le déchargement de modules différés.You can't use the /DELAY:UNLOAD linker switch to enable unloading of delayed modules.

Interprétation incorrecte des droits de licenceIncorrectly interpreting license rights

Si votre application n’interprète pas et n’applique pas correctement les droits spécifiés dans la licence d’émission du SDK, vous pouvez rendre des informations disponibles de différentes façons non prévues par le propriétaire.If your application doesn't correctly interpret and enforce the rights expressed in the SDK issuance license, you may make information available in ways that the information owner didn't intend. Par exemple, quand l’application permet à un utilisateur d’enregistrer des informations non chiffrées sur un nouveau support, alors que la licence d’émission confère uniquement le droit de les afficher.For example, when an application allows a user to save unencrypted information to new media, when the issuance license only confers the right to view the information.

Azure Information Protection (AIP)Azure Information Protection (AIP)

Le système de protection des informations organise les droits à quelques regroupements.The information protection system organizes rights a few groupings. Pour plus d’informations, consultez Configuration des droits d’utilisation pour Azure information protection.For more information, see Configuring usage rights for Azure Information Protection.

Azure Information Protection permet à un utilisateur de déchiffrer ou non des informations.AIP allows a user to either decrypt information or not. Les informations n’ont en soi aucune protection.The information doesn't have any inherent protection. Si un utilisateur dispose du droit de déchiffrer, l’API l’y autorise.If a user has the right to decrypt, the API permits it. L’application est responsable de la gestion ou de la protection de ces informations une fois que celles-ci sont en texte clair.The application is responsible for managing or protecting that information after it is in the clear. Une application est responsable de la gestion de son environnement et de son interface pour empêcher l’utilisation non autorisée d’informations.An application is responsible for managing its environment and interface to prevent the unauthorized use of information. Par exemple, la désactivation des boutons Imprimer et Copier si une licence accorde uniquement le droit VIEW (AFFICHER).For example, disabling the Print and Copy buttons if a license only grants the VIEW right. La suite de tests doit vérifier que votre application fonctionne correctement avec tous les droits de licence qu’elle reconnaît.Your test suite should verify that your application acts correctly on all the license rights that it recognizes.

Norme minimaleMinimum standard

  • L’implémentation par le client de droits XrML v.1.2 doit être cohérente avec les définitions de ces droits, comme décrit dans les spécifications XrML disponibles sur le site web de XrML (http://www.xrml.org).The customer implementation of XrML v.1.2 rights should be consistent with the definitions of these rights, as described in the XrML specifications, which are available at the XrML Web site (http://www.xrml.org). Tout droit spécifique à votre application doit être défini pour toutes les entités qui présentent un intérêt dans votre application.Any rights that are specific to your application must be defined for all entities that have an interest in your application.
  • Votre suite de tests et votre processus de test doit vérifier que votre application s’exécute correctement en fonction des droits qu’elle prend en charge.Your test suite and test process should verify that your application executes properly against the rights that the application supports. Elle doit également vérifier qu’elle n’agit pas en utilisant des droits non pris en charge.It should also verify that it doesn't act upon unsupported rights.
  • Si vous créez une application de publication, vous devez rendre disponible des informations expliquant les droits intrinsèques utilisés.If you're building a publishing application, you must make information available that explains the intrinsic rights used. Il s’agit des droits qui sont et de ceux qui ne sont pas pris en charge par l’application de publication, et de la façon dont ces droits doivent être interprétés.This includes those that are, and aren't, supported by the publishing application, and how these rights should be interpreted. En outre, l’interface utilisateur doit indiquer clairement à l’utilisateur final les implications de chaque droit accordé ou refusé pour une information spécifique.In addition, the user interface should make clear to the end user what the implications are of each right granted or denied an individual piece of information.
  • Les droits abstraits inclus dans de nouveaux droits implémentés par une application doivent être mappés à la nouvelle terminologie.Any rights that are abstracted, by inclusion in new rights implemented by an application, must be mapped to the new terminology. Par exemple, un nouveau droit appelé GESTIONNAIRE peut inclure des droits de COPIE, d’IMPRESSION et de MODIFICATION comme droits abstraits.For example, a new right called MANAGER might include as abstracted rights the PRINT, COPY, and EDIT rights.

Néant à l'heure actuelle.None at this time.

Norme préféréePreferred standard

Néant à l'heure actuelle.None at this time.

Étapes suivantesNext steps

Les bonnes pratiques pour implémenter des applications à l’aide du SDK Azure Information Protection incluent les articles suivants :Best practices for implementing applications by using the AIP SDK include the following articles: