Tylko Gmail: konfigurowanie S/MIME na potrzeby szyfrowania po stronie klienta

Ta funkcja jest dostępna w tych wersjach: Frontline Plus, Enterprise Plus, Education Standard i Education Plus. Porównanie wersji

Aby korzystać z protokołu S/MIME z szyfrowaniem po stronie klienta Google Workspace w Gmailu, musisz włączyć interfejs Gmail API i przyznać mu dostęp do całej Twojej organizacji. Następnie w przypadku każdego użytkownika musisz użyć interfejsu Gmail API, aby przesłać do Gmaila certyfikat (klucz publiczny) S/MIME (Secure/Multipurpose Internet Mail Extensions) i metadane kluczy prywatnych. Jeśli korzystasz z usługi kluczy szyfrowania, musisz też zaszyfrować (czyli „zapakować”) metadane kluczy prywatnych użytkowników za pomocą tej usługi.

W każdej chwili możesz przejść na inną usługę kluczy, przesyłając nowe certyfikaty S/MIME i metadane kluczy prywatnych zaszyfrowane przez nową usługę.

Wymagania

Aby skonfigurować S/MIME dla użytkowników, musisz mieć:

  • uprawnienia superadministratora do konta Google organizacji, które są potrzebne do zapewnienia dostępu do interfejsu Gmail API na poziomie całej domeny;
  • dostęp do narzędzi usługi kluczy szyfrowania organizacji lub możliwość kontaktu z zespołem pomocy tej organizacji;
  • doświadczenie w korzystaniu z interfejsów API i skryptów Python.

Informacje o protokole S/MIME

S/MIME to protokół powszechnie stosowany jako standard branżowy do podpisywania cyfrowego i szyfrowania wiadomości e-mail w celu zapewniania ich integralności i bezpieczeństwa. Szyfrowanie po stronie klienta w Gmailu korzysta ze standardu S/MIME 3.2 międzynarodowego stowarzyszenia IETF do wysyłania i odbierania bezpiecznych danych MIME. S/MIME wymaga, aby certyfikaty X.509 nadawców i odbiorców były zaufane przez Gmaila.

Uwaga: możesz też użyć S/MIME bez dodatkowej warstwy szyfrowania i ochrony prywatności, które są dostępne w przypadku szyfrowania po stronie klienta. Użyj tej alternatywy tylko wtedy, gdy nie chcesz zapobiegać odszyfrowywaniu danych przez serwery Google szyfrowanych po stronie klienta. Więcej informacji znajdziesz w artykule Włączanie hostowanego szyfrowania S/MIME w celu szyfrowania wiadomości.

Zanim zaczniesz

Upewnij się, że wykonane zostały te czynności:

  1. Usługa kluczy została wybrana.
  2. Połączono się z Twoim dostawcą tożsamości.
  3. Skonfiguruj zewnętrzną usługę kluczy lub szyfrowanie klucza sprzętowego.
  4. Przypisz usługę kluczy lub szyfrowanie klucza sprzętowego do jednostek organizacyjnych lub grup.

    Jeśli korzystasz z kilku usług kluczy, sprawdź, czy są one przypisane do odpowiednich jednostek organizacyjnych lub grup konfiguracji.

Konfigurowanie interfejsu Gmail API

Uwaga: korzystanie z interfejsów API wymaga wiedzy z zakresu programowania.

Krok 1. Włącz interfejs Gmail API

  1. Utwórz nowy projekt GCP. Więcej informacji znajdziesz w artykule Tworzenie projektów i zarządzanie nimi.

    Uwaga dotycząca identyfikatora projektu: będzie potrzebny do przyznania dostępu do interfejsu API w całej domenie.

  2. Otwórz Konsolę interfejsów API Google i włącz interfejs Gmail API w nowym projekcie. Więcej informacji znajdziesz w artykule Włączanie interfejsu API w projekcie Google Cloud.

Krok 2. Utwórz konto usługi na poziomie całej domeny

  1. W konsoli Google Cloud otwórz stronę Konta usługi i utwórz konto usługi na poziomie całej domeny. Szczegółowe informacje znajdziesz w artykule Tworzenie kont usługi i zarządzanie nimi.
  2. Utwórz klucz prywatny konta usługi i zapisz go w pliku JSON w systemie lokalnym, na przykład w pliku svc_acct_creds.json. Ten plik zawiera dane uwierzytelniające użyte podczas konfigurowania Gmaila dla użytkowników. Szczegółowe informacje znajdziesz w artykule Tworzenie kluczy kont usługi i zarządzanie nimi.

Krok 3. Przyznaj dostęp do interfejsu Gmail API w całej domenie

W tym kroku użyjesz utworzonego konta usługi, aby przyznać wszystkim użytkownikom uprawnienia do edycji interfejsu Gmail API.

  1. Wykonaj czynności opisane w artykule Kontrola dostępu do interfejsów API przy użyciu przekazywania dostępu w całej domenie.
  2. Gdy pojawi się prośba, wpisz:

    Identyfikator klienta: identyfikator klienta konta usługi utworzonego w kroku 2.

    Zakresy protokołu OAuth:gmail.settings.readonly oraz gmail.settings.basicgmail.settings.sharing

Włączanie szyfrowania po stronie klienta w Gmailu dla użytkowników

Włącz szyfrowanie po stronie klienta w Gmailu w jednostkach organizacyjnych lub grupach. Więcej informacji znajdziesz w artykule Włączanie i wyłączanie szyfrowania po stronie klienta.

Uwaga: w przypadku jednostek organizacyjnych możesz ustawić domyślne szyfrowanie wszystkich e-maili (w trakcie ich tworzenia i przekazywania dalej, a także wysyłania odpowiedzi). Użytkownik nadal może w razie potrzeby wyłączyć szyfrowanie. Wymaga to dodatku Bezpieczne ustawienia lub Bezpieczne ustawienia Plus.

Konfigurowanie certyfikatów S/MIME użytkowników szyfrowania po stronie klienta

Gdy skonfigurujesz interfejs Gmail API i włączysz szyfrowanie po stronie klienta w Gmailu dla użytkowników w konsoli administracyjnej, możesz skonfigurować certyfikaty S/MIME szyfrowania po stronie klienta i metadane kluczy prywatnych dla użytkowników.

Krok 1. Przygotuj certyfikaty S/MIME i metadane kluczy prywatnych

W przypadku każdego użytkownika, który używa szyfrowania po stronie klienta w Gmailu do wysyłania i odbierania e-maili:

Korzystając z urzędu certyfikacji (CA), wygeneruj parę kluczy: publiczny/prywatny S/MIME z łańcuchem certyfikatów. Certyfikat wierzchołka ścieżki S/MIME musi zawierać główny adres Gmail użytkownika jako nazwę tematu lub temat rozszerzenia alternatywnej nazwy podmiotu (SAN).

Możesz wykonać jedną z tych czynności:

  • Użyj certyfikatu głównego CA zaufanego przez Google: listę certyfikatów głównych znajdziesz w artykule Certyfikaty CA zaufane przez Gmaila na potrzeby obsługi S/MIME.
  • Skorzystanie z urzędu certyfikacji, który nie jest zaufany przez Google: na przykład, aby użyć własnego urzędu certyfikacji, możesz dodać jego certyfikat główny w konsoli administracyjnej. Więcej informacji znajdziesz w artykule Zarządzanie zaufanymi certyfikatami dla szyfrowania S/MIME.

    Uwaga: jeśli korzystasz z urzędu certyfikacji, który nie jest zaufany przez Google, a użytkownicy wysyłają e-maile zaszyfrowane po stronie klienta poza organizację, odbiorca musi też zaufać temu urzędowi certyfikacji.

Krok 2. Zapakuj certyfikaty i metadane klucza prywatnego

Zaszyfruj lub „zapakuj” metadane kluczy prywatnych S/MIME za pomocą usługi szyfrowania kluczy. Poproś dostawcę usługi kluczy, żeby to zrobił, lub postępuj zgodnie z podanymi przez niego instrukcjami.

Jeśli korzystasz z szyfrowania klucza sprzętowego, pomiń ten krok i nie pakuj metadanych kluczy prywatnych w przypadku użytkowników, którzy korzystają z tego rodzaju szyfrowania. W takim przypadku zapakowanie metadanych nie jest konieczne, ponieważ klucze prywatne użytkowników w Gmailu znajdują się na ich kartach inteligentnych. Wymaga to dodatku Bezpieczne ustawienia lub Bezpieczne ustawienia Plus.

Krok 3. Prześlij certyfikaty S/MIME i metadane kluczy prywatnych do Gmaila

Aby przesłać łańcuch certyfikatów S/MIME kluczy publicznych każdego użytkownika i metadane kluczy prywatnych do Gmaila i ustawić je jako preferowane klucze dla użytkowników przez utworzenie tożsamości, musisz użyć interfejsu Gmail API.

Uwaga: do przesłania certyfikatów musisz użyć interfejsu Gmail API, a nie klienta Gmail. Pamiętaj też, że gdy włączysz szyfrowanie po stronie klienta w Gmailu, możliwość przesyłania certyfikatów z klienta Gmaila zostanie wyłączona.

Wykonaj te czynności dla każdego użytkownika, używając pliku klucza prywatnego pobranego podczas tworzenia konta usługi dla całej domeny na potrzeby uwierzytelniania:

  1. Prześlij metadane łańcucha certyfikatów i klucza prywatnego, używając wywołania interfejsu Gmail API keypairs.create.
  2. Włącz parę kluczy dla podstawowego adresu e-mail użytkownika, używając wywołania interfejsu Gmail API identities.create.

    Wywołanie identities.create wymaga identyfikatora pary kluczy, który jest zwracany w treści odpowiedzi wywołania keypairs.create.

    Uwaga: włączanie pary kluczy dla adresu e-mail użytkownika:

    • Tworzy tożsamość szyfrowania po stronie klienta, która ma uprawnienia do wysyłania poczty z konta użytkownika.
    • Powoduje skonfigurowanie Gmaila pod kątem używania metadanych klucza prywatnego do podpisywania wychodzących e-maili zaszyfrowanych po stronie klienta.
    • Powoduje opublikowanie certyfikatu w udostępnionym repozytorium obejmującym całą domenę, dzięki czemu inni użytkownicy szyfrowania po stronie klienta w organizacji mogą szyfrować wiadomości wysyłane do tego użytkownika.

Aby wykonać te czynności, użyj skryptu, który łączy się z interfejsem Gmail API. Możesz wykonać jedną z tych czynności:

  • Napisz własny skrypt.
  • Skorzystać z przykładowego skryptu w języku Python, który został udostępniony przez Google. Instrukcje znajdziesz w sekcji Przesyłanie certyfikatów i zapakowanych kluczy użytkowników do Gmaila za pomocą skryptu w języku Python poniżej.

    Uwaga: ten skrypt jest przeznaczony tylko dla użytkowników, którzy będą używać usługi kluczy do szyfrowania treści w Gmailu. W przypadku użytkowników, którzy będą korzystać z szyfrowania klucza sprzętowego, musisz utworzyć inny skrypt do przesyłania metadanych ich niezapakowanych kluczy prywatnych.

Po przesłaniu certyfikatów może minąć do 24 godzin, zanim pojawią się one w Gmailu, ale zwykle dzieje się to znacznie szybciej.

(Opcjonalnie) Użyj przykładowego skryptu Google w języku Python, aby przesłać certyfikaty użytkownika i zapakowane klucze prywatne do Gmaila.

Aby wykonać krok 3 opisany powyżej, możesz użyć udostępnionego przez Google skryptu w języku Python, zamiast tworzyć własny.

Uwaga: ten skrypt prosi o podanie 3 zakresów, które możesz wykorzystać do przyznania dostępu do interfejsu API Gmaila w całej domenie (wymienionych wcześniej na tej stronie): gmail.settings.readonly, gmail.settings.basic i gmail.settings.sharing. Aby korzystać ze skryptu, możesz włączyć wszystkie 3 zakresy lub usunąć z niego nieużywany zakres.

Pobieranie skryptu

Pobierz pakiet skryptów w języku Python (.zip) na komputer (z systemem Mac, Linux lub Windows) i rozpakuj pliki do katalogu roboczego.

Tworzenie środowiska wirtualnego i instalowanie modułów

W wierszu poleceń w katalogu roboczym wpisz te polecenia:

Wywoływanie skryptu

Przesyłanie certyfikatów i kluczy użytkownika

Krok 1. Utwórz katalog do przechowywania wszystkich zapakowanych kluczy prywatnych

  • Możesz na przykład utworzyć katalog $root/wrapped_keys.
  • Nazwa pliku każdego zapakowanego klucza prywatnego musi być pełnym adresem e-mail użytkownika z rozszerzeniem .wrap. Na przykład: $root/wrapped_keys/user1@example.com.wrap
  • Sprawdź, czy zapakowany klucz prywatny ma obiekt JSON z 2 polami wymaganymi:

Krok 2. Utwórz katalog do przechowywania wszystkich certyfikatów

  • Certyfikaty muszą mieć format P7 PEM, możesz więc utworzyć katalog $root/p7pem_certs.
  • Sprawdź, czy plik certyfikatu zawiera pełny łańcuch łączący go z głównym urzędem certyfikacji.
  • Nazwa pliku każdego certyfikatu musi być pełnym adresem e-mail użytkownika z rozszerzeniem .p7pem. Na przykład: $root/p7pem_certs/user1@example.com.p7pem

Jeśli masz plik P7B: możesz użyć poniższego komentarza openssl, aby przekonwertować go na format P7 PEM:

Krok 3. Prześlij pary kluczy i tożsamości użytkowników

Aby to zrobić, potrzebujesz pliku JSON zawierającego dane logowania do konta usługi zapisane na komputerze w kroku 2. Utwórz konto usługi powyżej.

Najprostszym sposobem przesłania par kluczy i tożsamości użytkowników jest uruchomienie polecenia insert. Pamiętaj, że każde polecenie musi zawierać argument, na przykład:

Możesz też wykonać te czynności w przypadku każdego użytkownika:

  1. Uruchom polecenie insert_keypair i zapisz identyfikator pary kluczy.
  2. uruchomić polecenie insert_identity, używając tego identyfikatora pary kluczy.

Identyfikator pary kluczy możesz też uzyskać, uruchamiając polecenie list_keypair.

Krok 4. Sprawdź, czy użytkownicy mają tożsamości i pary kluczy szyfrowania po stronie klienta

Potwierdź, że użytkownicy mają prawidłowe pary kluczy i tożsamości w Gmailu, wykonując te polecenia dla każdego z nich:

list_keypair

list_identity

Przechodzenie na inną usługę kluczy na potrzeby szyfrowania po stronie klienta w Gmailu

Jeśli chcesz przejść na inną usługę kluczy na potrzeby szyfrowania po stronie klienta w Gmailu, powtórz kroki 2 i 3 opisane w sekcji o konfigurowaniu certyfikatów S/MIME szyfrowania po stronie klienta dla użytkowników powyżej, wykorzystując nową usługę kluczy do zapakowania kluczy prywatnych.

Uwaga: przesłanie nowych certyfikatów użytkowników nie powoduje przeniesienia treści do nowej usługi kluczy. Użytkownicy nadal będą mieli dostęp do e-maili zaszyfrowanych za pomocą poprzednich certyfikatów i metadanych kluczy prywatnych zapakowanych przez starą usługę kluczy.

Migracja wiadomości do Gmaila jako e-maili zaszyfrowanych po stronie klienta

Po skonfigurowaniu szyfrowania po stronie klienta w Gmailu możesz opcjonalnie zaimportować wiadomości. Więcej informacji znajdziesz w artykule Migracja wiadomości do Gmaila jako e-maili zaszyfrowanych po stronie klienta.