Bezpieczne dane dla każdego


Access czy InfoPath

Warto podkreślić różnice w zastosowaniu Accessa oraz InfoPath. Access jest systemem do tworzenia aplikacji bazodanowych. Programista ma do dyspozycji rozbudowany język, łatwe mechanizmy pracy z bazami relacyjnymi, wygodne raporty itp. Dane mogą być przechowywane w pliku MDB, ale Access współpracuje też z większymi serwerami - SQL Server (jest także bezpłatna wersja MSDE). Warto się zastanowić, kiedy sięgnąć po Access, a kiedy po InfoPath.

InfoPath pozwoli zbudować frontend do wprowadzania danych. Naprawdę trudno znaleźć podobnie proste narzędzie do budowania formularzy. Oczywiście nie zapewnia takiej elastyczności, jaką daje Access (czy VS.NET) - nie da się w nim napisać każdego wyrafinowanego formularza, bo przecież nie jest pakietem stricte programistycznym. Gdy wystarczy wprowadzić dane, uwzględniając informacje słownikowe, i wysłać je do jakiegoś systemu - InfoPath jest dobrym narzędziem, które szybko pozwoli przygotować odpowiednie rozwiązanie, natomiast zupełnie nie nadaje się do np. raportowania czy generalnie - przetwarzania danych. Jeżeli tworzona aplikacja ma udostępniać taką funkcję, to Access będzie znacznie wygodniejszy.

Może też spojrzeć z punktu widzenia niezbędnej wiedzy wymaganej od użytkownika. Używanie Accessa wymaga podstawowych umiejętności programistycznych, trzeba też znać postać danych i np. rolę poszczególnych pól. W wypadku InfoPath wystarczy znać znaczenie informacji, które mają być wprowadzane przez użytkownika. Nie trzeba być programistą, żeby zaprojektować wygodny formularz dla innych użytkowników. Co prawda, można oprogramować zdarzenia czy dodawać własne akcje - ale są one opisane w taki sposób, że użytkownik wskazuje, co chce zrobić, ale nie musi określać jak.

Warto także dodać, że InfoPath jest dostosowany do pracy "bezpołączeniowej". Innymi słowy, można bez trudu odciąć klienta od źródła danych, pozwolić mu wprowadzać dane lokalnie, a potem przesłać wyniki, na przykład bezpośrednio z poziomu InfoPath publikować formularze czy przesyłać je do klientów jako załączniki, oczekując w odpowiedzi np. wypełnionej ankiety.

IRM

Bezpieczne dane dla każdego

Autor za pierwszym razem otrzymuje certyfikat "licencjonującego" (CLC). Autor definiuje zestaw praw do korzystania z danej treści - aplikacja tworzy licencję "publikacji" i koduje plik. Wybiera odpowiednie opcje w programie z rodziny Office. Plik jest publikowany (w Internecie, wgrywany na udział sieciowy itp.). Odbiorca otrzymuje plik, otwiera go, a aplikacja komunikuje się z serwerem RMS, który sprawdza uprawnienia i wystawia "licencję użycia". Aplikacja udostępnia plik i wymusza stosowanie praw zgodnie z udzieloną licencją.

Powszechnie dostępne sposoby ochrony informacji zakładają, że zabezpieczany jest sam dostęp do danego zasobu, na przykład wprowadzane są hasła logowania użytkowników, a następnie z osobistym kontem wiązane są określone uprawnienia do plików - ich odczytu, zapisu, zmiany itp.

Jednak tego typu zabezpieczenia nie pozwalają określić, co użytkownik może zrobić z informacją pobraną z danego zasobu. Jeżeli ma prawo do odczytu, to (domyślnie) może to przeczytać, wydrukować, a nawet zapisać, ale na innym nośniku (np. flash USB, dyskietce itp.). Innymi słowy, ma pełne prawa do treści danego dokumentu. Oczywiście od wielu lat funkcjonują hasła blokujące na przykład edycję czy drukowanie dokumentu, w tak zabezpieczonych dokumentach PDF można hasło łatwo obejść - np. wydrukować dokument z innego programu (w tym przykładzie np. z GhostScriptu).

Drugi, znacznie bardziej poważny problem jest związany z dystrybucja dokumentu i przekazywaniem haseł. Jeżeli chcemy komuś przekazać prawa do edycji, to musimy mu dać odpowiednie hasło. A więc wcześniej czy później zostanie ono zapisane na kartce przylepionej do monitora czy w inny sposób upublicznione.

Te wszystkie problemy rozwiązuje RMS/IRM - mechanizm ochrony treści opracowany przez Microsoft. Pozwala nie tylko ograniczać prawa dostępu, ale także definiować operacje, które może wykonać dany użytkownik. Można określić, że pan Kowalski ma prawo odczytać dokument na określonym komputerze (ale nie na żadnym innym), kontrolować wklejanie do Schowka, drukowanie czy inne operacje na danym dokumencie. Równocześnie serwer RMS można tak skonfigurować, że na bieżąco będzie monitorował, kto i kiedy usiłuje wykonać daną operację z chronionym zasobem - przypomina to mechanizm audytu w ACL.

Definicje

Microsoft Windows Rights Management Services (RMS) to serwer, który pozwala działać mechanizmom ochrony dokumentów. Wymaga komponentu klienckiego i specjalnej przeglądarki, która wykorzystuje usługi RMS - pozwala zabezpieczyć informacje, żąda klucza do zdekodowania treści, czyli umożliwia użytkownikowi pracę z danym dokumentem zgodnie z udzieloną mu licencją. Jedną z takich "przeglądarek" jest Microsoft Office Professional - za komunikację z serwerem RMS odpowiada moduł Information Rights Management (IRM).

Jest także przeglądarka, Rights Management Add-on for Internet Explorer, która pozwala podejrzeć dokumenty Office zapisane w formacie XML i zabezpieczone mechanizmem RMS. W ten sposób można np. publikować bezpieczne raporty w Internecie, będąc pewnym, że np. wydrukuje je tylko ten, kto ma do tego prawo.

Zasada działania klienta

Bezpieczne dane dla każdego

Definiując schematy do dokumentu Excela, można od razu połączyć się z docelowym systemem informatycznym. Może to być nawet lista SharePoint Services czy rozwiązanie MBS.

Zrealizowanie tej koncepcji wymaga zainstalowania na komputerze, który ma korzystać z mechanizmów RMS, specjalnego oprogramowania (można je automatycznie ściągnąć lub uaktualnić w witrynie Microsoftu). Jego podstawowe zadanie to utworzenie specjalnej skrytki, tzw. lockboksu, czyli komponentu, który odpowiada za wszystkie operacje związane z bezpieczeństwem. Jest aktywowany do danego komputera (podobnie jak Winows XP).

W pierwszej wersji mechanizmów RMS klient w czasie aktywacji musiał pobrać skrytkę z serwerów Microsoft (ściągnąć plik DLL). Najnowsza wersja, SP1, instaluje skrytkę na komputerze klienckim. Co więcej - nie jest potrzebna łączność z Internetem, aby używać RMS (odpowiednie biblioteki można przenieść np. na płycie CD i wgrać) - w ten sposób można utworzyć w pełni izolowane środowisko, w którym dokumenty będą rzeczywiście chronione.

Warto dodać, że wśród dalszych planów rozwoju architektury PC wymieniane są różne komponenty, które mogłyby pełnić funkcję takiej "skrytki", ale klucze byłyby generowane sprzętowo Dzięki skrytce powstaje specjalny token GIC, który "łączy" użytkownika i maszynę. Następnie wszystkie żądania dostępu do zabezpieczonej treści są udzielane właśnie określonemu GIC. Innymi słowy, klucz wygenerowany na komputerze A jest bezużyteczny w komputerze B. Mechanizmy autoryzacji w GIC mogą wykorzystywać oddzielne systemy autoryzacyjne (nie tylko wbudowane logowanie w Windows).

Oprócz zarządzania kluczami i licencjami skrytka odpowiada także za weryfikację kodu przeglądarki. Licencja udzielana przez serwer RMS na pracę z dokumentem wskazuje, jakie cechy musi mieć ten plik DLL, który komunikuje się bezpośrednio z API RMS. Można określić nazwę pliku, jego wersję, podać hash czy klucz cyfrowy, którym dany kod jest podpisany. To zabezpiecza przed zamianą przeglądarki na alternatywny program (który na przykład omija ograniczenia narzucane przez licencję).

Instalacja klienta RMS powoduje, że niektóre API Windows mogą sprawdzać uprawnienia np. do ściągania ekranu, obsługi Schowka czy działania sterownika drukarki.

Warto podkreślić, że RMS nie ma zdefiniowanego zestawu uprawnień. W wypadku Office 2000 IRM definiuje zbiór operacji, które pozwala chronić przeglądarka (dany element pakietu biurowego) i odpowiedni (w tym wypadku gotowy) wzorzec określa po stronie serwera, jakie są typy licencji. Technicznie licencja to dokument w formacie XrXML, w którym definiuje się zasoby, możliwe prawa itp.

Właściwie to od przeglądarki zależy, jak dokładnie działać będzie ochrona, np. w Wordzie 2003 można określić prawa tylko do wprowadzania poprawek w trybie zmian. Wdrażając IRM i RMS można tworzyć własne wzorce uprawnień, które potem Office będzie stosował podczas publikacji i edycji dokumentów - m.in. prawo do zapisu, eksportu, uruchamiania makr czy zmiany formatów. Można to połączyć (wykorzystując Visual Studio for Office) z mechanizmami współpracy z XML i np. dać prawa do edycji lub wprowadzania tylko pewnych elementów sformalizowanego dokumentu.

Mechanizmy RMS można także wykorzystać do zabezpieczania poczty elektronicznej czy publikacji w Internecie. Dokument Office może być publikowany w postaci MHTML, opartym na XML-u i zabezpieczony przez serwer RMS. Do przeglądarki IE jest odpowiednie rozszerzenie, które pozwala taki dokument prezentować (obsługuje mechanizmy żądania tokenu, komunikuje się ze skrytką itp.). W ten sposób można na przykład zorganizować system raportowania, w którym pracownik może obrabiać raport właściwie w dowolny sposób.

W wypadku zabezpieczenia poczty rozwiązanie typu RMS ma znacznie większe możliwości niż np. PGP czy "gołe" S/MIME (czyli mechanizmy szyfrowania kluczem i weryfikacja nadawcy), gdzie podobnie jak w w wypadku prostego zabezpieczenia hasłem, list jest przeznaczony dla określonego właściciela klucza.

RMS i IRM pozwalają tak zabezpieczyć wiadomość, że cały dział handlowy będzie mógł czytać i pracować z dokumentem, a dział księgowy - np. tylko drukować i przeglądać, ale nie przesyłać dalej. A dzięki zintegrowanej autoryzacji z Active Directory bardzo łatwo określić, którzy użytkownicy należą do określonej grupy. Warto dodać że przynależność do grup w RMS może być określona dynamicznie, np. przy użyciu dowolnej kwerendy, która przeanalizuje cechy obiektów w katalogu. Co więcej - krytyczne informacje potrzebne do części "klienckiej" RMS mogą być przechowywane na np. inteligentnych kartach (służących równocześnie do logowania się w systemie). W wypadku wiadomości elektronicznych można korzystać z ochrony IRM/RMS zarówno w Outlooku 2003, jak i korzystając z przeglądarki.

Nie można myśleć o zastąpieniu standardowej ochrony dostępu do zasobów (listy ACL itp.) mechanizmami IRM. Sprawdzenie uprawnień w tej architekturze jest bardziej kosztowne niż proste pytanie "czy masz dostęp do pliku". Przeglądarka treści (np. Word) w wypadku sprawdzania licencji online co chwilę komunikuje się z serwerem, żądając kolejnych licencji - dzięki temu nie ma możliwości uzyskania dostępu do dużych porcji danych bezpośrednio manipulując pamięcią - ale za to wymaga to jednak częstej komunikacji z serwerem licencji.

<hr size=1 noshade>Rola Office

Bezpieczne dane dla każdego

W InfoPath nie ma problemu z utworzeniem estetycznie wyglądającego formularza.

Pakiet Office miał zawsze rozbudowane mechanizmy "programowania". Pierwsze wersje Worda czy Excela zawierały rozbudowane języki makr, potem dołączono model obiektowy obejmujący cały pakiet Office i język VBA, który pozwalał tworzyć już wyrafinowane rozwiązania oparte na Office. Warto zauważyć, że takie rozwiązania klienci lubią - nie są kosztowne (nie wymagają zbyt specjalistycznej wiedzy), a równocześnie cały system jest dobrze zintegrowany z wykorzystywanym pakietem biurowym.

Jednak takie rozwiązania były mało skalowalne. Rozwiązania oparte na Office doskonale sprawdzały się w małych firmach, ale przy pewnej skali przedsiębiorstwa stawały się wąskim gardłem.

Bezpieczne dane dla każdego

Definiując listę w InfoPath, można wskazać, z którego miejsca ma być wypełniana. Wystarczy wprowadzić ciąg wartości, wskazać tabelę słownikową albo - połączyć się z usługą Web, która zwróci potrzebną listę.

W Office 2003, dzięki bardzo rozbudowanym mechanizmom współpracy z XML, można ten pakiet traktować jako bardzo inteligentny "terminal" do większych systemów - z gatunku MBS (Microsoft Business Solution) - czy też innych (w zasadzie wszystkich, które rozumieją XML albo używają standardowych baz danych). "Prosty" Word czy Excel może pełnić funkcję aplikacji, z którą zwykle pracuje użytkownik, a dane będą dodatkowo zasilały inny system obsługujący działalność firmy. Dzięki możliwości zapisu czystego XML-u można wyciągnąć "surowe" dane i nie wymaga to skomplikowanych zabiegów.

InfoPath może się stać uniwersalnym narzędziem, za pomocą którego zostaną utworzone wszystkie formularze wprowadzania danych do systemu - jest prosty w użyciu dla projektanta, łatwy w obsłudze dla użytkownika, a co najważniejsze - pozwala szybko zmienić format danych, dostosować układ do nowych informacji itp., w dodatku również w trybie offline.

Warto jeszcze wspomnieć o Visio - pakiecie, który pozwala rysować diagramy, ale równocześnie oprogramować je tak, żeby na przykład symulowały działanie jakiegoś modelu (dobrym przykładem jest tu część BizTalk 2004, która właśnie Visio wykorzystuje jako aplikację do projektowania diagramów procesów biznesowych) czy rozbudowany wzorzec do projektowania sieci.

Równocześnie do pakietu VS.NET jest rozszerzenie Visual Studio For Office, a także InfoPath 2003 Toolkit. Te aplikacje pozwalają rozbudowywać Office - de facto wykorzystują pakiet biurowy jako bazowe, bogate API. Zatem z jednej strony mamy do dyspozycji wygodny "pojemnik" na aplikację, a z drugiej - pełną moc, jaką daje nowoczesne środowisko programistyczne pozwalające w dowolny sposób przetwarzać informacje.

<hr size=1 noshade>

Nie mylić z PRM

IRM/RMS to zupełnie inne mechanizmy niż DRM (Digital Rights Management). DRM przeznaczony jest do informacji "strumieniowych" - zarządzania licencjami przy transmisji wideo, mechanizmami provisioning itp.