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

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

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

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

Windows Rights Windows Rights Management Management

ServicesServicesSDKSDK

Jean-Yves PoublanJean-Yves PoublanMicrosoft FranceMicrosoft France

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

AgendaAgenda Notions de base RMSNotions 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 choisisSujets choisis

Les informations de cette session concernent RMS SP1, disponible depuis mi 2005.

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

3

Windows Rights Management ServicesWindows Rights Management Services

L’application crée du contenuL’application crée du contenu Le contenu est protégéLe contenu est protégé

ChiffrementChiffrement Les droits sont appliquésLes droits sont appliqués

Licence de publicationLicence de publication Quels droits (lecture, copie, impression, transfert…)Quels droits (lecture, copie, impression, transfert…) A qui ([email protected], [email protected], …)A qui ([email protected], [email protected], …) 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é L’application consomme le contenuL’application consomme le contenu

Licence d’utilisationLicence d’utilisation En respectant les droits et conditions de la licenceEn respectant les droits et conditions de la licence

L’application s’appuie sur RMS pourL’application s’appuie sur RMS pour La protection de l’information (publication)La protection de l’information (publication) La consommation de l’information protégée (utilisation)La consommation de l’information protégée (utilisation)

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

4

Windows Rights Management ServicesWindows Rights Management ServicesExemples d’applicationsExemples d’applications

Programme de CAO (Conception Assistée par Ordinateur)Programme de CAO (Conception Assistée par Ordinateur) Protection des plansProtection des plans

Portail Web agence photoPortail Web agence photo Tout le monde peut visualiser les images en basse résolutionTout le monde peut visualiser les images en basse résolution Les abonnés peuvent visualiser les images en haute résolutionLes abonnés peuvent visualiser les images en haute résolution

Portail Intranet ressources humaines ou dept. juridiquePortail Intranet ressources humaines ou dept. juridique Les utilisateurs ont accès à certaines informations, mais il ne Les utilisateurs ont accès à certaines informations, mais il ne

peuvent copier ni transférerpeuvent copier ni transférer Passerelle de messagerie électroniquePasserelle de messagerie électronique

Analyse et protège les messages selon des policies ou Analyse et protège les messages selon des policies ou classificationclassification

Un anti-virus basé sur le serveurUn anti-virus basé sur le serveur Scanne les documents protégésScanne les documents protégés

Applications MicrosoftApplications Microsoft Office 2003Office 2003

Word, Excel, Powerpoint, OutlookWord, 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 dynamiquementApplication de la protection dynamiquement

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

5

Entités de confianceEntités de confiance RMS met en œuvre le chiffrement…RMS met en œuvre le chiffrement…

RSA 1024 et AES 128RSA 1024 et AES 128

Mais doit aller plus loinMais doit aller plus loin Contrôle de l’usage après déchiffrementContrôle de l’usage après déchiffrement

Nécessite le soutien d’entités de confianceNécessite le soutien d’entités de confiance La machineLa machine

Activation lockbox - certificatActivation lockbox - certificat L’applicationL’application

ManifesteManifeste

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

6

TemplatesTemplates RMS permet de définir des modèles de droitsRMS permet de définir des modèles de droits

Matérialise une politique de protection ou de classificationMatérialise une politique de protection ou de classification Permet à l'utilisateur d'appliquer le modèle définit par Permet à l'utilisateur d'appliquer le modèle définit par

l'administrateur, plutôt que de devoir définir les l'administrateur, plutôt que de devoir définir les droits/conditions/utilisateurs individuellement à chaque droits/conditions/utilisateurs individuellement à chaque protectionprotection

Les templates sont déployées au sein de Les templates sont déployées au sein de l’infrastructure (SMS, GPO, etc…)l’infrastructure (SMS, GPO, etc…)

L’application peut utiliser les modèles de droits L’application peut utiliser les modèles de droits définis par l’administrateur lors la protection de définis par l’administrateur lors la protection de l’informationl’information

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

7

XrML (eXtensible rights Markup XrML (eXtensible rights Markup Language)Language)

Rights LanguageRights Language -> expression des droits avec XML -> expression des droits avec XML (1999)(1999) XML est le méta-langage – le langage utilisé pour spécifier XML est le méta-langage – le langage utilisé pour spécifier

XrMLXrML Partie fournisseur de ressource numérique exprime:Partie fournisseur de ressource numérique exprime:

Tiers pouvant accéder à la ressourceTiers pouvant accéder à la ressource Droits de ces tiers sur la ressourceDroits de ces tiers sur la ressource Termes et conditions pour l’exercice de ces droitsTermes et conditions pour l’exercice de ces droits

Standard, gouverné par ContentGuard, Inc.Standard, gouverné par ContentGuard, Inc. Reconnu W3C et MPEGReconnu 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 DPRL (Digital Property Rights Language basé sur LISP en

tant que méta-langage – 1996)tant que méta-langage – 1996) SDK XrML disponibleSDK XrML disponible Version courante 2.0Version courante 2.0

RMS utilise la version 1.2.1RMS utilise la version 1.2.1 XrML12.pdfXrML12.pdf

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

8

Rights Management ServicesRights Management ServicesSystème bâti sur XrMLSystème bâti sur XrML

Tout est licence XrMLTout est licence XrML <BODY type="LICENSE" version="3.0"><BODY type="LICENSE" version="3.0">

Certificat MachineCertificat Machine <OBJECT type="Machine-Certificate"><OBJECT type="Machine-Certificate">

Certificat UtilisateurCertificat Utilisateur <OBJECT type="Group-Identity-Credential"><OBJECT type="Group-Identity-Credential">

Licence de publicationLicence de publication <BODY type="Microsoft Rights Label" version="3.0"><BODY type="Microsoft Rights Label" version="3.0"> <OBJECT><OBJECT>

Licence d’utilisationLicence d’utilisation <OBJECT type="Content-License"><OBJECT type="Content-License">

Certificat client de Certificat client de licensorlicensor <OBJECT type="Client-Licensor-Certificate"><OBJECT type="Client-Licensor-Certificate">

Certificat serveur de Certificat serveur de licensorlicensor <OBJECT type="Server-Licensor-Certificate"><OBJECT type="Server-Licensor-Certificate">

Certificat CACertificat CA <OBJECT type="DRM-CA-Certificate"><OBJECT type="DRM-CA-Certificate">

Tous les certificats et licences sont signés par leur Tous les certificats et licences sont signés par leur "issuer" et contiennent la clé publique de l'issuer"issuer" et contiennent la clé publique de l'issuer

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

9

Hiérarchie XrMLHié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-AuthorityClé 2048

Microsoft DRM Server

Enrollment Service

Microsoft DRM Production

Server Enrollment CA

Certification

Machine

RAC

Licensing

Publishing

CLC

Use

Owner

Microsoft DRM Production Desktop Security

Processor Activation Certificate

DRM-CA-CertificateClé 1024

Server-Licensor-CertifcateClé 1024

Clés 1024

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

10

Application RMSApplication RMS

Application RMS

MSDRM.DLL

SECPROC.DLL

CryptoAPI

Win32Proxy

Proxy

DRMCreateIssuanceLicenseDRMAcquireLicense

DRMEncryptDRMDecrypt

DRMCreateBoundLicense…

RMS Server - SOAP

AcquireLicenseAcquireIssuanceLicense

AcquirePreLicenseEditIssuanceLicense

GetLicensorCertificate

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

11

Windows Rights Management ServicesWindows Rights Management ServicesDisponibilitéDisponibilité

RMS SP1RMS SP1 Il s’agit du Service Pack 1 de RMS 1.0Il s’agit du Service Pack 1 de RMS 1.0 Attention: assez différent de RMS 1.0Attention: assez différent de RMS 1.0

Binaires disponibles par téléchargement sur le Binaires disponibles par téléchargement sur le site Web Microsoftsite Web Microsofthttp://www.microsoft.com/windowsserver2003/technologies/rightsmgmt/http://www.microsoft.com/windowsserver2003/technologies/rightsmgmt/

default.mspxdefault.mspx

• • Windows RMS Windows RMS • • Windows RMS Client Windows RMS Client • • Windows RMS Toolkit Windows RMS Toolkit • • Rights Management Add-on for Internet ExplorerRights Management Add-on for Internet Explorer

• • Rights Management Services SDKRights Management Services SDK• • Rights-Managed HTML SDKRights-Managed HTML SDK

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

12

PublicationPublication

Créer une licence de publication non signéeCréer une licence de publication non signée DRMCreateIssuanceLicense()DRMCreateIssuanceLicense() Droits spécifiés à l’aide d’un Droits spécifiés à l’aide d’un templatetemplate Droits spécifiés individuellementDroits spécifiés individuellement

Signer la licence de publicationSigner la licence de publication DRMGetSignedIssuanceLicenseDRMGetSignedIssuanceLicense()() Génération d’une clé de contenu Génération d’une clé de contenu DRM_AUTO_GENERATE_KEY Utilisation d’une clé de contenu existanteUtilisation d’une clé de contenu existante

Chiffrer le contenuChiffrer le contenu Avec RMS (lockbox)Avec RMS (lockbox)

DRMCreateBoundLicenseDRMCreateBoundLicense DRMCreateEnablingBitsEncryptorDRMCreateEnablingBitsEncryptor DRMEncryptDRMEncrypt

Avec CryptoAPIAvec CryptoAPI Peut se faire n’importe quand puisqu’on contrôle la génération de la Peut se faire n’importe quand puisqu’on contrôle la génération de la

clé de contenuclé de contenu Utile pour une application « serveur » sans lockboxUtile pour une application « serveur » sans lockbox

Attention: le déchiffrement se fait obligatoirement par la lockboxAttention: le déchiffrement se fait obligatoirement par la lockbox

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

13

PublicationPublication Il appartient à l’application de gérer Il appartient à l’application de gérer

(stockage/transport) la licence obtenue de (stockage/transport) la licence obtenue de DRMGetSignedIssuanceLicenseDRMGetSignedIssuanceLicense PWSTRPWSTR

La licence de publication peut être stockée avec le La licence de publication peut être stockée avec le contenucontenu Office 2003 et RMA utilisent un Office 2003 et RMA utilisent un streamstream dans un fichier dans un fichier

Structured StorageStructured Storage ( (compound filecompound file)) Recommandé…Recommandé…

Si la licence de publication est conservée Si la licence de publication est conservée séparément, il faut un moyen de la lier au contenuséparément, il faut un moyen de la lier au contenu L'attribut L'attribut ContentIDContentID d'une licence de publication permet de d'une licence de publication permet de

faire cette liaisonfaire cette liaison

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

14

PublicationPublication

aDroits et

ayants droits (adresses e-

mail)

Clé de contenu

Chiffré avec clé publique

serveurRSA 1024

Licence publicatio

n

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

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

15

ConsommationConsommation Localiser une licence d’utilisation localementLocaliser une licence d’utilisation localement

DRMEnumerateLicenseDRMEnumerateLicense

Si pas de licence d’utilisation dans le store localSi pas de licence d’utilisation dans le store local Retrouver la licence de publication - PWSTRRetrouver la licence de publication - PWSTR Obtenir une licence d’utilisation du serveur RMSObtenir une licence d’utilisation du serveur RMS

DRMAcquireLicenseDRMAcquireLicense Fourniture de la licence de publicationFourniture de la licence de publication

• DRMCreateLicenseStorageSessionDRMCreateLicenseStorageSession (PWSTR) (PWSTR)

Authentification de l’utilisateur (crédentiels)Authentification de l’utilisateur (crédentiels) Par défaut l’API utilise une RAC appropriée si présente sur le Par défaut l’API utilise une RAC appropriée si présente sur le

disquedisque Sinon, fourniture d’une RAC utilisateur spécifiqueSinon, fourniture d’une RAC utilisateur spécifique

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

16

ConsommationConsommation

aDroits et

ayants droits (adresses e-

mail)

Clé de contenuChiffré avec

clé publique serveur

Licence publicatio

n

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 utilisatio

n

Clé de contenu

Droits pour l’utilisateur

Chiffrée avec la clé

publique de l’utilisateur

Obtenue du serveur RMS

Chiffrés avec la clé de contenu

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

17

ConsommationConsommation On a la licence d’utilisationOn a la licence d’utilisation

DRMEnumerateLicenseDRMEnumerateLicense

Faire un bind de la licence d’utilisationFaire un bind de la licence d’utilisation DRMCreateBoundLicenseDRMCreateBoundLicense On bind pour un principalOn bind pour un principal On bind pour des droits spécifiques (e.g. « EDIT », On bind pour des droits spécifiques (e.g. « EDIT »,

« COPY »)« COPY ») Mais retourne tous les droits de l’utilisateursMais retourne tous les droits de l’utilisateurs On peut les mémoriser/activer/griser les menusOn peut les mémoriser/activer/griser les menus

Déchiffrer le contenu, l’exercice du droitDéchiffrer le contenu, l’exercice du droit DRMCreateEnablingBitsDecryptorDRMCreateEnablingBitsDecryptor

Un seul décrypteur par droit à exercerUn seul décrypteur par droit à exercer Clé de contenuClé de contenu

DRMDecryptDRMDecrypt Obligatoirement avec la lockboxObligatoirement avec la lockbox

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

18

Best practicesBest practices Une fois déchiffré, il appartient à l’application de Une fois déchiffré, il appartient à l’application de

protéger le contenu contre un usage contraire au protéger le contenu contre un usage contraire au droit pour lequel le contenu a été déchiffrédroit pour lequel le contenu a été déchiffré Se conformer au droit pour lequel le Se conformer au droit pour lequel le bindbind a été demandé a été demandé

On peut mémoriser les droits pour activer/griser On peut mémoriser les droits pour activer/griser les menus en fonctionles menus en fonction Mais refaire le bind au moment d’une actionMais refaire le bind au moment d’une action

Conserver le contenu en clair le moins longtemps Conserver le contenu en clair le moins longtemps possiblepossible Déchiffrer, utiliser, détruireDéchiffrer, utiliser, détruire

S’assurer que l’application est en mesure d’activer S’assurer que l’application est en mesure d’activer la machine et d’enrôler l’utilisateur, si nécessairela machine et d’enrôler l’utilisateur, si nécessaire

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

19

Services RMSServices RMS

Services Web ASPNETServices Web ASPNET Protocole SOAP sur HTTP/HTTPSProtocole SOAP sur HTTP/HTTPS Répertoire virtuel _wmcs dans le Default Web Site (ports Répertoire virtuel _wmcs dans le Default Web Site (ports

80 et 443)80 et 443) https://servername/_wmcs/Certificationhttps://servername/_wmcs/Certification https://servername/_wmcs/Licensinghttps://servername/_wmcs/Licensing

ServicesServices Certification utilisateur – liaison machine/utilisateurCertification utilisateur – liaison machine/utilisateur

Une fois par utilisateur par machineUne fois par utilisateur par machine Certification/Certification.asmxCertification/Certification.asmx

LicensingLicensing – licence d'utilisation – licence d'utilisation Une fois par contenu par utilisateurUne fois par contenu par utilisateur Licensing/Publish.asmxLicensing/Publish.asmx Licensing/License.asmxLicensing/License.asmx

Enrôlement de serveurs de licences subordonnésEnrôlement de serveurs de licences subordonnés Certification/SubEnrollService.asmxCertification/SubEnrollService.asmx

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

20

Application ServeurApplication Serveur Doit pouvoir supporter la chargeDoit pouvoir supporter la charge

Requêtes clientRequêtes client Portail Web, Gestion de documents, Workflow…Portail Web, Gestion de documents, Workflow…

Taches à effectuerTaches à effectuer Anti-virus, Protection d’e-mail, ArchivageAnti-virus, Protection d’e-mail, Archivage

Lockbox spécifique multi-threadedLockbox spécifique multi-threaded DRMSetGlobalOptionsDRMSetGlobalOptions permet de spécifier la lockbox serveurpermet de spécifier la lockbox serveur secproc_ssp.dll, secproc_ssp_isv.dllsecproc_ssp.dll, secproc_ssp_isv.dll

Peut publier et consommerPeut publier et consommer Peut obtenir des licences d’utilisation pour ses clientsPeut obtenir des licences d’utilisation pour ses clients N’a pas besoin d’être authentifiéeN’a pas besoin d’être authentifiée

Pas de manifestePas de manifeste Services Web spécifiques pour les applications serveursServices Web spécifiques pour les applications serveurs

Certification/ServerCertification.asmxCertification/ServerCertification.asmx Licensing/Server.asmxLicensing/Server.asmx Licensing/EditIssuanceLicense.asmxLicensing/EditIssuanceLicense.asmx

……

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

21

Application Serveur sans LockboxApplication Serveur sans Lockbox Pas de consommationPas de consommation

Publication de contenu protégé seulementPublication de contenu protégé seulement

Publication en lignePublication en ligne C’est le serveur RMS qui signe la licence de publicationC’est le serveur RMS qui signe la licence de publication Permet de déplacer la charge CPU vers RMSPermet de déplacer la charge CPU vers RMS

Les librairies clientes RM sont quand même Les librairies clientes RM sont quand même utiliséesutilisées Pour celles qui ne nécessitent pas la lockboxPour celles qui ne nécessitent pas la lockbox

Web servicesWeb services GetLicensorCertificateGetLicensorCertificate, , AcquireIssuanceLicenseAcquireIssuanceLicense

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

22

Publication en lignePublication en ligne Génération d’une clé de chiffrement et chiffrement Génération d’une clé de chiffrement et chiffrement

du contenudu contenu CryptoAPI, Classes .NetCryptoAPI, Classes .Net

GetLicensorCertificateGetLicensorCertificate (SOAP) (SOAP) Obtention du certificat serveurObtention du certificat serveur

DRMGetSignedIssuanceLicenseDRMGetSignedIssuanceLicense (local) (local) Flag DRM_SERVER_ISSUANCELICENSEFlag DRM_SERVER_ISSUANCELICENSE Protection de la licence non signéeProtection de la licence non signée

Chiffrement des droits avec la clé de contenuChiffrement des droits avec la clé de contenu Chiffrement de la clé de session avec la clé publique du Chiffrement de la clé de session avec la clé publique du

serveurserveur

AcquireIssuanceLicenseAcquireIssuanceLicense (SOAP) (SOAP) Envoi de la licence non signée au serveurEnvoi de la licence non signée au serveur Réception en retour de la licence signéeRéception en retour de la licence signée

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

23

RMHRMH Rights Managed HTMLRights Managed HTML

Format (publié) pour la protection de contenu HTML avec RMSFormat (publié) pour la protection de contenu HTML avec RMS MHTML (MHTML (MIME Encapsulation of Aggregate HTML)MIME Encapsulation of Aggregate HTML)

RMA – Rights Management Addon pour Internet ExplorerRMA – Rights Management Addon pour Internet Explorer Viewer de fichier RMHViewer de fichier RMH

Une application crée du contenu protégé au format RMHUne application crée du contenu protégé au format RMH L’utilisateur accède au contenu selon ses droits avec Internet L’utilisateur accède au contenu selon ses droits avec Internet

ExplorerExplorer Après avoir installé le module RMAAprès avoir installé le module RMA

AvantageAvantage Simplifie la problématique de l’accès au contenu protégé et sa Simplifie la problématique de l’accès au contenu protégé et sa

consommationconsommation On peut protéger son contenu en ne développant que la partie On peut protéger son contenu en ne développant que la partie

« publication » de l’application« publication » de l’application

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

24

RMHRMH Fichier extension Fichier extension .rmh.rmh

Peut être n’importe quelle autre extension, mais Peut être n’importe quelle autre extension, mais .rmh.rmh fait fait partie des extensions contrôlées par RMApartie des extensions contrôlées par RMA

OLE Structured Storage (Compound File)OLE Structured Storage (Compound File) StreamStream \0x09DataSpaces \0x09DataSpaces

Contient les licences (publication et –optionnel- utilisation)Contient les licences (publication et –optionnel- utilisation) StreamStream \0x09DRMViewerContent \0x09DRMViewerContent

Contenu au format MHTML (rendition HTML)Contenu au format MHTML (rendition HTML) Chiffré avec RMSChiffré avec RMS

Tant que RMA trouve ces deux Tant que RMA trouve ces deux streamsstreams, il peut , il peut traiter le fichiertraiter le fichier

Rights-Managed HTML SDKRights-Managed HTML SDK Pour créer ces streams à partir d’une rendition MHTMLPour créer ces streams à partir d’une rendition MHTML MHTML peut contenir des messages RFC822MHTML peut contenir des messages RFC822

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

25

RMHRMH Applications génèrent du RMHApplications génèrent du RMH

Office 2003Office 2003 additional settings/allow users with earlier versions…additional settings/allow users with earlier versions… Option par défautOption par défaut

Outlook 2003Outlook 2003 SystématiqueSystématique RMH est le format natif pour un message protégé avec RMRMH est le format natif pour un message protégé avec RM MHTML peut contenir des messages RFC822MHTML peut contenir des messages RFC822

Consommation IE/OWAConsommation IE/OWA

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

26

Publication avec mapping des ACLs NTFS sur les droits

RMS

Application Web ASPNET - rmhstore Serveur

RMS

Application Serveur du SDKApplication Serveur du SDK

Poste ClientIE/RMA

Client RMS

Serveur de fichiers

(repository)

Get

SecProc

RMH EditIssuanceLicenseEditIssuanceLicenseAcquirereLicenseAcquirereLicense

Signature licences de publicationEmission licences d’utilisation

RACDéchiffrement

Fichiers Fichiers RMHRMH

Post (MHT)SOAP

GetLicensorCertificateGetLicensorCertificate AcquireIssuanceLicense AcquireIssuanceLicense

Admin

ACLs//server/rep

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

DémoDémo

Document Library SampleDocument Library Sample

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

28

ActivationActivation Obtention d’un certificat machineObtention d’un certificat machine

Généré localement par le Security ProcessorGénéré localement par le Security Processor RSA 1024RSA 1024

Ne nécessite pas les droits d’administrateurNe nécessite pas les droits d’administrateur L’activation de la machine spécifique à chaque utilisateur L’activation de la machine spécifique à chaque utilisateur

(CryptoAPI – profil de l’utilisateur)(CryptoAPI – profil de l’utilisateur)

DRMIsActivated(DRM_ACTIVATE_MACHINE)DRMIsActivated(DRM_ACTIVATE_MACHINE) DRMActivateDRMActivate((DRM_ACTIVATE_MACHINEDRM_ACTIVATE_MACHINE))

Clé de registre indique la hiérarchieClé de registre indique la hiérarchie DRMSetGlobalOptionsDRMSetGlobalOptions positionne la lockbox (client ou positionne la lockbox (client ou

serveur) serveur)

Si non activée, API telles que Si non activée, API telles que DRMGetSecurityProviderDRMGetSecurityProvider ou ou DRMInitEnvironmentDRMInitEnvironment échouentéchouent E_DRM_NEEDS_MACHINE_ACTIVATIONE_DRM_NEEDS_MACHINE_ACTIVATION

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

29

Certification de l’utilisateurCertification de l’utilisateur Obtention d’une RAC (Rights Account Certificate)Obtention d’une RAC (Rights Account Certificate)

Contient la clé privée et la clé publique de l’utilisateur Contient la clé privée et la clé publique de l’utilisateur (RSA 1024)(RSA 1024)

La clé privée est chiffrée avec la clé publique de la La clé privée est chiffrée avec la clé publique de la machinemachine

Liée à une machineLiée à une machine

Logique identique à l’activation de la machineLogique identique à l’activation de la machine DRMIsActivated(DRM_ACTIVATE_GROUPIDENTITY)DRMIsActivated(DRM_ACTIVATE_GROUPIDENTITY) DRMGetServiceLocationDRMGetServiceLocation(<service type> = Certification)(<service type> = Certification) DRMActivate(DRM_ACTIVATE_GROUPIDENTITY)DRMActivate(DRM_ACTIVATE_GROUPIDENTITY)

Si l’utilisateur n’a pas de certificat, Si l’utilisateur n’a pas de certificat, DRMInitEnvironmentDRMInitEnvironment échoue échoue E_DRM_NEEDS_GROUPIDENTITY_ACTIVATIONE_DRM_NEEDS_GROUPIDENTITY_ACTIVATION

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

30

Client Licensor CertificateClient Licensor Certificate Nécessaire pour signer des licences de publication Nécessaire pour signer des licences de publication

sans avoir à contacter le serveursans avoir à contacter le serveur Publication hors lignePublication hors ligne

Utilisé par les applications clientesUtilisé par les applications clientes DRMAcquireLicenseDRMAcquireLicense

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

31

ManifesteManifeste Licence XrMLLicence XrML

Contient les condensés (SHA-1) de chaque moduleContient les condensés (SHA-1) de chaque module <MODULE type="required"><MODULE type="required">

<OBJECT><OBJECT><ID <ID

type="filename">InitILFromILTemplate.exe</ID> type="filename">InitILFromILTemplate.exe</ID> </OBJECT></OBJECT><DIGEST><DIGEST>

<ALGORITHM>SHA1</ALGORITHM> <ALGORITHM>SHA1</ALGORITHM> <VALUE encoding="base64" <VALUE encoding="base64"

size="160">5ry9HovLxkUcwP/tlVL7CuQopIw=</VALUE> size="160">5ry9HovLxkUcwP/tlVL7CuQopIw=</VALUE> </DIGEST></DIGEST></MODULE></MODULE>

Signée avec clé privée du développeurSignée avec clé privée du développeur Clé publique développeur doit être certifiée dans une Clé publique développeur doit être certifiée dans une

hiérarchiehiérarchie RMS App-Signing CARMS App-Signing CA http://msdn.microsoft.com/library/default.asp?url=/http://msdn.microsoft.com/library/default.asp?url=/

library/en-us/dnrmsdk/html/RM_LicensingInformation.asplibrary/en-us/dnrmsdk/html/RM_LicensingInformation.asp DRMInitEnvironmentDRMInitEnvironment

Prend en entrée le manifestePrend en entrée le manifeste Procède à la vérificationProcède à la vérification

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

32

HiérarchiesHiérarchies Il faut obtenir…Il faut obtenir…

Un certificat (Un certificat (certificate chaincertificate chain) pour signer le manifeste) pour signer le manifeste Une lockbox et certificat machineUne lockbox et certificat machine Un certificat utilisateurUn certificat utilisateur

… … dans la même hiérarchie!dans la même hiérarchie!

Microsoft opère deux hiérarchiesMicrosoft opère deux hiérarchies Pré-productionPré-production ProductionProduction

Savoir dans quelle hiérarchie on estSavoir dans quelle hiérarchie on est Certificat machine - Certificat machine - IssuerIssuer

<NAME>Machine Activation Server</NAME><NAME>Machine Activation Server</NAME> « ISV »« ISV »

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

33

Découverte des servicesDécouverte des services Client RMS – Client RMS – DRMGetServiceLocationDRMGetServiceLocation

Distribution pointDistribution point dans la licence dans la licence URL intranetURL intranet URL extranetURL extranet

Clé registreClé registre CertificationCertification

HKLM\SOFTWARE\Microsoft\MSDRM\ServiceLocation\ActivationHKLM\SOFTWARE\Microsoft\MSDRM\ServiceLocation\Activation Publication, Client LicensorPublication, Client Licensor

HKLM\SOFTWARE\Microsoft\MSDRM\ServiceLocation\EnterprisePublishingHKLM\SOFTWARE\Microsoft\MSDRM\ServiceLocation\EnterprisePublishing

Recherche AD (Recherche AD (serviceConnectionPointserviceConnectionPoint)) Recherche UDDIRecherche UDDI

Office 2003Office 2003 Une application RMS peut avoir sa propre logiqueUne application RMS peut avoir sa propre logique Office 2003 comporte des clés de registre qui ont précédence Office 2003 comporte des clés de registre qui ont précédence

sur le client RMSsur le client RMS HKLM\Software\Microsoft\Office\11.0\Common\DRM\HKLM\Software\Microsoft\Office\11.0\Common\DRM\

CorpCertificationserverCorpCertificationserver

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

34

Découverte des servicesDécouverte des services

Inscription dans ADInscription dans AD Page d'administrationPage d'administration Outil ADSCPRegisterOutil ADSCPRegister

(toolkit)(toolkit)

Global CatalogGlobal Catalog Partition de configurationPartition de configuration

Services\Rights Management ServicesServices\Rights Management Services Objet SCP (serviceConnectionPoint) Objet SCP (serviceConnectionPoint) MSRMRootCluster, MSRMRootCluster,

MSDRMS2.0?MSDRMS2.0? serviceBindingInformationserviceBindingInformation

• http://http://clusternameclustername/_wmcs/Certification/_wmcs/Certification

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

35

Services RMS sur l’Internet (MSN)Services RMS sur l’Internet (MSN)

UDDI Business Registry (UBR)UDDI Business Registry (UBR) HTTP://UDDI.MICROSOFT.COMHTTP://UDDI.MICROSOFT.COM HTTP://UDDI.IBM.COMHTTP://UDDI.IBM.COM HTTP://UDDI.SAP.COMHTTP://UDDI.SAP.COM

Enrôlement serveurEnrôlement serveur https://activation.drm.microsoft.com/enrollment/enrollservice.asmxhttps://activation.drm.microsoft.com/enrollment/enrollservice.asmx

Activation/certification productionActivation/certification production https://certification.drm.microsoft.com/certification/https://certification.drm.microsoft.com/certification/

certification.asmxcertification.asmx

Activation/certification pré-productionActivation/certification pré-production https://certification.isv.drm.microsoft.com/certificationhttps://certification.isv.drm.microsoft.com/certification

LicensingLicensing https://licensing.drm.microsoft.com/licensinghttps://licensing.drm.microsoft.com/licensing

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

Questions?Questions?

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

37

Client – où sont les clés?Client – où sont les clés? En principe toutes les bi-clés RSA sont 1024, y En principe toutes les bi-clés RSA sont 1024, y

compris celles de la machinecompris celles de la machine

Profil utilisateur la clé privée machine: Profil utilisateur la clé privée machine: machine_privmachine_priv Protection DPAPI pour l’utilisateurProtection DPAPI pour l’utilisateur Entropie supplémentaire issue des caractéristiques de la Entropie supplémentaire issue des caractéristiques de la

machinemachine Certificat machine contient la clé publique Certificat machine contient la clé publique

machine_pubmachine_pub RAC contientRAC contient

clé publique clé publique user_pubuser_pub clé privée clé privée user_privuser_priv chiffrée pour la machine chiffrée pour la machine

user_privuser_privmachine_pubmachine_pub

CLC contient CLC contient publishing_pubpublishing_pub et et publishing_privpublishing_privuser_pubuser_pub

Licence publication contient Licence publication contient Content_KeyContent_Keyserver_pubserver_pub

Licence utilisation contient Licence utilisation contient Content_KeyContent_Keyuser_pubuser_pub

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

38

Serveur – où sont les clés?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 serviceMot de passe chiffré avec mot de passe du compte de service Stockage dans base SQL de configurationStockage dans base SQL de configuration

Best practice -> mot de passe pour le compte de serviceBest practice -> mot de passe pour le compte de service CSPCSP

Boîtier HSM ou CSP logicielBoîtier HSM ou CSP logiciel Planifier utilisation en clusterPlanifier utilisation en cluster

Clé publique serveur: dans Server Licensor Certificate (SLC)Clé publique serveur: dans Server Licensor Certificate (SLC) Paire de clé des RACPaire de clé des RAC

Base SQL de configurationBase SQL de configuration Chiffrement avec la clé publique du serveur RMSChiffrement avec la clé publique du serveur RMS

Trusts RMTrusts RM Serveurs de certification (SLC)Serveurs de certification (SLC)

Base SQL de configurationBase SQL de configuration Serveurs de licence (clé privée)Serveurs de licence (clé privée)

Base SQL de configurationBase SQL de configuration Chiffrement avec clé publique du serveur RMSChiffrement avec clé publique du serveur RMS

Page 39: Windows Rights Management Services SDK Jean-Yves Poublan Microsoft France.
Page 40: Windows Rights Management Services SDK Jean-Yves Poublan Microsoft France.

Slides de Slides de référenceréférence

RMS SP1RMS SP1

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

41

Nouveautés RMS SP1Nouveautés RMS SP1 Pas d’activation de la machine client auprès d’un Pas d’activation de la machine client auprès d’un

serveur d’activation – le client RMS s’auto-activeserveur d’activation – le client RMS s’auto-active Bi-clé RSA 1024 pour le certificat machineBi-clé RSA 1024 pour le certificat machine Enrôlement hors ligne du serveur racine possibleEnrôlement hors ligne du serveur racine possible Utilisation de CryptoAPI par les lockboxUtilisation de CryptoAPI par les lockbox Lockbox disponible coté serveurLockbox disponible coté serveur

Applications serveur peuvent consommer du contenu Applications serveur peuvent consommer du contenu protégé (anti-virus, etc…)protégé (anti-virus, etc…)

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

42

Trusts RMSTrusts RMSDeux sortes de trustsDeux sortes de trusts

Trusted User DomainTrusted User Domain Scénarios d'interopérabilitéScénarios d'interopérabilité

Entre organisationsEntre organisations Entre forêtsEntre forêts Avec Avec PassportPassport

Ressemble à une CTL en PKIRessemble à une CTL en PKI On truste une clé publiqueOn truste une clé publique

C'est un vrai trustC'est un vrai trust

Trusted Publishing DomainTrusted Publishing Domain Scénario de migration ou de fusionScénario de migration ou de fusion

Rachat de sociétéRachat de société Consolidation de serveursConsolidation de serveurs

Pas vraiment un trustPas vraiment un trust Pas trivialPas trivial

Comment les comptes utilisateurs sont-ils transférés?Comment les comptes utilisateurs sont-ils transférés? Comment les Comment les templatestemplates sont-elles migrées? sont-elles migrées?

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

43

Trusts RMSTrusts RMSTrusted User DomainTrusted User Domain

Un domaine utilisateurs RMS = un serveur racine d'entreprise, les Un domaine utilisateurs RMS = un serveur racine d'entreprise, les RACs qu'il délivre (ses utilisateurs), et les serveurs licence qui lui RACs qu'il délivre (ses utilisateurs), et les serveurs licence qui lui sont subordonnéssont subordonnés

Par défaut un serveur de licence n'octroie de licence d'utilisation Par défaut un serveur de licence n'octroie de licence d'utilisation qu'à des RACs de son domainequ'à des RACs de son domaine

Permet aux utilisateurs du domaine trusté (A) de consommer du Permet aux utilisateurs du domaine trusté (A) de consommer du contenu du domaine trustant (B)contenu du domaine trustant (B) Permet aux utilisateurs du domaine trustant (B) de publier du contenu a Permet aux utilisateurs du domaine trustant (B) de publier du contenu a

destination d'utilisateurs du domaine trusté (A), sachant qu'il sera destination d'utilisateurs du domaine trusté (A), sachant qu'il sera consommableconsommable

S'établit au niveau de chaque cluster (serveur) de licenceS'établit au niveau de chaque cluster (serveur) de licence On importe la clé publique du domaine trusté (serveur de certification On importe la clé publique du domaine trusté (serveur de certification

racine d'entreprise A)racine d'entreprise A)

Utilisateurs (RAC)

entreprise

Certification racine

d'entrepriseUser domain

B

LicensingUtilisateurs (RAC)

entreprise

Licensing

Certification racine

d'entreprise(User domain

A)

Entreprise A Entreprise B

TrustsTrusts

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

44

Trusts RMSTrusts RMSTrusted Publishing DomainTrusted Publishing Domain

Un domaine de publication RMS = un serveur de licence et les licences qu'il Un domaine de publication RMS = un serveur de licence et les licences qu'il émetémet

Par défaut un cluster (serveur) de licence ne peut octroyer de licence 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 d'utilisation que pour du contenu dont les licences de publications sont les siennessiennes Clé de contenu chiffrée avec sa clé publiqueClé de contenu chiffrée avec sa clé publique

Permet à un serveur de licence (domaine de publication) d'émettre des 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 licences d'utilisation pour du contenu qui a été publié sur un autre serveur de licencede licence Permet aux utilisateurs de contenu d'un serveur de licence (A) d'utiliser un autre Permet aux utilisateurs de contenu d'un serveur de licence (A) d'utiliser un autre

serveur de licence (B) pour accéder à ce contenuserveur de licence (B) pour accéder à ce contenu S'établit au niveau de chaque cluster (serveur) de licenceS'é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 N'a de sens que pour des fusions ou des consolidations, ou legacy suite à un

decommissioningdecommissioning Il faut rediriger l'URL du serveur décommissionné vers le nouveau serveurIl faut rediriger l'URL du serveur décommissionné vers le nouveau serveur

Serveur de licence B

Serveur de licence A

Domaine de Domaine de publication publication

AA

Domaine de Domaine de publication Bpublication B

Contenu Contenu domaine domaine

BB

Contenu Contenu domaine domaine

AA

Licences Licences

utilisationutilisation

Licences Licences utilisationutilisation

Clé privéeClé privée

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

45

Trusts RMSTrusts RMS

Trust PassportTrust Passport C'est un trust de type C'est un trust de type User DomainUser Domain

Désactivé par défautDésactivé par défaut Si activé, les utilisateurs Si activé, les utilisateurs PassportPassport peuvent consommer du peuvent consommer du

contenu publiés par les utilisateurs de l'organisationcontenu publiés par les utilisateurs de l'organisation Mais en principe pas l’inverse car le service de licence gratuit Mais en principe pas l’inverse car le service de licence gratuit

hostéhosté par MSN ne truste pas les divers déploiements par MSN ne truste pas les divers déploiements d’entreprised’entreprise

Attention: quand on truste Attention: quand on truste PassportPassport, il faut toujours , il faut toujours exclure les domaines d'adresses e-mail de l'entrepriseexclure les domaines d'adresses e-mail de l'entreprise Sinon, un utilisateur externe avec une adresse e-mail Sinon, un utilisateur externe avec une adresse e-mail

prétendue peut consommer du contenu de l'entreprise qui ne prétendue peut consommer du contenu de l'entreprise qui ne lui était pas destinélui était pas destiné

E.g. OTG en interne exclut *.microsoft.comE.g. OTG en interne exclut *.microsoft.com

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

46

Trusts RMSTrusts RMS

Autres remarquesAutres remarques

Les trusts sont établis Les trusts sont établis out of bandout of band Les trusts ne requièrent aucune connexionLes trusts ne requièrent aucune connexion

Pas de réplication ou validation en lignePas de réplication ou validation en ligne

L'administrateur établit, détruit, et met à jour les L'administrateur établit, détruit, et met à jour les trusts manuellementtrusts manuellement

Les utilisateurs ont besoin d'accéder au serveur de Les utilisateurs ont besoin d'accéder au serveur de licence RMS trustant (sur lequel l'administrateur a licence RMS trustant (sur lequel l'administrateur a établit un trust)établit un trust)

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

47

Principes authentificationPrincipes authentification Serveur de certificationServeur de certification

Windows Integrated – KerberosWindows Integrated – Kerberos (Entreprise) (Entreprise) Cas d’obtention d’une RAC depuis Intranet – Valide 1 an Cas d’obtention d’une RAC depuis Intranet – Valide 1 an

(configurable)(configurable) Basic Basic sur HTTPS (Entreprise)sur HTTPS (Entreprise)

Cas d’obtention d’une TRAC depuis Extranet – Valide 15 mnCas d’obtention d’une TRAC depuis Extranet – Valide 15 mn PassportPassport (Particulier) (Particulier)

Serveur de licensingServeur de licensing Authentification à base de XrML (RAC)Authentification à base de XrML (RAC) Service Web peut être accessible en anonymeService Web peut être accessible en anonyme Pour l’accès Intranet, une authentification Windows Integrated Pour l’accès Intranet, une authentification Windows Integrated

apporte un plusapporte un plus Sécurité en profondeurSécurité en profondeur

Meilleure pratique: protéger les échanges de certification et Meilleure pratique: protéger les échanges de certification et de licensing via SSL/TLSde licensing via SSL/TLS

Note: Avec RMS, l’identité est couramment matérialisée par l’adresse e-mail. Cependant l’utilisation de SID est possible, à la discrétion des applications RMS. Dans tous les cas l’authentification est faite par AD ou Passeport. On délivre une RAC à un compte utilisateur Active Directory ou Passport dûment authentifié.

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

48

PrincipesPrincipes Chaque serveur peut être un cluster NLBChaque serveur peut être un cluster NLB

Cluster = serveur logique ou serviceCluster = serveur logique ou service Composé de deux (ou plus?) serveurs physiquesComposé de deux (ou plus?) serveurs physiques

Le cluster comporte une base SQLLe cluster comporte une base SQL Base SQL Server peut aussi être en clusterBase SQL Server peut aussi être en cluster

C'est toujours le cluster (serveur) qui a émis la C'est toujours le cluster (serveur) qui a émis la licence de publication qui émet la licence licence de publication qui émet la licence d'utilisationd'utilisation L'utilisateur doit accéder au serveur de L'utilisateur doit accéder au serveur de licensinglicensing Sauf migration (Sauf migration (Trusted Publishing DomainTrusted Publishing Domain))

Cluster RMS

NLBNLB

Serveur SQL

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

49

Client – où sont les clés?Client – où sont les clés? En principe toutes les bi-clés RSA sont 1024, y En principe toutes les bi-clés RSA sont 1024, y

compris celles de la machinecompris celles de la machine

Profile utilisateur la clé privée machine: Profile utilisateur la clé privée machine: machine_privmachine_priv Protection DPAPI pour l’utilisateurProtection DPAPI pour l’utilisateur Entropie supplémentaire issue des caractéristiques de la Entropie supplémentaire issue des caractéristiques de la

machinemachine Certificat machine contient la clé publique Certificat machine contient la clé publique

machine_pubmachine_pub RAC contientRAC contient

clé publique clé publique user_pubuser_pub clé privée clé privée user_privuser_priv chiffrée pour la machine chiffrée pour la machine

user_privuser_privmachine_pubmachine_pub

CLC contient CLC contient publishing_pubpublishing_pub et et publishing_privpublishing_privuser_pubuser_pub

Licence publication contient Licence publication contient Content_KeyContent_Keyserver_pubserver_pub

Licence utilisation contient Licence utilisation contient Content_KeyContent_Keyuser_pubuser_pub

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

50

Serveur – où sont les clés?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 serviceMot de passe chiffré avec mot de passe du compte de service Stockage dans base SQL de configurationStockage dans base SQL de configuration

Best practice -> mot de passe pour le compte de serviceBest practice -> mot de passe pour le compte de service CSPCSP

Boîtier HSM ou CSP logicielBoîtier HSM ou CSP logiciel Planifier utilisation en clusterPlanifier utilisation en cluster

Clé publique serveur: dans Server Licensor Certificate (SLC)Clé publique serveur: dans Server Licensor Certificate (SLC) Paire de clé des RACPaire de clé des RAC

Base SQL de configurationBase SQL de configuration Chiffrement avec la clé publique du serveur RMSChiffrement avec la clé publique du serveur RMS

Trusts RMTrusts RM Serveurs de certification (SLC)Serveurs de certification (SLC)

Base SQL de configurationBase SQL de configuration Serveurs de licence (clé privée)Serveurs de licence (clé privée)

Base SQL de configurationBase SQL de configuration Chiffrement avec clé publique du serveur RMSChiffrement avec clé publique du serveur RMS

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

51

Sécurité des pipelinesSécurité des pipelines SSL/TLS (authentification serveur seulement) SSL/TLS (authentification serveur seulement)

recommandé sur les pipelines RMSrecommandé sur les pipelines RMS Protection supplémentaire de l'authentification "Windows Protection supplémentaire de l'authentification "Windows

Integrated"Integrated" Protection supplémentaire des RAC lors des requêtes Protection supplémentaire des RAC lors des requêtes

SOAPSOAP Confidentialité des identifiants d'utilisateurs (RAC) et des Confidentialité des identifiants d'utilisateurs (RAC) et des

identifiants de contenu (licence publication)identifiants de contenu (licence publication) Attention: SSL/TLS => impact performanceAttention: SSL/TLS => impact performance

Cartes accélératricesCartes accélératrices

Configuration des permissions sur chaque pipelineConfiguration des permissions sur chaque pipeline Par défaut - Par défaut - Authenticated UsersAuthenticated Users Best Practice: garder l'authentification Windows sur le Best Practice: garder l'authentification Windows sur le

pipeline License.asmx pour une utilisation intranetpipeline License.asmx pour une utilisation intranet Cependant l'accès anonyme peut être requis lors de Cependant l'accès anonyme peut être requis lors de trusts trusts

RMRM (dont (dont PassportPassport))

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

52

Emplacement des licencesEmplacement des licences

RMS SP1RMS SP1

Client RMS lockboxClient RMS lockbox WindowsDriveWindowsDrive\Documents and Settings\\Documents and Settings\UserIdUserId\Local \Local

Settings\Application Data\Microsoft\DRMSettings\Application Data\Microsoft\DRM

Server RMS lockboxServer RMS lockbox WindowsDriveWindowsDrive\Documents and Settings\All Users\\Documents and Settings\All Users\

Application Data\Microsoft\DRM\Server\Application Data\Microsoft\DRM\Server\UserSidUserSid

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

53

ManifesteManifeste Applications doivent avoir leurs DLL et EXE signées par la clé privée Applications doivent avoir leurs DLL et EXE signées par la clé privée

du développeurdu développeur La signature réside dans le manifeste de l'application: licence XrMLLa signature réside dans le manifeste de l'application: licence XrML

<BODY type=“LICENSE" version="3.0"><BODY type=“LICENSE" version="3.0"> <OBJECT type="<OBJECT type="ManifestManifest"> ">

Signée clé privée du dévelopeurSignée clé privée du dévelopeur Doit être distribuée avec l'applicationDoit être distribuée avec l'application

Contient les hash (SHA-1) de chaque moduleContient les hash (SHA-1) de chaque module <MODULE type="required"><MODULE type="required">

<OBJECT><OBJECT><ID type="filename">InitILFromILTemplate.exe</ID> <ID type="filename">InitILFromILTemplate.exe</ID>

</OBJECT></OBJECT><DIGEST><DIGEST>

<ALGORITHM>SHA1</ALGORITHM> <ALGORITHM>SHA1</ALGORITHM> <VALUE encoding="base64" <VALUE encoding="base64"

size="160">5ry9HovLxkUcwP/tlVL7CuQopIw=</VALUE> size="160">5ry9HovLxkUcwP/tlVL7CuQopIw=</VALUE> </DIGEST></DIGEST></MODULE></MODULE>

Genmanifest.exeGenmanifest.exe Fichier de configuration .mcfFichier 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 <source chain path>-chain <source chain path> 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 Avec cette option, le manifeste est XrML en base64 avec une chaîne

complète et validecomplète et valide Générer et signer le manifeste à chaque buildGénérer et signer le manifeste à chaque build

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

54

Best practiceBest practice Placer dans un corps MIME dans un fichier MHTLM Placer dans un corps MIME dans un fichier MHTLM

avec deux body partsavec 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 partSi oui, invoque RMA pour afficher la deuxième body part Si non, affiche un message indiquant que le contenu est Si non, affiche un message indiquant que le contenu est

protégé et nécessite le viewer RMAprotégé et nécessite le viewer RMA Deuxième body part comprend le contenu RMHDeuxième body part comprend le contenu RMH

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

55

Composants clients RMSComposants clients RMS

Librairies clientes RMSLibrairies clientes RMS Msdrm.dll - Msdrm.dll - Redistributable par les applicationsRedistributable par les applications

API « C » (win32)API « C » (win32) Security Processor – lockboxSecurity Processor – lockbox

secproc.dllsecproc.dll, , secproc_ssp.dll, secproc_isv.dll, secproc_ssp_isv.dllsecproc_ssp.dll, secproc_isv.dll, secproc_ssp_isv.dll

Applications RMS utilisent ces APIApplications RMS utilisent ces API Chiffrement du contenuChiffrement du contenu Génération de licence de publicationGénération de licence de publication Obtention de licence d’utilisationObtention de licence d’utilisation Accès au contenu et respect des droitsAccès au contenu et respect des droits Gestion des licences et certificats sur le disqueGestion des licences et certificats sur le disque Activation de la machineActivation de la machine Localisation des services RMSLocalisation des services RMS

Librairies clientes appellent la Librairies clientes appellent la lockboxlockbox pour les opérations pour les opérations sensiblessensibles