1 / 58

RMS kontrola dostepu do informacji w kodzie niezarzadzanym

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

tahir
Télécharger la présentation

RMS kontrola dostepu do informacji w kodzie niezarzadzanym

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. RMS kontrola dostepu do informacji w kodzie niezarzadzanym Tomasz Kopacz

    2. Plan Podstawowe koncepcje RMS Zasada dzialania RMS Podstawowe skladniki Udzielanie licencji Krtko o instalacji Tez rzne 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 dokumentw 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 uzytkownikw

    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 certyfikatw 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 plikw Manifest powinien zawierac wszystkie pliki ktre 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 serwerw i usluga aktywacji komputerw 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 rwnoczesnie mozna testowac wlasne aplikacje ?

    12. Przeglad technologii uzywanych przez Windows RMS AD i LDAP Przechowuje konta uzytkownikw, adresy itp. Pozwala lokalizowac uslugi .NET Framework i ASP.NET Framework dla czesci serwerowej SOAP i uslugi Web Komunikacja z czescia serwerowa; wsplpraca z MSN UDDI Obok AD wyszukiwanie uslug RMS MSMQ i SQL Przechowuja informacje o konfiguracji RMS, pary kluczy uzytkownikw, log aktywnosci, i tymczasowo grupy AD (wieksza wydajnosc) XrML 1.2 Standardowy mechanizm opisu licencji i certyfikatu

    13. Publikacja i wykorzystanie wiecej szczeglw 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 szczeglw Autor rozsyla plik (publikuje) Uzytkownik otrzymuje plik Nie ma licencji: Przegladarka zada licencji od serwera ktry 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 ktrym 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 elementw Rejestrowanie serwerw (enrollment) Glwny serwer certyfikacji Podserwery Aktywacja komputera klienckiego Certyfikacja uzytkownikw 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 krtki 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 certyfikatw 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 ktry 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 certyfikatw

    22. Sneaker NET Pozwala rejestrowac serwer gdy nie ma stalego polaczenia Przekazywanie dokumentu XML Dostepne w terminie pzniejszym 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 pzniejszym

    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 uzytkownikw Licencja moze miec zewnetrzny URL dla wewnetrznego serwera RMS Glwny serwer certyfikujacy moze uwzgledniac uzytkownikw 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, ktra ma byc zaufana. Mozna okreslic zaufanie pomiedzy serwerami w ramach jednej instalacji Enterprise Pomiedzy domenami uzytkownikw Pomiedzy domenami publikujacych

    27. Krtko 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 bledw RMS Q Recovery odzyskiwanie bledw 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 problemw 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 uzytkownikw, odczytywania adresw email, potwierdzania przynaleznosci do grup itp MSMQ przesyla informacje do SQL Server SQL Server przechowuje konfiguracje RMS, rozwiniecie grup AD, oraz loguje czynnosci klientw IIS (z autoryzacja zintegrowana z Windows Integrated) autoryzuje uzytkownikw przy dostepie do uslug SOAP

    35. RMS Server 2/2 RMS server z punktu widzenia aplikacji to zestaw uslug Web Protokl 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 klientw: 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 dokumentw MHTML

    37. RMS Client SDK Wszystko co potrzebne jest aby wykorzystac tresc zabezpieczona przy uzyciu mechanizmw RMS

    38. Aplikacja wykorzystujace RMS

    39. Dwa typy aplikacji Prosta Tworzenie portalu do publikacji informacji Bardziej skomplikowana Pisanie wlasnej przegladarki tresci RMS

    40. Tworzenie publikacji Scenariusze Portal WWW Ochrona istotnych informacji Dynamiczna ochrona raportw/stron ASPX Biblioteka dokumentw 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 Ktrej 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 bledw.

    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 opznienie, 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 dokumentw! Z wyjatkiem tych gdzie mamy juz licencje Nie ma licencji wiecznej backup tresci niezabezpieczonej. Odnawianie licencji + procedury!

    57. Podsumowanie Technologia nowa Surowa, bez mechanizmw 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 Kopacz tkopacz@tomaszkopacz.com

More Related