580 likes | 862 Views
Plan. Podstawowe koncepcje RMSZasada dzialania RMSPodstawowe skladnikiUdzielanie licencjiKr?tko o instalacjiTez r?zne SDKAplikacje wykorzystujace RMS. Podstawowe koncepcje. Dzis prawa dostepu ? mechanizm ACLProblemPrawa do zasobu, nie do ?operacji"Obowiazuja tylko w ramach systemuRMS ? Rig
E N D
1. RMS kontrola dostepu do informacji w kodzie niezarzadzanym Tomasz Kopacz
2. Plan Podstawowe koncepcje RMS
Zasada dzialania RMS
Podstawowe skladniki
Udzielanie licencji
Krótko o instalacji
Tez rózne SDK
Aplikacje wykorzystujace RMS
3. Podstawowe koncepcje Dzis prawa dostepu mechanizm ACL
Problem
Prawa do zasobu, nie do operacji
Obowiazuja tylko w ramach systemu
RMS Rights Management Server
Oparte na architekturze PK
Kosztowniejsze niz ACL
Prawa do operacji
Prawa w dokumencie
Tresc samochroniaca sie
Duzo zalezy od przegladarki RMS
4. Zastosowanie Wsparcie obiegu dokumentów
Publikacja poufnych informacji
Generowanie w locie
Zabezpieczenie wiadomosci email
S/MIME architektura PK - ale tylko nadawca/odbiorca
Klauzule typu: Unauthorized forwarding,printing, copying, distribution, or use
RMS kontrolujemy tresc
Wszedzie tam gdzie tresc jest wazna i poufna
Mozna: Kod do kontroli licencjonowania (zamiast klucza sprzetowego)
5. Zasada dzialania RMS
6. Przeplyw i architektura Windows RMS
7. Podstawowe skladniki RMS
8. Skrytka klienta RMS (secrep.dll) Aktywacja: Lockbox (skrytka)
Unikalny dla danej maszyny plik DLL
Zawiera prywatny klucz dla danej maszyny, zwiazany z identyfikatorem sprzetowym (HWID)
HWID bazuje na cechach maszyny
Geometria dysku, procesor itp
SECREP.DLL odpowiada za:
Kodowanie/dekodowanie (wlasne implementacje DES i AES128)
Sprawdzanie poprawnosci aplikacji (manifest)
Sprawdzanie HWID
Przekazanie informacji do autoryzacji i identyfikacji uzytkowników
9. API RMS Komponenty klienckie posrednicza pomiedzy aplikacja wykorzystujaca RMS i lockbox (skrytka)
Msdrm.dll, Msdrmhid.dll, Msdrmctrl.dll
Podstawowe operacje:
Aktywacja komputera
Wyszukiwanie uslug RMS
Zadanie, parsowanie licencji oraz certyfikatów
Zarzadzanie licencjami
Tworzenie offline licencji publikujacego
Wszystkie operacje bezpieczenstwa sa wykonywane przez skrytke
10. Aplikacja uzywajaca RMS
Moze opierac sie na Server SDK (publikacja online?)
Moze wykorzystywac Client SDK (czyli Word 2003, Outlook 2003, RMA (do IE)) lub cos wlasnego
Aplikacja musi miec zestaw bibliotek do uzycia w srodowisku RMS i plik wykonalny podpisany przy uzyciu klucza RMS-a
Sygnatura jest dolaczona w manifescie (plik XML) dla danej aplikacji
Manifest jest podpisanym plikiem XML z identyfikatorami plików
Manifest powinien zawierac wszystkie pliki które uzywaja API klienckiego RMS
Przed uzyciem skrytki (dostepem do danych chronionych RMS) plik sa sprawdzane czy zgadzaja sie z manifestem
11. Uslugi RMS na witrynie MSN Na MSN sa niezbedne uslugi do wspierania Windows RMS
Rejestrowanie serwerów i usluga aktywacji komputerów klienckich
Mechanizm autoryzacji Passport
Latwe dzielenie informacji
Mozna uzyskac testowe licencje i sprawdzic praktycznie dzialanie RMS
Sprawdzic warunki kiedy usluga moze byc zawieszona
W zasadzie dla Office 2003
Ale równoczesnie mozna testowac wlasne aplikacje ?
12. Przeglad technologii uzywanych przezWindows RMS AD i LDAP
Przechowuje konta uzytkowników, adresy itp. Pozwala lokalizowac uslugi
.NET Framework i ASP.NET
Framework dla czesci serwerowej
SOAP i uslugi Web
Komunikacja z czescia serwerowa; wspólpraca z MSN
UDDI
Obok AD wyszukiwanie uslug RMS
MSMQ i SQL
Przechowuja informacje o konfiguracji RMS, pary kluczy uzytkowników, log aktywnosci, i tymczasowo grupy AD (wieksza wydajnosc)
XrML 1.2
Standardowy mechanizm opisu licencji i certyfikatu
13. Publikacja i wykorzystanie wiecej szczególów
Rejestracja autora
Skrytka, RAC, certyfikat publikujacego
Okreslenie praw dostepu do danej tresci
Aplikacja koduje plik kluczem symetrycznym (klucz autora na danym serwerze RMS)
Dodaje klucz do tresci
Serwer koduje klucz wlasnym kluczem publicznym
Wynik kodowania sluzy do zakodowania tresci 128 bitowym algorytmem ASE
Rozsadna wydajnosc
14. Struktura zabezpieczonego pliku
15. Wiecej szczególów
Autor rozsyla plik (publikuje)
Uzytkownik otrzymuje plik
Nie ma licencji:
Przegladarka zada licencji od serwera który wystawil certyfikat uzytkownikowi (a nie zabezpieczyl tresc). Zadanie zawiera:
Certyfikat konta odbiorcy (w tym jego klucz publiczny)
Opublikowana licencje pobrana z pliku (czyli symetryczny klucz którym zostala zakodowana tresc).
RMS sprawdza czy zadanie jest uprawnione
Tworzy licencje uzycia:
Dekoduje klucz symetryczny uzywajac klucza prywatnego na serwerze
Koduje go uzywajac klucza publicznego uzytkownika
Dodaje do licencji informacje o czasie obowiazywania, wykluczeniach dla systemu operacyjnego itp.
Licencja zwracana jest do przegladarki
Przegladarka sprawdza licencje (lancuch uprawnien, odwolania itp.)
Dekoduje go
Sprawdza jakie operacje moze wykonac z otrzymanym plikiem
16. Struktura zabezpieczonego pliku
17. Podstawowa role RMS Okreslenie zaufanych elementów
Rejestrowanie serwerów (enrollment)
Glówny serwer certyfikacji
Podserwery
Aktywacja komputera klienckiego
Certyfikacja uzytkowników
Rejestrowanie klienta do publikacji offline
Publikacja licencji uzycia
Wzorce polis
Wykorzystanie licencji aplikacja
Kodowanie i klucze
1024 bity, RSA
Symetryczne, szybkie
Lista odwolan jak w infrastrukturze PK
Lista wykluczen komputer/uzytkownik/MS Passport
Rejestrowanie (MSMQ)
18. Licencje Oraz krótki przeglad XrML
19. Typy licencji 1/2 Aktywacja (certyfikat komputera)
Licencja uzytkownika (certyfikat)
Prawa ostatecznego uzytkownika (EUL)
Dokument XrML z lista praw
Samowystarczalna
Weryfikacja:
Licencja przekazywana przez RMS klienta do RMS wystawcy i sprawdzana
Ostatnia licencja w lancuchu
Licencja GIC laczaca uzytkownika i maszyne
Group Identity Certificate
Ma kazdy uzytkownik danego komputera
Jedno konto Windows moze miec wiele certyfikatów GIC
Nie jest zwiazany z mechanizmem autoryzacji Windows, Passport
Zawiera:
Niezakodowany klucz publiczny
Klucz prywatny zakodowany kluczem maszyny
Identyfikuje uzytkownika
20. Typy licencji 2/2 Licencja wystawcy
Prawa, Uzytkownicy, Wlasciciele, Czas waznosci
URL listy odwolan
Wymagana/zabraniana aplikacja
Wg klucza publicznego/Hash/Wersja min/max
Opis slowny
SKU ID, nazwa
Przechodzi w EUL okresla prawa uzytkownika
Online pelna sciezka certyfikacji
Offline certyfikat wystawiajacego + link do URL który wystawil licencje
21. Licencje serwera (Microsoft CA Certificate)
Server Licensor Certificate
Podlegle serwery
Licencje czasowe np. raz na rok trzeba odnawiac
Obecnie na 7 lat
Uwaga na backup tresci zabezpieczonej!
Rozwiazania inne (SP1?) :
Rejestracja offline
Urzadzenia aktywacyjne
Tak naprawde zadanie - produkcja skrytki + sciezka certyfikatów
22. Sneaker NET Pozwala rejestrowac serwer gdy nie ma stalego polaczenia
Przekazywanie dokumentu XML
Dostepne w terminie pózniejszym
Prawdopodobnie razem z SP1
23. Aktywacja klienta z wykorzystaniem rozwiazania sprzetowego Np. : Rainbow - Hardware Appliance for Windows Rights Management Services for Windows Server 2003
Aktywacja w sieci w pelni izolowanej
Aktywacja kliencka przez serwer RMS przekazana do specjalnego urzadzenia
Kilka urzadzen
Redundancja
Zakladana wydajnosc:
Jedna aktywacja na sekunde na urzadzenie
Dostepne w terminie pózniejszym
24. XrML Standard przemyslowy oparty o XML
http://www.xrml.org, ContentGuard
Powstal 26 listopada 2001
Wykorzystuje: Adobe, HP, Microsoft, Xerox, Barnesandnoble.com, Time Warner Trade Publishing
Wersja 1.2
Cztery podstawowe rozszerzalne elementy
Principial komu dajemy prawo
W RMS zwykle adres email (nawet w ramach domeny)
Resource jakiego zasobu dotyczy prawo
Right jakie jest to prawo
Condition pod jakim warunkiem obowiazuje
WRMS
EDIT, OWNER, VIEWRIGHTSDATA
Reszta praw zalezy od przegladarki
25. XrML
<RIGHT name="DOCEDIT">
<CONDITIONLIST>
<ACCESS>
<PRINCIPAL>
<OBJECT>
<ID type="Unspecified" />
<NAME>a@bbb.com</NAME>
</OBJECT>
</PRINCIPAL>
</ACCESS>
</CONDITIONLIST>
</RIGHT>
26. Wsparcie zewnetrznych uzytkowników Licencja moze miec zewnetrzny URL dla wewnetrznego serwera RMS
Glówny serwer certyfikujacy moze uwzgledniac uzytkowników Passport
Ufaj certyfikatom kont RM utworzonym na podstawie uslugi Passport (RAC)
A prawa sa zwiazane z adresem email
Mozna dodac certyfikat licencjodawcy serwera domeny uzytkownika, która ma byc zaufana.
Mozna okreslic zaufanie pomiedzy serwerami w ramach jednej instalacji Enterprise
Pomiedzy domenami uzytkowników
Pomiedzy domenami publikujacych
27. Krótko o instalacji
28. Co trzeba sciagnac Dostepne pakiety
rmssetup.exe uslugi serwerowe
rms_sdk_setup.msi - SDK do tych uslug
msdrmclient.exe klient (wymagany by uzyc RMS)
rmclientsdk.exe SDK pozwalajacy napisac wlasna przegladarke RMS
rmusetup.exe dodatek do IE do przegladania zabezpieczonego MHTML
rightsmanagedhtml.msi do produkcji zabezpieczonego MHTML
rmstoolkit.msi narzedzia administracyjne
29. Administration Toolkit for Windows Rights Management Services (RMS) 1.0 Program Files\RMS Toolkit
Manipulacja Service Connection Point
ADScpRegister, GetRMScp,RMS
rmsconfigeditor do recznej edycji bazy konfiguracyjnej
OSTROZNIE
RMSDBScript skrypty do rejestrowania wykorzystania RMS
RMSEventViewer konwertuje zarejestrowane informacje do przegladania jako zdarzenia systemowe
RMS-AdminDB automatyczne wyszukiwanie bledów
RMS Q Recovery odzyskiwanie bledów z kolejki martwych wiadomosci MSMQ
RMS Service Locator gdy na serwerze potrzeba znalezc dlaczego cos nie dziala ?
30. Zupelne odinstalowanie LDP (Support Tools) do manipulacji katalogiem LDAP
CN=RightsManagementService
CN=MSDRMActivationService
31. IRM Configuration Test Dystrybucja informacji o RMS rejestr
Wyszukiwanie uslugi w AD, mechanizm polis, RMS, skrypt rejestru
IRM Configuration Test do znajdowania potencjalnych problemów na stacji klienckiej
Lista GIC, Certyfikaty, stan aktywacji itp..
RM Activation Service
RM Certification Service
RM Online Publishing Service
RM Client Enrollment Service
RMA Cloud Certification Service
Office Cloud Client Enrollment Service
Office IRM Permission Policy Path
32. Dodatek Rights Management dla IE (RMA) Dodatek do IE 6.0 SP1 oraz 5.5 SP2
Windows 98!
Pozwala obejrzec opublikowany dokument
Nie ma mozliwosci edycji/zmiany..
Tresc musi byc w HTML
RMH
Office 2003 zapisany jako HTML
Outlook Web Access i zabezpieczone maile
33. Microsoft Office 2003 Office11.adm szablon zasad (Office Resource Kit)
HKLM\Software\Microsoft\Office\11.0\Common\DRM
Najlepiej niech znajdzie w AD. Ale
CorpLicenseServer
CorpCertificationServer
HKCU\Software\Microsoft\Office\11.0\Common\DRM
Disable
DisablePassportCertification
IncludeHTML=1 wsparcie dla RMA
RequestPermissionURL gdzie prosic o wieksze uprawnienia
RequireConnection
AdminTemplatePath - sciezka do polis (Office IRM Permission Policy Path)
Wtedy pokazane beda dostepne wlasne uprawnienia (zgodnie ze schematem w XrML)
34. RMS Server 1/2 RMS Server to aplikacja ASP.NET
Komunikacja za posrednictwem SOAP
Wykorzystuje AD do autoryzacji uzytkowników, odczytywania adresów email, potwierdzania przynaleznosci do grup itp
MSMQ przesyla informacje do SQL Server
SQL Server przechowuje konfiguracje RMS, rozwiniecie grup AD, oraz loguje czynnosci klientów
IIS (z autoryzacja zintegrowana z Windows Integrated) autoryzuje uzytkowników przy dostepie do uslug SOAP
35. RMS Server 2/2 RMS server z punktu widzenia aplikacji to zestaw uslug Web
Protokól SOAP po HTTP/HTTPS z autoryzacja Windows
Tylko Windows 2003 (IIS 6)
API ma postac zadanie/odpowiedz
Bez stanu!
Typy zadan (ruch wychodzacy + przychodzacy):
Aktywacja komputera: jednorazowa: 1 + 200 KB
Certyfikacja i rejestrowanie klientów: 11 + 10 KB
Tworzenie GIC (uzytkownik + maszyna): 10 + 16 KB
Rejestracja klienta: 11+10 KB
Zadanie licencji: 22 + 10 KB
Parametry w standardzie XrML
36. RMS Services SDK Pozwala po stronie serwera publikowac tresc zabezpieczona RMS
Nie pozwala jej konsumowac
Zawiera
Dokumentacje
Interfejsy SOAP
Przykladowy portal do publikacji dokumentów MHTML
37. RMS Client SDK Wszystko co potrzebne jest aby wykorzystac tresc zabezpieczona przy uzyciu mechanizmów RMS
38. Aplikacja wykorzystujace RMS
39. Dwa typy aplikacji Prosta
Tworzenie portalu do publikacji informacji
Bardziej skomplikowana
Pisanie wlasnej przegladarki tresci RMS
40. Tworzenie publikacjiScenariusze Portal WWW
Ochrona istotnych informacji
Dynamiczna ochrona raportów/stron ASPX
Biblioteka dokumentów
Wewnetrzny portal z informacjami poufnymi
Dane osobowe, pensje itp..
Naprawde bezpieczny dostep do poczty
.
41. Przyklad kolejne czynnosci Uzytkownik A tworzy plik MHT
Zapisuje go na serwer
Serwer tworzy licencje publikujacego dla tego pliku
Koduje MHT i dodaje do niego licencje tworzac plik zlozony
Uzytkownik B chce pobrac plik. Dysponuje RMA. Serwer:
Pobiera licencje, sprawdza czy mozna przeslac plik
Zna uzytkownika (autoryzacja Windows na IIS). Wystawia licencje i dodaje ja do pliku RMH
IE pobiera plik. RMA dekoduje licencje i prezentuje uzytkownikowi jego tresc
42. Publikowanie Kodowanie tresci (CryptoAPI, DES, AES itp.)
Tworzenie licencji:
DRMCreateIssuanceLicense
DRMCreateUser
UserName, UserId, UserIdType
Email (SMTP), UNSPECIFIED ,WINDOWS / Email (SMTP), UNSPECIFIED ,PASSPORT
NULL, Everyone/Anyone/Owner,INTERNAL
DRMCreateRight
Nazwa (standard XrML lub wlasne), Zakres dat, Dowolne informacje rozszerzone
Alternatywnie: wzorzec XrML (np. pobrany z serwera RMS)
DRMSetMetaData (ContentID, SKUID, ContentType, ContentName)
Dodatkowe informacje dla aplikacji:
DRMSetApplicationSpecificData, DRMSetNameAndDescription
DRMSetUsagePolicy kontroluje jaka aplikacja moze uzywac danej tresci
Hash/klucz/zakres wersji
43. Pobieranie Znamy uzytkownika
AcquirePreLicense
<server url>/_wmcs/Licensing/License.asmx
Zwraca: AcquirePreLicenseResponse - Licencje, lancuch certyfikacji, certyfikacje referencyjne (dodatkowe)
Dopisanie licencji do pliku:
Modyfikacja MHTML, IStorage
RMA weryfikuje dane
44. Rights-Managed HTML SDK MIME Encapsulation of Aggregate HTML Documents (MHTML)
Plik zlozony (Structured Storage, COM, strumienie)
Takze NTFS
Specjalny format URL: rmh:ReservedID!EncodedDocumentURL![EncodedMIMEPart]!DocumentURL[!MIMEPart]
Base-32
Postepowanie:
Skompresowac tresc MHTML (opcja)
Zakodowac ja jako strumien MHTML (uzywajac SDK klienckiego)
Dodac zakodowana tresc
Zapisac dodatkowe informacje jako Data Spaces Storage
Podpisana licencja wystawcy.
Dodac licencje EUL
Skompresowac wyjsciowy plik MHTML
Warto sprawdzic czy RMA jest zainstalowany (OBJECT)
I jak nie wyswietlic jaki
Na marginesie to wszystko robi m. innymi Office 2003
45. Przygotowanie tresci MHTML Collaboration Data Objects (CDO)
Zwykle uzywane do tworzenia i przesylania poczty
Pozwalaja definiowac strukture listu
Czyli dokumentu MHTML
Zakodowanie/doklejenie odpowiednich informacji
Warto obejrzec cdoclib z RMS Services SDK
Wrapper do wielu funkcji maniupulujacych MHTML
46. Aplikacja kliencka - konsument (publikacja wyglada analogicznie)
Wszystko w ramach sesji klienckiej (DRMCreateClientSession)
Aktywacja
Komputera (\Documents and Settings\All Users\Application Data\Microsoft\DRM)
Uzytkownika (\Documents and Settings\<youralias>\Local Settings\Application Data\Microsoft\DRM)
Stworzenie bezpiecznego srodowiska DRM
Uzyskanie i dostep EUL
Stworzenie obiektu deszyfrujacego
Dekodowanie
Opcjonalnie: zapis informacji z powrotem
47. Odrobina paranoi Swap pamieci wirtualnej
VirtualProtect
Minimalizacja informacji dekodowanych przez program
Wydajnosc
Niestety na zasadzie albo/albo
To samo dotyczy np. dump-a
Pliki tymczasowe
Kanal komunikacyjny, przechowywanie klucza
Po co RMS jak sieci przeslemy cos niezakodowanego
DRMLoadLibrary/DRMInitEnvironment
Której bibliotece ufamy
A nie LoadLibrary!
Rozumiec prawa w RMS!
EDIT, OWNER, ALL
DRMRegisterContent
Preprodukcyjne srodowisko da sie sledzic kod; produkcyjne praktycznie nie.
48. Operacje asynchroniczne HRESULT DRMCreateClientSession( DRMCALLBACK pfnCallback
HRESULT __stdcall OnStatus( DRM_STATUS_MSG msg, HRESULT hr, VOID *pvParam, VOID *pvContext )
Mechanizm jedyny i wymagany do obslugi bledów.
49. Aktywacja komputera Maks 2 hierarchie
Produkcyjna
Przedprodukcyjna
Jezeli juz zaktywowany nadpisuje informacje
DRMActivate
DRM_ACTIVATE_MACHINE
Nalezy wyswietlic pytanie, czy uzytkownik chce aktywowac komputer
DRM_ACTIVATE_DELAYED opóznienie, mozliwosc sprawdzenia otrzymanej skrytki (wirusy itp.)
%WINDOWS%\System32\DRM
Actmachine.exe [/n [/p <cabfilename>]] [/l <logfilename>]
50. Aktywacja uzytkownika Razem z uzyskaniem GIC
Nie istnieje oddzielnie
Dodaje nowy certyfikat!
DRMActivate
DRM_ACTIVATE_GROUPIDENTITY
DRM_ACTIVATE_TEMPORARY tymczasowe, zwykle 15 minut
51. Bezpieczne srodowisko DRMInitEnvironment
Czy mozna je stworzyc (aktywacja, czy nie dziala debugger itp.)
DRMLoadLibrary
Tylko te wymienione w MFT
52. MFT - plik AUTO-GUID
"C:\\KeyPriv.dat"
MODULELIST REQ
HASH "C:\\Program.exe"
REQ "C:\\...\\msdrm.dll"
POLICYLIST INCLUSION PUBLICKEY "C:\\SigningKeyPub.dat"
EXCLUSION
53. Dekodowanie Licencja:
DRMAddLicense (licencja w oddzielnym pliku dodanie jako tymczasowej)
DRMEnumerateLicense (gdy mamy w License store)
DRMAcquireLicense (gdy trzeba nowa)
Odczytujemy licencje wystawcy (MHTML? Wlasny format?). Dodajemy ja do License store
DRM_AL_NOPERSIST Niszczona po zamknieciu aplikacji. Czyli nie mozna w trybie offline czytac pliku.
Mozna przekierowac pod URL i dopytac uzytkownika
Po znalezieniu
RMCreateBoundLicense
Sprawdza, czy zadane prawa sa zgodne z tym co oferuje licencja tresci
54. Zapisywanie zmian z powrotem DRMRegisterContent nie zapomniec
Dekodowanie
DRMCreateEnablingBitsDecryptor
DRMDecrypt ale jak najmniejsze porcje!
Kodowanie
Uprawnienia EDIT lub OWNER
DRMCreateEnablingBitsEncryptor
DRMEncrypt
55. Sledzenie
Proxy LCP
LCPStub.exe
Zarejestrowac:HKLM\SOFTWARE\Microsoft\uDRM\LCPStub
LCPStub.mcf
Zmodyfikowac tak by wskazywal na wlasciwe sciezki/pliki
Msdrm-lcp.dll
Aktywacja w trybie preprodukcyjnym
Zawsze pada sledzenie w trybie kernela
Jezeli bez proxy
printf/sprintf itp
56. Wazne! Z punktu widzenia uzytkownika, przy uzyskiwaniu licencji online czas uzyskania tej licencji jest dodatkowym czasem otworzenia danego elementu (dokumentu)
Infrastruktura musi dzialac szybko!
1 sekunda wiecej na otworzenie listu elektronicznego
Jezeli pada infrastruktura RMS pada dostep do dokumentów!
Z wyjatkiem tych gdzie mamy juz licencje
Nie ma licencji wiecznej backup tresci niezabezpieczonej.
Odnawianie licencji + procedury!
57. Podsumowanie Technologia nowa
Surowa, bez mechanizmów ulatwiajacych
Duzo zalezy od programisty
Bardzo duzo zalezy od organizacji aplikacji
Skrytka (lockbox) moze sprzetowo?
Po stronie Windows 2003 mozna zastosowac karte do sprzetowego przechowywania kluczy
Ale zawsze:
Zdjecie monitora
Ale nie PrintScrn ?
Przepisanie reczne
58. Warto zajrzec NNTP: msnews.microsoft.com
microsoft.public.rights_mgmt_svcs
microsoft.public.internetexplorer.rights_management
59. Dziekuje za uwage Pytania, uwagi:
Tomasz Kopacztkopacz@tomaszkopacz.com