La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Windows Rights Management Services SDK Jean-Yves Poublan Microsoft France.

Présentations similaires


Présentation au sujet: "Windows Rights Management Services SDK Jean-Yves Poublan Microsoft France."— Transcription de la présentation:

1 Windows Rights Management Services SDK Jean-Yves Poublan Microsoft France

2 Agenda Notions de base RMS Notions de base RMS Publication de contenu protégé Publication de contenu protégé Consommation de contenu protégé Consommation de contenu protégé Spécificités applications « serveur » Spécificités applications « serveur » Sujets choisis Sujets choisis Les informations de cette session concernent RMS SP1, disponible depuis mi 2005.

3 3 Windows Rights Management Services Lapplication crée du contenu Lapplication crée du contenu Le contenu est protégé Le contenu est protégé Chiffrement Chiffrement Les droits sont appliqués Les droits sont appliqués Licence de publication Licence de publication Quels droits (lecture, copie, impression, transfert…) Quels droits (lecture, copie, impression, transfert…) A qui …) A qui …) Sous quelles conditions (expire le 31/05/2004, …) Sous quelles conditions (expire le 31/05/2004, …) Le contenu est stocké, transféré Le contenu est stocké, transféré Lapplication consomme le contenu Lapplication consomme le contenu Licence dutilisation Licence dutilisation En respectant les droits et conditions de la licence En respectant les droits et conditions de la licence Lapplication sappuie sur RMS pour Lapplication sappuie sur RMS pour La protection de linformation (publication) La protection de linformation (publication) La consommation de linformation protégée (utilisation) La consommation de linformation protégée (utilisation)

4 4 Windows Rights Management Services Exemples dapplications Programme de CAO (Conception Assistée par Ordinateur) Programme de CAO (Conception Assistée par Ordinateur) Protection des plans Protection des plans Portail Web agence photo Portail Web agence photo Tout le monde peut visualiser les images en basse résolution Tout le monde peut visualiser les images en basse résolution Les abonnés peuvent visualiser les images en haute résolution Les abonnés peuvent visualiser les images en haute résolution Portail Intranet ressources humaines ou dept. juridique Portail Intranet ressources humaines ou dept. juridique Les utilisateurs ont accès à certaines informations, mais il ne peuvent copier ni transférer Les utilisateurs ont accès à certaines informations, mais il ne peuvent copier ni transférer Passerelle de messagerie électronique Passerelle de messagerie électronique Analyse et protège les messages selon des policies ou classification Analyse et protège les messages selon des policies ou classification Un anti-virus basé sur le serveur Un anti-virus basé sur le serveur Scanne les documents protégés Scanne les documents protégés Applications Microsoft Applications Microsoft Office 2003 Office 2003 Word, Excel, Powerpoint, Outlook Word, Excel, Powerpoint, Outlook Exchange OWA, Internet Explorer (RMA) Exchange OWA, Internet Explorer (RMA) Prochaines versions de Sharepoint… Prochaines versions de Sharepoint… Application de la protection dynamiquement Application de la protection dynamiquement

5 5 Entités de confiance RMS met en œuvre le chiffrement… RMS met en œuvre le chiffrement… RSA 1024 et AES 128 RSA 1024 et AES 128 Mais doit aller plus loin Mais doit aller plus loin Contrôle de lusage après déchiffrement Contrôle de lusage après déchiffrement Nécessite le soutien dentités de confiance Nécessite le soutien dentités de confiance La machine La machine Activation lockbox - certificat Activation lockbox - certificat Lapplication Lapplication Manifeste Manifeste

6 6Templates RMS permet de définir des modèles de droits RMS permet de définir des modèles de droits Matérialise une politique de protection ou de classification Matérialise une politique de protection ou de classification Permet à l'utilisateur d'appliquer le modèle définit par l'administrateur, plutôt que de devoir définir les droits/conditions/utilisateurs individuellement à chaque protection Permet à l'utilisateur d'appliquer le modèle définit par l'administrateur, plutôt que de devoir définir les droits/conditions/utilisateurs individuellement à chaque protection Les templates sont déployées au sein de linfrastructure (SMS, GPO, etc…) Les templates sont déployées au sein de linfrastructure (SMS, GPO, etc…) Lapplication peut utiliser les modèles de droits définis par ladministrateur lors la protection de linformation Lapplication peut utiliser les modèles de droits définis par ladministrateur lors la protection de linformation

7 7 XrML (eXtensible rights Markup Language) Rights Language -> expression des droits avec XML (1999) Rights Language -> expression des droits avec XML (1999) XML est le méta-langage – le langage utilisé pour spécifier XrML XML est le méta-langage – le langage utilisé pour spécifier XrML Partie fournisseur de ressource numérique exprime: Partie fournisseur de ressource numérique exprime: Tiers pouvant accéder à la ressource Tiers pouvant accéder à la ressource Droits de ces tiers sur la ressource Droits de ces tiers sur la ressource Termes et conditions pour lexercice de ces droits Termes et conditions pour lexercice de ces droits Standard, gouverné par ContentGuard, Inc. Standard, gouverné par ContentGuard, Inc. Reconnu W3C et MPEG Reconnu W3C et MPEG Travaux PARC (Xerox Palo Alto Research Center) Travaux PARC (Xerox Palo Alto Research Center) DPRL (Digital Property Rights Language basé sur LISP en tant que méta-langage – 1996) DPRL (Digital Property Rights Language basé sur LISP en tant que méta-langage – 1996) SDK XrML disponible SDK XrML disponible Version courante 2.0 Version courante 2.0 RMS utilise la version RMS utilise la version XrML12.pdf XrML12.pdf

8 8 Rights Management Services Système bâti sur XrML Tout est licence XrML Tout est licence XrML Certificat Machine Certificat Machine Certificat Utilisateur Certificat Utilisateur Licence de publication Licence de publication Licence dutilisation Licence dutilisation Certificat client de licensor Certificat client de licensor Certificat serveur de licensor Certificat serveur de licensor Certificat CA Certificat CA Tous les certificats et licences sont signés par leur "issuer" et contiennent la clé publique de l'issuer

9 9 Hiérarchie XrML MS DRM Production Machine Activation Desktop Security Processor CA Microsoft DRM Production Machine Activation Server CA Microsoft DRM Production CA Microsoft DRM Production Root DRM-Certificate- Authority Clé 2048 Microsoft DRM Server Enrollment Service Microsoft DRM Production Server Enrollment CA Certification MachineRAC Licensing Publishing CLC Use Owner Microsoft DRM Production Desktop Security Processor Activation Certificate DRM-CA-Certificate Clé 1024 Server-Licensor- Certifcate Clé 1024 Clés 1024

10 10 Application RMS MSDRM.DLL SECPROC.DLL CryptoAPI Win32 Proxy DRMCreateIssuanceLicense DRMAcquireLicense DRMEncrypt DRMDecrypt DRMCreateBoundLicense … RMS Server - SOAP AcquireLicense AcquireIssuanceLicense AcquirePreLicense EditIssuanceLicense GetLicensorCertificate

11 11 Windows Rights Management Services Disponibilité RMS SP1 RMS SP1 Il sagit du Service Pack 1 de RMS 1.0 Il sagit du Service Pack 1 de RMS 1.0 Attention: assez différent de RMS 1.0 Attention: assez différent de RMS 1.0 Binaires disponibles par téléchargement sur le site Web Microsoft Binaires disponibles par téléchargement sur le site Web Microsofthttp://www.microsoft.com/windowsserver2003/technologies/rightsmgmt/default.mspx Windows RMS Windows RMS Windows RMS Client Windows RMS Client Windows RMS Toolkit Windows RMS Toolkit Rights Management Add-on for Internet Explorer Rights Management Add-on for Internet Explorer Rights Management Services SDK Rights Management Services SDK Rights-Managed HTML SDK Rights-Managed HTML SDK

12 12Publication Créer une licence de publication non signée Créer une licence de publication non signée DRMCreateIssuanceLicense() DRMCreateIssuanceLicense() Droits spécifiés à laide dun template Droits spécifiés à laide dun template Droits spécifiés individuellement Droits spécifiés individuellement Signer la licence de publication Signer la licence de publication DRMGetSignedIssuanceLicense() DRMGetSignedIssuanceLicense() Génération dune clé de contenu Génération dune clé de contenu DRM_AUTO_GENERATE_KEY Utilisation dune clé de contenu existante Utilisation dune clé de contenu existante Chiffrer le contenu Chiffrer le contenu Avec RMS (lockbox) Avec RMS (lockbox) DRMCreateBoundLicense DRMCreateBoundLicense DRMCreateEnablingBitsEncryptor DRMCreateEnablingBitsEncryptor DRMEncrypt DRMEncrypt Avec CryptoAPI Avec CryptoAPI Peut se faire nimporte quand puisquon contrôle la génération de la clé de contenu Peut se faire nimporte quand puisquon contrôle la génération de la clé de contenu Utile pour une application « serveur » sans lockbox Utile pour une application « serveur » sans lockbox Attention: le déchiffrement se fait obligatoirement par la lockbox Attention: le déchiffrement se fait obligatoirement par la lockbox

13 13Publication Il appartient à lapplication de gérer (stockage/transport) la licence obtenue de DRMGetSignedIssuanceLicense Il appartient à lapplication de gérer (stockage/transport) la licence obtenue de DRMGetSignedIssuanceLicense PWSTR PWSTR La licence de publication peut être stockée avec le contenu La licence de publication peut être stockée avec le contenu Office 2003 et RMA utilisent un stream dans un fichier Structured Storage (compound file) Office 2003 et RMA utilisent un stream dans un fichier Structured Storage (compound file) Recommandé… Recommandé… Si la licence de publication est conservée séparément, il faut un moyen de la lier au contenu Si la licence de publication est conservée séparément, il faut un moyen de la lier au contenu L'attribut ContentID d'une licence de publication permet de faire cette liaison L'attribut ContentID d'une licence de publication permet de faire cette liaison

14 14 Publication a Droits et ayants droits (adresses ) Clé de contenu Chiffré avec clé publique serveur RSA 1024 Licence publication Contenu du fichier (Texte, Images, méta data, etc…) Création lors de la protection du fichier Chiffré avec clé de contenu AES128 Chiffré avec clé de contenu

15 15Consommation Localiser une licence dutilisation localement Localiser une licence dutilisation localement DRMEnumerateLicense DRMEnumerateLicense Si pas de licence dutilisation dans le store local Si pas de licence dutilisation dans le store local Retrouver la licence de publication - PWSTR Retrouver la licence de publication - PWSTR Obtenir une licence dutilisation du serveur RMS Obtenir une licence dutilisation du serveur RMS DRMAcquireLicense DRMAcquireLicense Fourniture de la licence de publication Fourniture de la licence de publication DRMCreateLicenseStorageSession (PWSTR) DRMCreateLicenseStorageSession (PWSTR) Authentification de lutilisateur (crédentiels) Authentification de lutilisateur (crédentiels) Par défaut lAPI utilise une RAC appropriée si présente sur le disque Par défaut lAPI utilise une RAC appropriée si présente sur le disque Sinon, fourniture dune RAC utilisateur spécifique Sinon, fourniture dune RAC utilisateur spécifique

16 16 Consommation a Droits et ayants droits (adresses ) Clé de contenu Chiffré avec clé publique serveur Licence publication Contenu du fichier (Texte, Images, méta data, etc…) Création lors de la protection du fichier Chiffré avec clé de contenu AES128 Chiffré avec clé de contenu Licence utilisation Clé de contenu Droits pour lutilisateur Chiffrée avec la clé publique de lutilisateur Obtenue du serveur RMS Chiffrés avec la clé de contenu

17 17Consommation On a la licence dutilisation On a la licence dutilisation DRMEnumerateLicense DRMEnumerateLicense Faire un bind de la licence dutilisation Faire un bind de la licence dutilisation DRMCreateBoundLicense DRMCreateBoundLicense On bind pour un principal On bind pour un principal On bind pour des droits spécifiques (e.g. « EDIT », « COPY ») On bind pour des droits spécifiques (e.g. « EDIT », « COPY ») Mais retourne tous les droits de lutilisateurs Mais retourne tous les droits de lutilisateurs On peut les mémoriser/activer/griser les menus On peut les mémoriser/activer/griser les menus Déchiffrer le contenu, lexercice du droit Déchiffrer le contenu, lexercice du droit DRMCreateEnablingBitsDecryptor DRMCreateEnablingBitsDecryptor Un seul décrypteur par droit à exercer Un seul décrypteur par droit à exercer Clé de contenu Clé de contenu DRMDecrypt DRMDecrypt Obligatoirement avec la lockbox Obligatoirement avec la lockbox

18 18 Best practices Une fois déchiffré, il appartient à lapplication de protéger le contenu contre un usage contraire au droit pour lequel le contenu a été déchiffré Une fois déchiffré, il appartient à lapplication de protéger le contenu contre un usage contraire au droit pour lequel le contenu a été déchiffré Se conformer au droit pour lequel le bind a été demandé Se conformer au droit pour lequel le bind a été demandé On peut mémoriser les droits pour activer/griser les menus en fonction On peut mémoriser les droits pour activer/griser les menus en fonction Mais refaire le bind au moment dune action Mais refaire le bind au moment dune action Conserver le contenu en clair le moins longtemps possible Conserver le contenu en clair le moins longtemps possible Déchiffrer, utiliser, détruire Déchiffrer, utiliser, détruire Sassurer que lapplication est en mesure dactiver la machine et denrôler lutilisateur, si nécessaire Sassurer que lapplication est en mesure dactiver la machine et denrôler lutilisateur, si nécessaire

19 19 Services RMS Services Web ASPNET Services Web ASPNET Protocole SOAP sur HTTP/HTTPS Protocole SOAP sur HTTP/HTTPS Répertoire virtuel _wmcs dans le Default Web Site (ports 80 et 443) Répertoire virtuel _wmcs dans le Default Web Site (ports 80 et 443) https://servername/_wmcs/Certification https://servername/_wmcs/Certification https://servername/_wmcs/Licensing https://servername/_wmcs/Licensing Services Services Certification utilisateur – liaison machine/utilisateur Certification utilisateur – liaison machine/utilisateur Une fois par utilisateur par machine Une fois par utilisateur par machine Certification/Certification.asmx Certification/Certification.asmx Licensing – licence d'utilisation Licensing – licence d'utilisation Une fois par contenu par utilisateur Une fois par contenu par utilisateur Licensing/Publish.asmx Licensing/Publish.asmx Licensing/License.asmx Licensing/License.asmx Enrôlement de serveurs de licences subordonnés Enrôlement de serveurs de licences subordonnés Certification/SubEnrollService.asmx Certification/SubEnrollService.asmx

20 20 Application Serveur Doit pouvoir supporter la charge Doit pouvoir supporter la charge Requêtes client Requêtes client Portail Web, Gestion de documents, Workflow… Portail Web, Gestion de documents, Workflow… Taches à effectuer Taches à effectuer Anti-virus, Protection d , Archivage Anti-virus, Protection d , Archivage Lockbox spécifique multi-threaded Lockbox spécifique multi-threaded DRMSetGlobalOptions permet de spécifier la lockbox serveur DRMSetGlobalOptions permet de spécifier la lockbox serveur secproc_ssp.dll, secproc_ssp_isv.dll secproc_ssp.dll, secproc_ssp_isv.dll Peut publier et consommer Peut publier et consommer Peut obtenir des licences dutilisation pour ses clients Peut obtenir des licences dutilisation pour ses clients Na pas besoin dêtre authentifiée Na pas besoin dêtre authentifiée Pas de manifeste Pas de manifeste Services Web spécifiques pour les applications serveurs Services Web spécifiques pour les applications serveurs Certification/ServerCertification.asmx Certification/ServerCertification.asmx Licensing/Server.asmx Licensing/Server.asmx Licensing/EditIssuanceLicense.asmx Licensing/EditIssuanceLicense.asmx …

21 21 Application Serveur sans Lockbox Pas de consommation Pas de consommation Publication de contenu protégé seulement Publication de contenu protégé seulement Publication en ligne Publication en ligne Cest le serveur RMS qui signe la licence de publication Cest le serveur RMS qui signe la licence de publication Permet de déplacer la charge CPU vers RMS Permet de déplacer la charge CPU vers RMS Les librairies clientes RM sont quand même utilisées Les librairies clientes RM sont quand même utilisées Pour celles qui ne nécessitent pas la lockbox Pour celles qui ne nécessitent pas la lockbox Web services Web services GetLicensorCertificate, AcquireIssuanceLicense GetLicensorCertificate, AcquireIssuanceLicense

22 22 Publication en ligne Génération dune clé de chiffrement et chiffrement du contenu Génération dune clé de chiffrement et chiffrement du contenu CryptoAPI, Classes.Net CryptoAPI, Classes.Net GetLicensorCertificate (SOAP) GetLicensorCertificate (SOAP) Obtention du certificat serveur Obtention du certificat serveur DRMGetSignedIssuanceLicense (local) DRMGetSignedIssuanceLicense (local) Flag DRM_SERVER_ISSUANCELICENSE Flag DRM_SERVER_ISSUANCELICENSE Protection de la licence non signée Protection de la licence non signée Chiffrement des droits avec la clé de contenu Chiffrement des droits avec la clé de contenu Chiffrement de la clé de session avec la clé publique du serveur Chiffrement de la clé de session avec la clé publique du serveur AcquireIssuanceLicense (SOAP) AcquireIssuanceLicense (SOAP) Envoi de la licence non signée au serveur Envoi de la licence non signée au serveur Réception en retour de la licence signée Réception en retour de la licence signée

23 23RMH Rights Managed HTML Rights Managed HTML Format (publié) pour la protection de contenu HTML avec RMS Format (publié) pour la protection de contenu HTML avec RMS MHTML (MIME Encapsulation of Aggregate HTML) MHTML (MIME Encapsulation of Aggregate HTML) RMA – Rights Management Addon pour Internet Explorer RMA – Rights Management Addon pour Internet Explorer Viewer de fichier RMH Viewer de fichier RMH Une application crée du contenu protégé au format RMH Une application crée du contenu protégé au format RMH Lutilisateur accède au contenu selon ses droits avec Internet Explorer Lutilisateur accède au contenu selon ses droits avec Internet Explorer Après avoir installé le module RMA Après avoir installé le module RMA Avantage Avantage Simplifie la problématique de laccès au contenu protégé et sa consommation Simplifie la problématique de laccès au contenu protégé et sa consommation On peut protéger son contenu en ne développant que la partie « publication » de lapplication On peut protéger son contenu en ne développant que la partie « publication » de lapplication

24 24RMH Fichier extension.rmh Fichier extension.rmh Peut être nimporte quelle autre extension, mais.rmh fait partie des extensions contrôlées par RMA Peut être nimporte quelle autre extension, mais.rmh fait partie des extensions contrôlées par RMA OLE Structured Storage (Compound File) OLE Structured Storage (Compound File) Stream \0x09DataSpaces Stream \0x09DataSpaces Contient les licences (publication et –optionnel- utilisation) Contient les licences (publication et –optionnel- utilisation) Stream \0x09DRMViewerContent Stream \0x09DRMViewerContent Contenu au format MHTML (rendition HTML) Contenu au format MHTML (rendition HTML) Chiffré avec RMS Chiffré avec RMS Tant que RMA trouve ces deux streams, il peut traiter le fichier Tant que RMA trouve ces deux streams, il peut traiter le fichier Rights-Managed HTML SDK Rights-Managed HTML SDK Pour créer ces streams à partir dune rendition MHTML Pour créer ces streams à partir dune rendition MHTML MHTML peut contenir des messages RFC822 MHTML peut contenir des messages RFC822

25 25RMH Applications génèrent du RMH Applications génèrent du RMH Office 2003 Office 2003 additional settings/allow users with earlier versions… additional settings/allow users with earlier versions… Option par défaut Option par défaut Outlook 2003 Outlook 2003 Systématique Systématique RMH est le format natif pour un message protégé avec RM RMH est le format natif pour un message protégé avec RM MHTML peut contenir des messages RFC822 MHTML peut contenir des messages RFC822 Consommation IE/OWA Consommation IE/OWA

26 26 Publication avec mapping des ACLs NTFS sur les droits RMS Application Web ASPNET - rmhstore Serveur RMS Application Serveur du SDK Poste Client IE/RMA Client RMS Serveur de fichiers (repository) Get SecProc RMH EditIssuanceLicense AcquirereLicense Signature licences de publication Emission licences dutilisation RAC Déchiffrement Fichiers RMH Post (MHT) SOAP GetLicensorCertificate AcquireIssuanceLicense Admin ACLs //server/rep

27 Démo Document Library Sample

28 28Activation Obtention dun certificat machine Obtention dun certificat machine Généré localement par le Security Processor Généré localement par le Security Processor RSA 1024 RSA 1024 Ne nécessite pas les droits dadministrateur Ne nécessite pas les droits dadministrateur Lactivation de la machine spécifique à chaque utilisateur (CryptoAPI – profil de lutilisateur) Lactivation de la machine spécifique à chaque utilisateur (CryptoAPI – profil de lutilisateur) DRMIsActivated(DRM_ACTIVATE_MACHINE) DRMIsActivated(DRM_ACTIVATE_MACHINE) DRMActivate(DRM_ACTIVATE_MACHINE) DRMActivate(DRM_ACTIVATE_MACHINE) Clé de registre indique la hiérarchie Clé de registre indique la hiérarchie DRMSetGlobalOptions positionne la lockbox (client ou serveur) DRMSetGlobalOptions positionne la lockbox (client ou serveur) Si non activée, API telles que DRMGetSecurityProvider ou DRMInitEnvironment échouent Si non activée, API telles que DRMGetSecurityProvider ou DRMInitEnvironment échouent E_DRM_NEEDS_MACHINE_ACTIVATION E_DRM_NEEDS_MACHINE_ACTIVATION

29 29 Certification de lutilisateur Obtention dune RAC (Rights Account Certificate) Obtention dune RAC (Rights Account Certificate) Contient la clé privée et la clé publique de lutilisateur (RSA 1024) Contient la clé privée et la clé publique de lutilisateur (RSA 1024) La clé privée est chiffrée avec la clé publique de la machine La clé privée est chiffrée avec la clé publique de la machine Liée à une machine Liée à une machine Logique identique à lactivation de la machine Logique identique à lactivation de la machine DRMIsActivated(DRM_ACTIVATE_GROUPIDENTITY) DRMIsActivated(DRM_ACTIVATE_GROUPIDENTITY) DRMGetServiceLocation( = Certification) DRMGetServiceLocation( = Certification) DRMActivate(DRM_ACTIVATE_GROUPIDENTITY) DRMActivate(DRM_ACTIVATE_GROUPIDENTITY) Si lutilisateur na pas de certificat, DRMInitEnvironment échoue Si lutilisateur na pas de certificat, DRMInitEnvironment échoue E_DRM_NEEDS_GROUPIDENTITY_ACTIVATION E_DRM_NEEDS_GROUPIDENTITY_ACTIVATION

30 30 Client Licensor Certificate Nécessaire pour signer des licences de publication sans avoir à contacter le serveur Nécessaire pour signer des licences de publication sans avoir à contacter le serveur Publication hors ligne Publication hors ligne Utilisé par les applications clientes Utilisé par les applications clientes DRMAcquireLicense DRMAcquireLicense

31 31Manifeste Licence XrML Licence XrML Contient les condensés (SHA-1) de chaque module Contient les condensés (SHA-1) de chaque module InitILFromILTemplate.exe SHA1 5ry9HovLxkUcwP/tlVL7CuQopIw= InitILFromILTemplate.exe SHA1 5ry9HovLxkUcwP/tlVL7CuQopIw= Signée avec clé privée du développeur Signée avec clé privée du développeur Clé publique développeur doit être certifiée dans une hiérarchie Clé publique développeur doit être certifiée dans une hiérarchie RMS App-Signing CA RMS App-Signing CA us/dnrmsdk/html/RM_LicensingInformation.asp us/dnrmsdk/html/RM_LicensingInformation.asp DRMInitEnvironment DRMInitEnvironment Prend en entrée le manifeste Prend en entrée le manifeste Procède à la vérification Procède à la vérification

32 32Hiérarchies Il faut obtenir… Il faut obtenir… Un certificat (certificate chain) pour signer le manifeste Un certificat (certificate chain) pour signer le manifeste Une lockbox et certificat machine Une lockbox et certificat machine Un certificat utilisateur Un certificat utilisateur … dans la même hiérarchie! … dans la même hiérarchie! Microsoft opère deux hiérarchies Microsoft opère deux hiérarchies Pré-production Pré-production Production Production Savoir dans quelle hiérarchie on est Savoir dans quelle hiérarchie on est Certificat machine - Issuer Certificat machine - Issuer Machine Activation Server Machine Activation Server « ISV » « ISV »

33 33 Découverte des services Client RMS – DRMGetServiceLocation Client RMS – DRMGetServiceLocation Distribution point dans la licence Distribution point dans la licence URL intranet URL intranet URL extranet URL extranet Clé registre Clé registre Certification Certification HKLM\SOFTWARE\Microsoft\MSDRM\ServiceLocation\Activation HKLM\SOFTWARE\Microsoft\MSDRM\ServiceLocation\Activation Publication, Client Licensor Publication, Client Licensor HKLM\SOFTWARE\Microsoft\MSDRM\ServiceLocation\EnterprisePublishing HKLM\SOFTWARE\Microsoft\MSDRM\ServiceLocation\EnterprisePublishing Recherche AD (serviceConnectionPoint) Recherche AD (serviceConnectionPoint) Recherche UDDI Recherche UDDI Office 2003 Office 2003 Une application RMS peut avoir sa propre logique Une application RMS peut avoir sa propre logique Office 2003 comporte des clés de registre qui ont précédence sur le client RMS Office 2003 comporte des clés de registre qui ont précédence sur le client RMS HKLM\Software\Microsoft\Office\11.0\Common\DRM\CorpCertificationserver HKLM\Software\Microsoft\Office\11.0\Common\DRM\CorpCertificationserver

34 34 Découverte des services Inscription dans AD Page d'administration Page d'administration Outil ADSCPRegister (toolkit) Outil ADSCPRegister (toolkit) Global Catalog Partition de configuration Partition de configuration Services\Rights Management Services Services\Rights Management Services Objet SCP (serviceConnectionPoint) MSRMRootCluster, MSDRMS2.0? Objet SCP (serviceConnectionPoint) MSRMRootCluster, MSDRMS2.0? serviceBindingInformation serviceBindingInformation

35 35 Services RMS sur lInternet (MSN) UDDI Business Registry (UBR) Enrôlement serveur https://activation.drm.microsoft.com/enrollment/enrollservice.asmx https://activation.drm.microsoft.com/enrollment/enrollservice.asmx Activation/certification production https://certification.drm.microsoft.com/certification/certification.asmx https://certification.drm.microsoft.com/certification/certification.asmx Activation/certification pré-production https://certification.isv.drm.microsoft.com/certification https://certification.isv.drm.microsoft.com/certificationLicensing https://licensing.drm.microsoft.com/licensing https://licensing.drm.microsoft.com/licensing

36 Questions?

37 37 Client – où sont les clés? En principe toutes les bi-clés RSA sont 1024, y compris celles de la machine En principe toutes les bi-clés RSA sont 1024, y compris celles de la machine Profil utilisateur la clé privée machine: machine_priv Profil utilisateur la clé privée machine: machine_priv Protection DPAPI pour lutilisateur Protection DPAPI pour lutilisateur Entropie supplémentaire issue des caractéristiques de la machine Entropie supplémentaire issue des caractéristiques de la machine Certificat machine contient la clé publique machine_pub Certificat machine contient la clé publique machine_pub RAC contient RAC contient clé publique user_pub clé publique user_pub clé privée user_priv chiffrée pour la machine clé privée user_priv chiffrée pour la machine user_priv machine_pub user_priv machine_pub CLC contient publishing_pub et publishing_priv user_pub CLC contient publishing_pub et publishing_priv user_pub Licence publication contient Content_Key server_pub Licence publication contient Content_Key server_pub Licence utilisation contient Content_Key user_pub Licence utilisation contient Content_Key user_pub

38 38 Serveur – où sont les clés? Clé privée serveur (2 possibilités) Clé privée serveur (2 possibilités) Base SQL de configuration (si protection logicielle) Base SQL de configuration (si protection logicielle) Chiffrement avec mot de passe (saisie pages admin) Chiffrement avec mot de passe (saisie pages admin) Mot de passe chiffré avec mot de passe du compte de service Mot de passe chiffré avec mot de passe du compte de service Stockage dans base SQL de configuration Stockage dans base SQL de configuration Best practice -> mot de passe pour le compte de service Best practice -> mot de passe pour le compte de service CSP CSP Boîtier HSM ou CSP logiciel Boîtier HSM ou CSP logiciel Planifier utilisation en cluster Planifier utilisation en cluster Clé publique serveur: dans Server Licensor Certificate (SLC) Clé publique serveur: dans Server Licensor Certificate (SLC) Paire de clé des RAC Paire de clé des RAC Base SQL de configuration Base SQL de configuration Chiffrement avec la clé publique du serveur RMS Chiffrement avec la clé publique du serveur RMS Trusts RM Trusts RM Serveurs de certification (SLC) Serveurs de certification (SLC) Base SQL de configuration Base SQL de configuration Serveurs de licence (clé privée) Serveurs de licence (clé privée) Base SQL de configuration Base SQL de configuration Chiffrement avec clé publique du serveur RMS Chiffrement avec clé publique du serveur RMS

39

40 Slides de référence RMS SP1

41 41 Nouveautés RMS SP1 Pas dactivation de la machine client auprès dun serveur dactivation – le client RMS sauto-active Pas dactivation de la machine client auprès dun serveur dactivation – le client RMS sauto-active Bi-clé RSA 1024 pour le certificat machine Bi-clé RSA 1024 pour le certificat machine Enrôlement hors ligne du serveur racine possible Enrôlement hors ligne du serveur racine possible Utilisation de CryptoAPI par les lockbox Utilisation de CryptoAPI par les lockbox Lockbox disponible coté serveur Lockbox disponible coté serveur Applications serveur peuvent consommer du contenu protégé (anti-virus, etc…) Applications serveur peuvent consommer du contenu protégé (anti-virus, etc…)

42 42 Trusts RMS Deux sortes de trusts Trusted User Domain Trusted User Domain Scénarios d'interopérabilité Scénarios d'interopérabilité Entre organisations Entre organisations Entre forêts Entre forêts Avec Passport Avec Passport Ressemble à une CTL en PKI Ressemble à une CTL en PKI On truste une clé publique On truste une clé publique C'est un vrai trust C'est un vrai trust Trusted Publishing Domain Trusted Publishing Domain Scénario de migration ou de fusion Scénario de migration ou de fusion Rachat de société Rachat de société Consolidation de serveurs Consolidation de serveurs Pas vraiment un trust Pas vraiment un trust Pas trivial Pas trivial Comment les comptes utilisateurs sont-ils transférés? Comment les comptes utilisateurs sont-ils transférés? Comment les templates sont-elles migrées? Comment les templates sont-elles migrées?

43 43 Trusts RMS Trusted User Domain Un domaine utilisateurs RMS = un serveur racine d'entreprise, les RACs qu'il délivre (ses utilisateurs), et les serveurs licence qui lui sont subordonnés Un domaine utilisateurs RMS = un serveur racine d'entreprise, les RACs qu'il délivre (ses utilisateurs), et les serveurs licence qui lui sont subordonnés Par défaut un serveur de licence n'octroie de licence d'utilisation qu'à des RACs de son domaine Par défaut un serveur de licence n'octroie de licence d'utilisation qu'à des RACs de son domaine Permet aux utilisateurs du domaine trusté (A) de consommer du contenu du domaine trustant (B) Permet aux utilisateurs du domaine trusté (A) de consommer du contenu du domaine trustant (B) Permet aux utilisateurs du domaine trustant (B) de publier du contenu a destination d'utilisateurs du domaine trusté (A), sachant qu'il sera consommable Permet aux utilisateurs du domaine trustant (B) de publier du contenu a destination d'utilisateurs du domaine trusté (A), sachant qu'il sera consommable S'établit au niveau de chaque cluster (serveur) de licence S'établit au niveau de chaque cluster (serveur) de licence On importe la clé publique du domaine trusté (serveur de certification racine d'entreprise A) On importe la clé publique du domaine trusté (serveur de certification racine d'entreprise A) Utilisateurs (RAC) entreprise Certification racine d'entreprise User domain B Licensing Utilisateurs (RAC) entreprise Licensing Certification racine d'entreprise (User domain A) Entreprise A Entreprise BTrusts

44 44 Trusts RMS Trusted Publishing Domain Un domaine de publication RMS = un serveur de licence et les licences qu'il émet Un domaine de publication RMS = un serveur de licence et les licences qu'il émet Par défaut un cluster (serveur) de licence ne peut octroyer de licence d'utilisation que pour du contenu dont les licences de publications sont les siennes Par défaut un cluster (serveur) de licence ne peut octroyer de licence d'utilisation que pour du contenu dont les licences de publications sont les siennes Clé de contenu chiffrée avec sa clé publique Clé de contenu chiffrée avec sa clé publique Permet à un serveur de licence (domaine de publication) d'émettre des licences d'utilisation pour du contenu qui a été publié sur un autre serveur de licence Permet à un serveur de licence (domaine de publication) d'émettre des licences d'utilisation pour du contenu qui a été publié sur un autre serveur de licence Permet aux utilisateurs de contenu d'un serveur de licence (A) d'utiliser un autre serveur de licence (B) pour accéder à ce contenu Permet aux utilisateurs de contenu d'un serveur de licence (A) d'utiliser un autre serveur de licence (B) pour accéder à ce contenu S'établit au niveau de chaque cluster (serveur) de licence S'établit au niveau de chaque cluster (serveur) de licence On importe la clé privée du domaine trusté (serveur de licence A) On importe la clé privée du domaine trusté (serveur de licence A) N'a de sens que pour des fusions ou des consolidations, ou legacy suite à un decommissioning N'a de sens que pour des fusions ou des consolidations, ou legacy suite à un decommissioning Il faut rediriger l'URL du serveur décommissionné vers le nouveau serveur Il faut rediriger l'URL du serveur décommissionné vers le nouveau serveur Serveur de licence B Serveur de licence A Domaine de publication A Domaine de publication B Contenu domaine B Contenu domaine A Licences utilisation Clé privée

45 45 Trusts RMS Trust Passport C'est un trust de type User Domain C'est un trust de type User Domain Désactivé par défaut Désactivé par défaut Si activé, les utilisateurs Passport peuvent consommer du contenu publiés par les utilisateurs de l'organisation Si activé, les utilisateurs Passport peuvent consommer du contenu publiés par les utilisateurs de l'organisation Mais en principe pas linverse car le service de licence gratuit hosté par MSN ne truste pas les divers déploiements dentreprise Mais en principe pas linverse car le service de licence gratuit hosté par MSN ne truste pas les divers déploiements dentreprise Attention: quand on truste Passport, il faut toujours exclure les domaines d'adresses de l'entreprise Attention: quand on truste Passport, il faut toujours exclure les domaines d'adresses de l'entreprise Sinon, un utilisateur externe avec une adresse prétendue peut consommer du contenu de l'entreprise qui ne lui était pas destiné Sinon, un utilisateur externe avec une adresse prétendue peut consommer du contenu de l'entreprise qui ne lui était pas destiné E.g. OTG en interne exclut *.microsoft.com E.g. OTG en interne exclut *.microsoft.com

46 46 Trusts RMS Autres remarques Les trusts sont établis out of band Les trusts sont établis out of band Les trusts ne requièrent aucune connexion Les trusts ne requièrent aucune connexion Pas de réplication ou validation en ligne Pas de réplication ou validation en ligne L'administrateur établit, détruit, et met à jour les trusts manuellement L'administrateur établit, détruit, et met à jour les trusts manuellement Les utilisateurs ont besoin d'accéder au serveur de licence RMS trustant (sur lequel l'administrateur a établit un trust) Les utilisateurs ont besoin d'accéder au serveur de licence RMS trustant (sur lequel l'administrateur a établit un trust)

47 47 Principes authentification Serveur de certification Serveur de certification Windows Integrated – Kerberos (Entreprise) Windows Integrated – Kerberos (Entreprise) Cas dobtention dune RAC depuis Intranet – Valide 1 an (configurable) Cas dobtention dune RAC depuis Intranet – Valide 1 an (configurable) Basic sur HTTPS (Entreprise) Basic sur HTTPS (Entreprise) Cas dobtention dune TRAC depuis Extranet – Valide 15 mn Cas dobtention dune TRAC depuis Extranet – Valide 15 mn Passport (Particulier) Passport (Particulier) Serveur de licensing Serveur de licensing Authentification à base de XrML (RAC) Authentification à base de XrML (RAC) Service Web peut être accessible en anonyme Service Web peut être accessible en anonyme Pour laccès Intranet, une authentification Windows Integrated apporte un plus Pour laccès Intranet, une authentification Windows Integrated apporte un plus Sécurité en profondeur Sécurité en profondeur Meilleure pratique: protéger les échanges de certification et de licensing via SSL/TLS Meilleure pratique: protéger les échanges de certification et de licensing via SSL/TLS Note: Avec RMS, lidentité est couramment matérialisée par ladresse . Cependant lutilisation de SID est possible, à la discrétion des applications RMS. Dans tous les cas lauthentification est faite par AD ou Passeport. On délivre une RAC à un compte utilisateur Active Directory ou Passport dûment authentifié.

48 48Principes Chaque serveur peut être un cluster NLB Chaque serveur peut être un cluster NLB Cluster = serveur logique ou service Cluster = serveur logique ou service Composé de deux (ou plus?) serveurs physiques Composé de deux (ou plus?) serveurs physiques Le cluster comporte une base SQL Le cluster comporte une base SQL Base SQL Server peut aussi être en cluster Base SQL Server peut aussi être en cluster C'est toujours le cluster (serveur) qui a émis la licence de publication qui émet la licence d'utilisation C'est toujours le cluster (serveur) qui a émis la licence de publication qui émet la licence d'utilisation L'utilisateur doit accéder au serveur de licensing L'utilisateur doit accéder au serveur de licensing Sauf migration (Trusted Publishing Domain) Sauf migration (Trusted Publishing Domain) Cluster RMS NLB Serveur SQL

49 49 Client – où sont les clés? En principe toutes les bi-clés RSA sont 1024, y compris celles de la machine En principe toutes les bi-clés RSA sont 1024, y compris celles de la machine Profile utilisateur la clé privée machine: machine_priv Profile utilisateur la clé privée machine: machine_priv Protection DPAPI pour lutilisateur Protection DPAPI pour lutilisateur Entropie supplémentaire issue des caractéristiques de la machine Entropie supplémentaire issue des caractéristiques de la machine Certificat machine contient la clé publique machine_pub Certificat machine contient la clé publique machine_pub RAC contient RAC contient clé publique user_pub clé publique user_pub clé privée user_priv chiffrée pour la machine clé privée user_priv chiffrée pour la machine user_priv machine_pub user_priv machine_pub CLC contient publishing_pub et publishing_priv user_pub CLC contient publishing_pub et publishing_priv user_pub Licence publication contient Content_Key server_pub Licence publication contient Content_Key server_pub Licence utilisation contient Content_Key user_pub Licence utilisation contient Content_Key user_pub

50 50 Serveur – où sont les clés? Clé privée serveur (2 possibilités) Clé privée serveur (2 possibilités) Base SQL de configuration (si protection logicielle) Base SQL de configuration (si protection logicielle) Chiffrement avec mot de passe (saisie pages admin) Chiffrement avec mot de passe (saisie pages admin) Mot de passe chiffré avec mot de passe du compte de service Mot de passe chiffré avec mot de passe du compte de service Stockage dans base SQL de configuration Stockage dans base SQL de configuration Best practice -> mot de passe pour le compte de service Best practice -> mot de passe pour le compte de service CSP CSP Boîtier HSM ou CSP logiciel Boîtier HSM ou CSP logiciel Planifier utilisation en cluster Planifier utilisation en cluster Clé publique serveur: dans Server Licensor Certificate (SLC) Clé publique serveur: dans Server Licensor Certificate (SLC) Paire de clé des RAC Paire de clé des RAC Base SQL de configuration Base SQL de configuration Chiffrement avec la clé publique du serveur RMS Chiffrement avec la clé publique du serveur RMS Trusts RM Trusts RM Serveurs de certification (SLC) Serveurs de certification (SLC) Base SQL de configuration Base SQL de configuration Serveurs de licence (clé privée) Serveurs de licence (clé privée) Base SQL de configuration Base SQL de configuration Chiffrement avec clé publique du serveur RMS Chiffrement avec clé publique du serveur RMS

51 51 Sécurité des pipelines SSL/TLS (authentification serveur seulement) recommandé sur les pipelines RMS SSL/TLS (authentification serveur seulement) recommandé sur les pipelines RMS Protection supplémentaire de l'authentification "Windows Integrated" Protection supplémentaire de l'authentification "Windows Integrated" Protection supplémentaire des RAC lors des requêtes SOAP Protection supplémentaire des RAC lors des requêtes SOAP Confidentialité des identifiants d'utilisateurs (RAC) et des identifiants de contenu (licence publication) Confidentialité des identifiants d'utilisateurs (RAC) et des identifiants de contenu (licence publication) Attention: SSL/TLS => impact performance Attention: SSL/TLS => impact performance Cartes accélératrices Cartes accélératrices Configuration des permissions sur chaque pipeline Configuration des permissions sur chaque pipeline Par défaut - Authenticated Users Par défaut - Authenticated Users Best Practice: garder l'authentification Windows sur le pipeline License.asmx pour une utilisation intranet Best Practice: garder l'authentification Windows sur le pipeline License.asmx pour une utilisation intranet Cependant l'accès anonyme peut être requis lors de trusts RM (dont Passport) Cependant l'accès anonyme peut être requis lors de trusts RM (dont Passport)

52 52 Emplacement des licences RMS SP1 Client RMS lockbox Client RMS lockbox WindowsDrive\Documents and Settings\UserId\Local Settings\Application Data\Microsoft\DRM WindowsDrive\Documents and Settings\UserId\Local Settings\Application Data\Microsoft\DRM Server RMS lockbox Server RMS lockbox WindowsDrive\Documents and Settings\All Users\Application Data\Microsoft\DRM\Server\UserSid WindowsDrive\Documents and Settings\All Users\Application Data\Microsoft\DRM\Server\UserSid

53 53Manifeste Applications doivent avoir leurs DLL et EXE signées par la clé privée du développeur Applications doivent avoir leurs DLL et EXE signées par la clé privée du développeur La signature réside dans le manifeste de l'application: licence XrML La signature réside dans le manifeste de l'application: licence XrML Signée clé privée du dévelopeur Signée clé privée du dévelopeur Doit être distribuée avec l'application Doit être distribuée avec l'application Contient les hash (SHA-1) de chaque module Contient les hash (SHA-1) de chaque module InitILFromILTemplate.exe SHA1 5ry9HovLxkUcwP/tlVL7CuQopIw= InitILFromILTemplate.exe SHA1 5ry9HovLxkUcwP/tlVL7CuQopIw= Genmanifest.exe Genmanifest.exe Fichier de configuration.mcf Fichier de configuration.mcf "Manifest chain" contient la clé publique certifiée par MS, et sa chaîne "Manifest chain" contient la clé publique certifiée par MS, et sa chaîne -chain -chain Sans cette option, le manifeste est XrML et non valide (pas de chaîne) Sans cette option, le manifeste est XrML et non valide (pas de chaîne) Avec cette option, le manifeste est XrML en base64 avec une chaîne complète et valide Avec cette option, le manifeste est XrML en base64 avec une chaîne complète et valide Générer et signer le manifeste à chaque build Générer et signer le manifeste à chaque build

54 54 Best practice Placer dans un corps MIME dans un fichier MHTLM avec deux body parts Placer dans un corps MIME dans un fichier MHTLM avec deux body parts Première body part détecte si RMA est installé Première body part détecte si RMA est installé Si oui, invoque RMA pour afficher la deuxième body part Si oui, invoque RMA pour afficher la deuxième body part Si non, affiche un message indiquant que le contenu est protégé et nécessite le viewer RMA Si non, affiche un message indiquant que le contenu est protégé et nécessite le viewer RMA Deuxième body part comprend le contenu RMH Deuxième body part comprend le contenu RMH

55 55 Composants clients RMS Librairies clientes RMS Librairies clientes RMS Msdrm.dll - Redistributable par les applications Msdrm.dll - Redistributable par les applications API « C » (win32) API « C » (win32) Security Processor – lockbox Security Processor – lockbox secproc.dll, secproc_ssp.dll, secproc_isv.dll, secproc_ssp_isv.dll secproc.dll, secproc_ssp.dll, secproc_isv.dll, secproc_ssp_isv.dll Applications RMS utilisent ces API Applications RMS utilisent ces API Chiffrement du contenu Chiffrement du contenu Génération de licence de publication Génération de licence de publication Obtention de licence dutilisation Obtention de licence dutilisation Accès au contenu et respect des droits Accès au contenu et respect des droits Gestion des licences et certificats sur le disque Gestion des licences et certificats sur le disque Activation de la machine Activation de la machine Localisation des services RMS Localisation des services RMS Librairies clientes appellent la lockbox pour les opérations sensibles Librairies clientes appellent la lockbox pour les opérations sensibles


Télécharger ppt "Windows Rights Management Services SDK Jean-Yves Poublan Microsoft France."

Présentations similaires


Annonces Google