Uruchamianie, zabezpieczanie i dystrybucja makr, cz. I     Microsoft Office Outlook

Uruchamianie, zabezpieczanie i dystrybucja makr, cz. III Udostępnij na: Facebook

Autor: Michał Bednarz

Opublikowano: 2 stycznia 2007

Część pierwsza artykułu przedstawia, w jaki sposób w Outlook’u instaluje i uruchamia się makra. Jak skonfigurować interfejs użytkownika programu, aby najczęściej używane makra były łatwo dostępne i można było uruchamiać je jednym kliknięciem myszki. Druga część omawia sposób, w jaki administrator może dystrybuować ustawienia interfejsu użytkownika oraz makra do wielu użytkowników w sieci. Trzecia część przedstawia informacje o tym jak zadbać o maksymalny poziom bezpieczeństwa podczas uruchamiania makr przy wykorzystaniu podpisu cyfrowego. Artykuł nie dotyczy modelu obiektowego Outlook’a oraz samego tematu pisania makr.

Zawartość strony
 Wstęp   Wstęp
 Dystrybucja makr podpisanych cyfrowo   Dystrybucja makr podpisanych cyfrowo
 Podsumowanie   Podsumowanie
 Materiały dodatkowe   Materiały dodatkowe
 Przeczytaj pozostałe części artykułu   Przeczytaj pozostałe części artykułu

Wstęp

W tej części przyjrzymy się szczegółowo dystrybucji makr podpisanych cyfrowo. Wiemy już z poprzednich części artykułu, w jaki sposób możemy przenosić projekty VBA pomiędzy komputerami oraz w jaki sposób podpisywać je cyfrowo przy użyciu certyfikatów wygenerowanych przez program SelfCert.exe.

 Do początku strony Do początku strony

Dystrybucja makr podpisanych cyfrowo

Jak to jednak zostało wspomnianew poprzednich cząściach artykułu, nie ma sensu przenoszenie na inne komputery projektu podpisanego przy pomocy takiego certyfikatu, ponieważ jest to certyfikat prywatny przeznaczony wyłącznie na lokalny komputer. Jeśli chcemy przenieść podpisany projekt na inne komputer, to powinien on być podpisany przy pomocy certyfikatu wystawionego przez urząd certyfikacyjny zaufany na tych komputerach. Mamy dwa wyjścia. Możemy albo uzyskać certyfikat z jednego z zewnętrznych urzędów, takich jak VeriSign, co jednak wiąże się z kosztami, albo możemy utworzyć własny urząd certyfikacyjny i przy jego pomocy wystawić odpowiedni certyfikat pozwalający na cyfrowe podpisywanie kodu.

Urząd certyfikacji jest standardowym komponentem systemu Windows 2000/2003 Server. Aby go zainstalować, należy w „Panelu sterowania” wybrać „Dodaj lub usuń programy”, a następnie kliknąć „Dodaj/Usuń składniki systemu Windows” i tam zaznaczyć pozycję „Certificate Services”. Instalacja urzędu certyfikacji przeprowadzana jest w kreatorze i dokonuje się jej w kilku prostych krokach.

Po zainstalowaniu urzędu certyfikacji należy dodać jego certyfikat w założeniach grupowych (GPO) tak, aby urząd był zaufany na każdym komputerze w domenie. Jeśli nie pracujemy w środowisku Active Directory, certyfikat urzędu może zostać wyeksportowany do pliku i rozesłany na inne komputery w celu jego instalacji. Użytkownik może również zainstalować certyfikat urzędu w momencie uruchamiania projektu z makrami, który podpisany jest certyfikatem wystawionym przez nasz urząd. Najbezpieczniejszą metodą jest jednak zainstalowanie certyfikatu na komputerach przy pomocy założeń grupowych. Dzięki temu użytkownicy mają pewność, że mogą ufać projektowi VBA, ponieważ został on podpisany przy pomocy certyfikatu wystawionego przez zaufany urząd.

Aby zainstalować certyfikat na komputerach w domenie przy pomocy założeń grupowych, wykonaj następujące kroki:

  1. Uruchom edytor założeń grupowych dla domeny, w tym celu:

    • Uruchom przystawkę „Active Directory Users and Computers”.
    • Kliknij prawym klawiszem myszy na gałęzi reprezentującej domenę.
    • Wybierz „Properties” z menu podręcznego.
    • Przejdź do zakładki „Group Policy”.
    • Zaznacz na liście „Default Domain Policy” i kliknij przycisk „Edit”.
  2. Rozwiń gałąź „Computer configuration | Windows Settings | Security Settings | Public Key Policies”.

  3. Kliknij prawym klawiszem myszy na gałęzi „Trusted Root Certification Authorities” i z menu podręcznego wybierz polecenie „All tasks | Import” (rys.1).

  4. Uruchomiony zostanie kreator importowania certyfikatu. Wskaż w nim ścieżkę do certyfikatu Twojego urzędu. Certyfikat powinien znajdować się w pliku z rozszerzeniem CRT w głównym folderze dysku systemowego. Plik ten został utworzony podczas instalacji urzędu certyfikacji.

  5. Po zamknięciu kreatora certyfikat zostanie zaimportowany do gałęzi „Trusted Root Certification Authorities”.

Rys. 1. Dodawanie urzędu certyfikacji do zaufanych urzędów poprzez założenia grup (GPO).

Przy kolejnym logowaniu się użytkowników domenowych na komputerach w sieci (lub po uruchomieniu komendy „gpupdate”) w ich magazynach certyfikatów w kontenerze „Tusted Root Certification Authorities” automatycznie zainstalowany zostanie certyfikat urzędu certyfikacji, przez co urząd ten stanie się zaufany na komputerach użytkowników. Od tej pory użytkownicy mogą również występować o wydanie osobistych certyfikatów przy użyciu przystawki „Certificates”.

Wśród szablonów certyfikatów domyślnie wydawanych przez urząd certyfikacji nie ma certyfikatów służących tylko do podpisywania kodu. Należy więc najpierw dodać tego typu szablon, w tym celu:

  1. Na serwerze, na którym zainstalowany został urząd certyfikacji, otwórz konsolę zarządzania urzędem. W menu „Start” wybierz „Narzędzia administracyjne | Certificate Authority”.
  2. Wyświetlona zostanie konsola zarządzania urzędem certyfikacyjnym. Kliknij prawym klawiszem myszy na gałęzi „Policy settings” i z menu podręczengo wybierz „ New | Certificate to Issue” (rys.2).
  3. Na liście zaznacz szablon o nazwie „Code Signing” i kliknij OK.

Rys. 2. Dodawanie do urzędu certyfikacji szablonu certyfikatu do podpisywania kodu.

Szablon zostanie dodany do urzędu certyfikacji i od tej pory użytkownicy mogą występować o wystawienie certyfikatu służącego do podpisywania kodu. Aby podpisać projekt VBA takim certyfikatem, musimy go najpierw uzyskać. Najłatwiej użyć w tym celu konsoli „Certificates” służącej do zarządzania certyfikatami użytkownika:

  1. Na stacji klienckiej uruchom pustą konsolę MMC – w oknie uruchamiania programów wpisz polecenie mmc.
  2. W menu konsoli wybierz „Plik | Dodaj/Usuń przystawkę”.
  3. W oknie „Dodaj/Usuń przystawkę” kliknij „Dodaj”, zaznacz na liście pozycję „Certyfikaty” i kliknij przycisk „Dodaj”.
  4. Wyświetlone zostanie okno „Przystawka certyfikatów”. Zaznacz na nim opcję „Moje konto użytkownika” i kliknij „Zakończ”.
  5. Zamknij okna „Dodawanie przystawki autonomicznej” oraz „Dodaj/Usuń przystawki”.
  6. W lewym oknie konsoli rozwiń gałąź „Certyfikaty”
  7. Kliknij prawym klawiszem myszy na kontenerze „Osobisty” i z menu podręcznego wybierz polecenie „Wszystkie zadania | Żądaj nowego certyfikatu” (rys.3).
  8. Uruchomiony zostanie kreator, który przeprowadzi Cię przez proces uzyskiwania certyfikatu. Kliknij „Next” na pierwszej stronie kreatora.
  9. Na stronie „Certificate Types” należy wybrać przeznaczenie certyfikatu, o który występujemy. Na liście zaznacz pozycję „Code Signing” i kliknij przycisk „Next”.
  10. Na następnej stronie wpisz nazwę wyświetlaną certyfikatu, opcjonalnie możesz również podać jego opis. Kliknij przycisk „Next” i „Finish”, aby zakończyć działanie kreatora.

W wyniku powyższych działań w kontenerze „Personal | Certificates” pojawi się nowy certyfikat. Od tej pory może on być używany do podpisywania kodu.

Rys. 3. Żądanie wystawienia certyfikatu w przystawce „Certyfikaty”.

Jeśli nie działamy w środowisku Active Directory, możemy wystąpić o certyfikat do urzędu certyfikacji korzystając z interfejsu WWW urzędu certyfikacji. W przeglądarce należy wpisać adres http://<nazwa_serwera>/certsrv i skorzystać z formularza w celu otrzymania certyfikatu służącego do podpisywania kodu (rys.4). W środowisku bez Active Directory, każdy z użytkowników będzie również musiał ręczenie zainstalować z pliku certyfikat urzędu certyfikacji na lokalnym komputerze. W przeciwnym wypadku wszystkie certyfikaty wystawione przez ten urząd będą uważane za niepoprawne. Plik certyfikatu urzędu również można pobrać korzystając z przeglądarki WWW oraz adresu http://<nazwa_serwera>/certsrv.

Rys. 4. Żądanie wystawienia certyfikatu do podpisywania kodu wysyłane przez przeglądarkę WWW.

Teraz, gdy mamy certyfikat służący do podpisywania kodu wystawiony przez nasz urząd certyfikacji, możemy użyć go do podpisania projektu VBA w Outlook’u, a następnie rozesłać tak podpisany projekt do użytkowników innych komputerów w domenie. Podpisywanie i rozsyłanie projektu odbywa się tak samo, jak wcześniej omówione podpisywanie projektu certyfikatem prywatnym wygenerowanym przez program SelfCert.exe. Przy pierwszym uruchomieniu makra użytkownikom na innych komputerach wyświetlony zostanie dialog z informacją, że projekt VBA jest podpisany cyfrowo (rys.5).

Rys. 5. Przy pierwszym uruchomieniu makra z projektu podpisanego cyfrowo, wyświetlany zostaje dialog przy, pomocy którego użytkownik może dodać certyfikat do zaufanych.

Przed dodaniem certyfikatu do zaufanych, użytkownik może kliknąć przycisk „Szczegóły”, aby sprawdzić dane i pochodzenie certyfikatu. Wyświetlony zostanie dialog „Szczegóły certyfikatu”. Po kliknięciu przycisku „Wyświetl certyfikat” użytkownik może odczytać informacje o certyfikacie (rys.6) oraz sprawdzić na zakładce „Ścieżka certyfikacji”, przez jaki urząd został wydany (rys.7).

Rys. 6. Informacje ogólne certyfikatu, którym podpisany został skopiowany projekt VBA.

Rys. 7. Certyfikat zawiera informację o urzędzie, przez który został wydany.

Ponieważ urząd certyfikacji, który wystawił certyfikat użyty do podpisania projektu, znajduje się wśród zaufanych urzędów na komputerze użytkownika, dlatego użytkownik może bez problemu dodać certyfikat do zaufanych wystawców i bez obaw używać makr. W tym celu na dialogu z rys.8 należy zaznaczyć opcję „Zawsze ufaj makrom od tego wydawcy” i kliknąć przycisk „Włącz makra”. Certyfikat zostanie dodane do zaufanych wydawców na tym komputerze (rys.8) i Outlook nie będzie więcej wyświetlał ostrzeżenia bezpieczeństwa podczas uruchamia makr podpisanych tym certyfikatem (w Outlook 2007 takie ostrzeżenie wciąż będzie wyświetlane, związane jest to z innym znaczeniem poziomów bezpieczeństwa makr).

Rys. 8. Zakładka „Zaufani wydawcy” wyświetla certyfikaty zaufane na tym komputerze. Kod podpisany tymi certyfikatami może być bez przeszkód uruchamiany, Outlook nie wyświetla dla niego ostrzeżenia bezpieczeństwa.

Jeśli użytkownik dokona jakiejkolwiek zmiany w kodzie projektu i spróbuje zapisać zmiany, podpis elektroniczny zostanie usunięty z projektu VBA, ponieważ nie jest to certyfikat danego użytkownika i nie posiada on klucza prywatnego niezbędnego do procedury podpisywania kodu – certyfikat może być tylko używany do poświadczenia danych jego wystawcy i pozwala na uruchamianie podpisanego nim kodu.

Wykorzystując opisane powyżej funkcjonalności, administrator ma możliwość w miarę prostej dystrybucji makr na wiele komputerów w domenie przy jednoczesnym zapewnieniu wysokiego poziomu bezpieczeństwa. Jeśli przy użyciu założeń grupowych, poziom zabezpieczeń makr zostanie ustawiony na „Wysokie” oraz użytkownikom dostarczony zostanie odpowiednio cyfrowo podpisany projekt VBA, to wszyscy użytkownicy będą mogli używać tylko makr z dostarczonego im projektu. Wszelka zmiana kodu w projekcie dokonana przez użytkownika spowoduje usunięcie z niego cyfrowego podpisu, a co za tym idzie, użytkownik nie będzie mógł uruchomić żadnego makra, ponieważ podpis bezwzględnie wymagany jest przez poziom zabezpieczeń ustawiony na „Wysokie”. Poziom zabezpieczeń również nie może zostać zmieniony przez użytkownika, ponieważ jest wymuszany przez założenia grup (GPO).

 Do początku strony Do początku strony

Podsumowanie

Stosowanie makr w Outlook’u może znacznie uprościć naszą codzienną pracę z programem. Wiedza na temat dostosowywania interfejsu użytkownika oraz niuansów dotyczących poziomów zabezpieczeń makr umożliwia nam dalsze usprawnienia w posługiwaniu się programem oraz zapewnia, że makra mogą być używane w sposób bezpieczny. Korzystając z informacji zawartych w artykule administratorzy sieci mogą przy użyciu założeń grup (GPO) oraz elektronicznych podpisów w prosty sposób dystrybuować makra na wiele komputerów w sieci lokalnej jednocześnie utrzymując wysoki poziom bezpieczeństwa.

Makra nie są najefektywniejszym pod względem wydajności rozwiązaniem, jeśli chodzi o rozszerzanie funkcjonalności Outlook’a. Zaawansowane projekty implementuje się przy użyciu dodatków COM lub rozszerzeń bezpośrednio korzystających z interfejsów MAPI. Jednak do tego potrzebna jest szczegółowa wiedza i narzędzia programistyczne. Makra można opracować stosunkowo łatwo, zwłaszcza, że wiele gotowych makr można znaleźć w Internecie. W połączeniu z możliwością ich dystrybucji oraz podpisami cyfrowymi stają się one wygodnym i prostym sposobem na rozszerzanie i automatyzację zadań w Outlook’u nawet z punktu widzenia administratora, który często potrzebuje zaimplementować je na dużej liczbie komputerów.

 Do początku strony Do początku strony

Materiały dodatkowe

  1. Przykładowe makra dla Microsoft Office Outlook
  2. Macro Security Levels in Office 2003 (j.ang.)
  3. Understanding Macro Security Levels in Office (j.ang.)
  4. Code Signing for Digital IDs (j.ang.)
  5. OL2002: Code Does Not Work After You Distribute a VBA Project (j.ang.)
  6. Administrators can use Office policy templates with the Group Policy settings of Windows (j.ang.)
  7. How to Manage Outlook 2000 with System Policies (j.ang.)
  8. Office 2003 Resource Kit Home (j.ang.)

 Do początku strony Do początku strony

Przeczytaj pozostałe części artykułu


Michał Bednarz (MVP)
Jest absolwentem Politechniki Wrocławskiej wydziału Informatyki i Zarządzania. Jest współwłaścicielem firmy CodeTwo, w której od kilku lat zajmuje się tworzeniem rozwiązań, komponentów, rozszerzeń dla platformy Exchange Server i Microsoft Outlook, aplikacji wspierających pracę grupową oraz aplikacji przeznaczonych na urządzenia mobilne. Jest opiekunem działu dotyczącego serwera Exchange na portalu wss.pl, udziela się na forum portalu, gdzie pomaga użytkownikom w rozwiązywaniu ich problemów. Na stronie www.outlook.pl prowadzi także własne forum oraz pisze porady dotyczące programu Microsoft Outlook. Od 2006 roku posiada tytuł MVP w kategorii Microsoft Office Outlook.
 Do początku strony Do początku strony

Uruchamianie, zabezpieczanie i dystrybucja makr, cz. I     Microsoft Office Outlook