Zasięg

Grow

Manage

Automate

Zasięg

Grow

Manage

Automate

S/MIME Część 2: Podpisane, Zatwierdzone i Dostarczone przez SparkPost

Email

1 min read

S/MIME Część 2: Podpisane, Zatwierdzone i Dostarczone przez SparkPost

Email

1 min read

S/MIME Część 2: Podpisane, Zatwierdzone i Dostarczone przez SparkPost

W części 1 mieliśmy szybką wycieczkę po S/MIME, przyglądając się podpisywaniu i szyfrowaniu naszych strumieni wiadomości w różnych klientach pocztowych. Wiadomości S/MIME mogą być podpisywane (co daje dowód tożsamości nadawcy), szyfrowane (utrzymując treść wiadomości w tajemnicy) lub oba.

W tej części, my:

  • Zainstaluj kilka prostych narzędzi wiersza poleceń do podpisywania i szyfrowania e-maili

  • Zdobądź swój klucz nadawcy / certyfikat do podpisywania

  • Wyślij podpisaną wiadomość za pośrednictwem SparkPost i spójrz na otrzymaną wiadomość

  • Opcjonalnie, zdobądź certyfikat swojego odbiorcy do szyfrowania

  • Wyślij podpisaną i zaszyfrowaną wiadomość za pośrednictwem SparkPost i spójrz na otrzymaną wiadomość

  • Wypróbuj przydatne, samodzielne narzędzie „mimeshow”, aby spojrzeć na wnętrze plików e-mail.

OK – zaczynajmy!

1. Zainstaluj narzędzia

Narzędzia demonstracyjne znajdują się na Githubie tutaj, wraz z instrukcjami instalacji. Możesz zauważyć logo „build passing” – Travis i pytest automatycznie sprawdzają status budowy. Zauważ, że te narzędzia nie są oficjalnie wspierane przez SparkPost, ale starałem się, aby były solidne i łatwe w użyciu.

Jeśli masz pewne doświadczenie z Pythonem i pipem, instalacja powinna być dość znajoma. Pipfile zajmie się automatycznie zewnętrznymi zależnościami. Gdy to się zakończy, możesz sprawdzić, czy wszystko zostało zainstalowane, uruchamiając

./sparkpostSMIME.py -h

Powinieneś zobaczyć przyjazny tekst pomocy. Następnie musimy…

2. Uzyskaj swój klucz nadawcy / certyfikat do podpisywania

Jeśli masz już plik klucza dla swojej tożsamości wysyłkowej, możesz pominąć dalszą część. W przeciwnym razie oto dwie opcje do wyboru:

a) Samopodpisany klucz testowy / certyfikat (nie jest zewnętrznie ważny)

Jeśli właśnie testujesz, możesz stworzyć „samopodpisane” certyfikaty i klucze dla adresu e-mail za pomocą narzędzia wiersza poleceń openssl na Linux, postępując według takiego procedury. Na końcu tego procesu będziesz mieć plik smime.p12. Zmień nazwę tego pliku, aby dopasować swoją tożsamość wysyłkową, w tym znak @, na przykład alice@example.com.p12.

albo

b) Zewnętrznie ważne klucze / certyfikaty

Jeśli chcesz uzyskać zewnętrznie ważne klucze / certyfikaty, które umożliwiają podpisanie, istnieje lista dostawców tutaj. Znalazłem, że Comodo działa dobrze (bezpłatne do użytku niekomercyjnego) i jest łatwiejsze niż powyższy proces samopodpisania. Postępuj według procesu rejestracji, otrzymaj wiadomość z walidacją i upewnij się, że otworzysz link w Firefox. Przejdź do Preferencje Firefox / Prywatność i bezpieczeństwo. Przewiń do Certyfikaty / Wyświetl certyfikaty:




Wybierz swój certyfikat i użyj opcji „Backup”, aby zapisać jako plik w formacie PKCS12 (dodaj rozszerzenie pliku .p12 do swojej nazwy pliku), który zawiera klucz prywatny i publiczny łańcuch certyfikatów.




Podaj hasło, aby zabezpieczyć plik .p12:

Generuj oddzielne klucze publiczne (.crt) i prywatne (.pem)

Niezależnie od tego, czy użyłeś a) czy b), teraz będziesz mieć plik .p12 dla swojej tożsamości nadawcy. To duży krok do przodu – teraz nalej kawę!

Teraz musimy wygenerować oddzielne pliki klucza publicznego i prywatnego w ten sposób – zastępując własnym adresem e-mail przykładowy (Mac OSX i Linux):

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

Będziesz musiał wpisać hasło, które podałeś wcześniej. Zauważ, że te ukośniki odwrotne \ są używane do ucieczki przed znakiem @ – nie oddzielają nazw ścieżek katalogów (to ukośnik / na Mac OSX i Linux).

Jeśli używasz Windows, dostępne są implementacje openssl, takie jak ta wbudowana w narzędzia wiersza poleceń Git, ale stwierdziłem, że mają tendencję do zawieszania się. Prawdopodobnie łatwiej i szybciej będzie to zrobić na Linux, a następnie skopiować swoje pliki. Te same narzędzia Git dla Windows zawierają ładnego klienta ssh, którego możesz użyć do zalogowania się na maszynę Linux, taką jak instancja Amazon EC2.




2.1 Podpisanie wiadomości

Jest już przykładowy plik klucza/certyfikatu i źródło e-mail w katalogu testów dla alice@example.com, więc możesz uzyskać pewne dane wyjściowe, nawet jeśli nie masz jeszcze swoich kluczy. Wystarczy wpisać następujące polecenie:

cd tests ../sparkpostSMIME.py example_email1.eml --sign

I otrzymasz:

Do: Bob <bob@example.com> Od: Alice <alice@example.com> Temat: Wiadomość MIME-Version: 1.0 Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

Nie możesz faktycznie wysłać wiadomości e-mail z example.com przez SparkPost, chyba że jesteś właścicielem tej domeny, więc następnym krokiem jest użycie własnego klucza i wysłanie podpisanej wiadomości z własnej domeny.

Jeśli masz już plik klucza dla swojej tożsamości wysyłkowej, możesz pominąć dalszą część. W przeciwnym razie oto dwie opcje do wyboru:

a) Samopodpisany klucz testowy / certyfikat (nie jest zewnętrznie ważny)

Jeśli właśnie testujesz, możesz stworzyć „samopodpisane” certyfikaty i klucze dla adresu e-mail za pomocą narzędzia wiersza poleceń openssl na Linux, postępując według takiego procedury. Na końcu tego procesu będziesz mieć plik smime.p12. Zmień nazwę tego pliku, aby dopasować swoją tożsamość wysyłkową, w tym znak @, na przykład alice@example.com.p12.

albo

b) Zewnętrznie ważne klucze / certyfikaty

Jeśli chcesz uzyskać zewnętrznie ważne klucze / certyfikaty, które umożliwiają podpisanie, istnieje lista dostawców tutaj. Znalazłem, że Comodo działa dobrze (bezpłatne do użytku niekomercyjnego) i jest łatwiejsze niż powyższy proces samopodpisania. Postępuj według procesu rejestracji, otrzymaj wiadomość z walidacją i upewnij się, że otworzysz link w Firefox. Przejdź do Preferencje Firefox / Prywatność i bezpieczeństwo. Przewiń do Certyfikaty / Wyświetl certyfikaty:




Wybierz swój certyfikat i użyj opcji „Backup”, aby zapisać jako plik w formacie PKCS12 (dodaj rozszerzenie pliku .p12 do swojej nazwy pliku), który zawiera klucz prywatny i publiczny łańcuch certyfikatów.




Podaj hasło, aby zabezpieczyć plik .p12:

Generuj oddzielne klucze publiczne (.crt) i prywatne (.pem)

Niezależnie od tego, czy użyłeś a) czy b), teraz będziesz mieć plik .p12 dla swojej tożsamości nadawcy. To duży krok do przodu – teraz nalej kawę!

Teraz musimy wygenerować oddzielne pliki klucza publicznego i prywatnego w ten sposób – zastępując własnym adresem e-mail przykładowy (Mac OSX i Linux):

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

Będziesz musiał wpisać hasło, które podałeś wcześniej. Zauważ, że te ukośniki odwrotne \ są używane do ucieczki przed znakiem @ – nie oddzielają nazw ścieżek katalogów (to ukośnik / na Mac OSX i Linux).

Jeśli używasz Windows, dostępne są implementacje openssl, takie jak ta wbudowana w narzędzia wiersza poleceń Git, ale stwierdziłem, że mają tendencję do zawieszania się. Prawdopodobnie łatwiej i szybciej będzie to zrobić na Linux, a następnie skopiować swoje pliki. Te same narzędzia Git dla Windows zawierają ładnego klienta ssh, którego możesz użyć do zalogowania się na maszynę Linux, taką jak instancja Amazon EC2.




2.1 Podpisanie wiadomości

Jest już przykładowy plik klucza/certyfikatu i źródło e-mail w katalogu testów dla alice@example.com, więc możesz uzyskać pewne dane wyjściowe, nawet jeśli nie masz jeszcze swoich kluczy. Wystarczy wpisać następujące polecenie:

cd tests ../sparkpostSMIME.py example_email1.eml --sign

I otrzymasz:

Do: Bob <bob@example.com> Od: Alice <alice@example.com> Temat: Wiadomość MIME-Version: 1.0 Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

Nie możesz faktycznie wysłać wiadomości e-mail z example.com przez SparkPost, chyba że jesteś właścicielem tej domeny, więc następnym krokiem jest użycie własnego klucza i wysłanie podpisanej wiadomości z własnej domeny.

Jeśli masz już plik klucza dla swojej tożsamości wysyłkowej, możesz pominąć dalszą część. W przeciwnym razie oto dwie opcje do wyboru:

a) Samopodpisany klucz testowy / certyfikat (nie jest zewnętrznie ważny)

Jeśli właśnie testujesz, możesz stworzyć „samopodpisane” certyfikaty i klucze dla adresu e-mail za pomocą narzędzia wiersza poleceń openssl na Linux, postępując według takiego procedury. Na końcu tego procesu będziesz mieć plik smime.p12. Zmień nazwę tego pliku, aby dopasować swoją tożsamość wysyłkową, w tym znak @, na przykład alice@example.com.p12.

albo

b) Zewnętrznie ważne klucze / certyfikaty

Jeśli chcesz uzyskać zewnętrznie ważne klucze / certyfikaty, które umożliwiają podpisanie, istnieje lista dostawców tutaj. Znalazłem, że Comodo działa dobrze (bezpłatne do użytku niekomercyjnego) i jest łatwiejsze niż powyższy proces samopodpisania. Postępuj według procesu rejestracji, otrzymaj wiadomość z walidacją i upewnij się, że otworzysz link w Firefox. Przejdź do Preferencje Firefox / Prywatność i bezpieczeństwo. Przewiń do Certyfikaty / Wyświetl certyfikaty:




Wybierz swój certyfikat i użyj opcji „Backup”, aby zapisać jako plik w formacie PKCS12 (dodaj rozszerzenie pliku .p12 do swojej nazwy pliku), który zawiera klucz prywatny i publiczny łańcuch certyfikatów.




Podaj hasło, aby zabezpieczyć plik .p12:

Generuj oddzielne klucze publiczne (.crt) i prywatne (.pem)

Niezależnie od tego, czy użyłeś a) czy b), teraz będziesz mieć plik .p12 dla swojej tożsamości nadawcy. To duży krok do przodu – teraz nalej kawę!

Teraz musimy wygenerować oddzielne pliki klucza publicznego i prywatnego w ten sposób – zastępując własnym adresem e-mail przykładowy (Mac OSX i Linux):

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

Będziesz musiał wpisać hasło, które podałeś wcześniej. Zauważ, że te ukośniki odwrotne \ są używane do ucieczki przed znakiem @ – nie oddzielają nazw ścieżek katalogów (to ukośnik / na Mac OSX i Linux).

Jeśli używasz Windows, dostępne są implementacje openssl, takie jak ta wbudowana w narzędzia wiersza poleceń Git, ale stwierdziłem, że mają tendencję do zawieszania się. Prawdopodobnie łatwiej i szybciej będzie to zrobić na Linux, a następnie skopiować swoje pliki. Te same narzędzia Git dla Windows zawierają ładnego klienta ssh, którego możesz użyć do zalogowania się na maszynę Linux, taką jak instancja Amazon EC2.




2.1 Podpisanie wiadomości

Jest już przykładowy plik klucza/certyfikatu i źródło e-mail w katalogu testów dla alice@example.com, więc możesz uzyskać pewne dane wyjściowe, nawet jeśli nie masz jeszcze swoich kluczy. Wystarczy wpisać następujące polecenie:

cd tests ../sparkpostSMIME.py example_email1.eml --sign

I otrzymasz:

Do: Bob <bob@example.com> Od: Alice <alice@example.com> Temat: Wiadomość MIME-Version: 1.0 Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

Nie możesz faktycznie wysłać wiadomości e-mail z example.com przez SparkPost, chyba że jesteś właścicielem tej domeny, więc następnym krokiem jest użycie własnego klucza i wysłanie podpisanej wiadomości z własnej domeny.

3. Wyślij podpisaną wiadomość za pośrednictwem SparkPost

Teraz użyjemy prawdziwej domeny wysyłania, skonfigurowanej zgodnie z Przewodnikiem dla Nowych Użytkowników SparkPost. Mamy pliki certyfikatu nadawcy oraz klucza w bieżącym katalogu:

steve@thetucks.com.crt steve@thetucks.com.pem

Plik tests/declaration.eml jest dołączony do projektu. Jest to tylko plik tekstowy, więc możesz dostosować adres From: do swojej własnej domeny wysyłania i adres To: do pasującego do Twojego testowego odbiorcy. Początek pliku wygląda następująco:

Do: Bob <bob.lumreeker@gmail.com> Od: Steve <steve@thetucks.com> Temat: Oto nasza deklaracja MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB Kiedy w biegu ludzkich wydarzeń staje się konieczne ...




Ustaw swój klucz API:

export SPARKPOST_API_KEY=<<Wprowadź tutaj swój klucz API>>

Wyślij e-mail:

./sparkpostSMIME.py tests/declaration.eml --sign --send_api




Zobaczysz:

Otworzono połączenie z https://api.sparkpost.com/api/v1 Wysyłanie tests/declaration.eml Od: Steve <steve@thetucks.com> Do: Bob <bob.lumreeker@gmail.com> OK - w 1.15 sekundy

Chwilę później, e-mail dociera do skrzynki odbiorczej Boba. Thunderbird pokazuje go z czerwoną kropką na kopercie, co wskazuje na ważny podpis nadawcy.

Sukces! Dokończ tę kawę, zasłużyłeś na to. Jeśli masz problem, sprawdź czy adres From: w pliku e-mail pasuje do nazwy Twoich plików .crt i .pem.

4. Szyfrowanie wiadomości

Aby zaszyfrować wiadomość, potrzebujesz klucza publicznego odbiorcy w formie certyfikatu. Jest to plik tekstowy, który wygląda tak:

Bag Attributes   friendlyName: s COMODO CA Limited ID #2   localKeyID: 32 84 AB 9C 56 5C 80 C6 89 4D 40 46 DD D4 7C 71 E8 CD ED C1 subject=/emailAddress=bob.lumreeker@gmail.com issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Client Authentication and Secure Email CA -----BEGIN CERTIFICATE----- wygląda jak losowe znaki tutaj -----END CERTIFICATE-----

W katalogu tests znajduje się przykładowy certyfikat odbiorcy dla bob@example.com, więc możesz poćwiczyć z nim, zanim będziesz mieć prawdziwy certyfikat:

cd tests ../sparkpostSMIME.py example_email1.eml --sign --encrypt




Zobaczysz:




Do: Bob <bob@example.com> Od: Alice <alice@example.com> Temat: Wiadomość MIME-Version: 1.0 Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=smime.p7m MIIRwQYJKoZIhvcNAQcDoIIRsjCCEa4CAQAxggKlMIICoQIBADCBijCBhDELMAkG :

Zauważysz, że długość wyjścia jest dość dłuższa niż w przypadku zaszyfrowanej wiadomości, ponieważ zawiera wiele dodatkowych informacji oraz samą zaszyfrowaną wiadomość.




4.1 Wysyłanie zaszyfrowanej, podpisanej wiadomości przez SparkPost

Wyślijmy zaszyfrowaną wiadomość na prawdziwy adres e-mail. Możesz postępować zgodnie z tym samym procesem co wcześniej (samo-podpisane lub z dostawcą, takim jak Comodo), aby uzyskać klucz publiczny / certyfikat dla swoich adresów odbiorców. Potrzebujesz tylko pliku .crt – odbiorca nigdy nie musi dawać ci swojego klucza prywatnego (.p12 i .pem files).

Posiadam plik bob.lumreeker@gmail.com.crt dla mojego zamierzonego odbiorcy – pasujący do adresu Od: w moim pliku.

Oto polecenie do wysłania:

./sparkpostSMIME.py tests/declaration.eml --sign --encrypt --send_api




Widzę:

Otwarto połączenie z https://api.sparkpost.com/api/v1 Wysyłanie tests/declaration.eml Od: Steve <steve@thetucks.com> Do: Bob <bob.lumreeker@gmail.com> OK - w 1,168 sekund

Poczta pojawia się w Thunderbird z ikoną podpisu „czerwona kropka” i ikoną „kłódki” zaszyfrowaną.




Możesz wysyłać złożone wiadomości e-mail oparte na HTML z linkami i obrazami równie łatwo, tak jak pokazano w Części 1. Niektóre klienty, takie jak Thunderbird, proszą o pozwolenie na wyświetlanie zewnętrznych linków i obrazów w zaszyfrowanych wiadomościach S/MIME, ale tylko podpisane wiadomości wyświetlają się dobrze w klientów w tym Thunderbird i Gmail:




Zauważ, że rozwijana lista pokazuje „Zweryfikowany adres e-mail”.

Dalsze przemyślenia i rzeczy, na które należy zwrócić uwagę

To narzędzie przyjmuje bardzo proste podejście do pobierania niezbędnych kluczy — po prostu szuka nazwanych plików w bieżącym katalogu. Bardziej złożone rozwiązania, takie jak przechowywanie wszystkich kluczy w bazie danych, można łatwo dodać, ale chciałem, aby kod był możliwie jak najprostszy.

Możesz dodać innych odbiorców za pomocą Cc: i Bcc: i zostaną one dostarczone; może to być przydatne do celów archiwalnych. Odbierane są podpisane wiadomości i mogą być wyświetlane przez innych odbiorców wraz z podpisem. Narzędzie usuwa nagłówek Bcc: z dostarczonej wiadomości (tak jak zrobiłby to klient poczty na komputerze).

Aby zapewnić, że wiadomości przechodzą przez SparkPost bez zmian (co mogłoby złamać podpisywanie), narzędzie ustawia opcje API dla wysyłki „transakcyjnej”, z wyłączonym śledzeniem otwarć i kliknięć.

Jeśli używasz szyfrowania, pamiętaj, że narzędzie odbiera pojedynczy adres To: dla tego. Inni odbiorcy mogą dekodować treść wiadomości tylko wtedy, gdy mają klucz prywatny odbiorcy To:. Jeśli używasz drugorzędnych odbiorców tylko jako zapis dostaw, na przykład, to i tak może być w porządku.

Podpisane, zapieczętowane, dostarczone... jestem twój

To nasz szybki przegląd tego, jak podpisywać, pieczętować i dostarczać wiadomości S/MIME przez SparkPost. Krótkie przypomnienie: projekt demonstracyjny znajduje się na Github tutaj, starałem się, aby instalacja i używanie było łatwe.

Funkcja bonusowa: wyświetlanie części MIME za pomocą „mimeshow”

Wewnętrzna struktura plików MIME RFC822 jest dość skomplikowana do odczytania przez ludzi. Projekt obejmuje samodzielne narzędzie, które to ułatwia, zwane mimeshow.




Oto jakiekolwiek pliki e-mail, które masz (nie tylko S/MIME) i pokazuje wewnętrzną strukturę. Oto przykład:

./mimeshow.py testcases/img_and_attachment.eml




Zobaczysz:

Do Bob <bob.lumreeker@gmail.com>

Od Steve <steve@thetucks.com>

Temat Testowanie załączników itp.

MIME-Version 1.0

Content-Type multipart/mixed; boundary="------------7D48652042860D0098C65210"

Content-Language en-GB

 Content-Type multipart/alternative; boundary="------------58C0BF87598336550D70EB95"

   Content-Type text/plain; charset=utf-8; format=flowed

   Content-Transfer-Encoding 7bit

   Content-Transfer-Encoding quoted-printable

   Content-Type text/html; charset="utf-8"

 Content-Type application/pdf; name="sparkpost-datasheet-tam-technical-account-management.pdf"

 Content-Transfer-Encoding base64

 Content-Disposition attachment; filename="sparkpost-datasheet-tam-technical-account-management.pdf"



Możesz także użyć jako filtra, aby uzyskać przystępne podsumowanie wyjścia sparkpostSMIME:

./sparkpostSMIME.py tests/declaration.eml --sign --encrypt | ./mimeshow.py




Zobaczysz:

Do Bob <bob.lumreeker@gmail.com>

Od Steve <steve@thetucks.com>

Temat Oto nasza deklaracja

Content-Language en-GB

MIME-Version 1.0

Content-Type application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m

Content-Transfer-Encoding base64

Content-Disposition attachment; filename=smime.p7m



W końcu…

Podsumowując – zainstalowaliśmy kilka prostych narzędzi wiersza poleceń do podpisywania i szyfrowania e-maili (repozytorium Github znajduje się tutaj, wraz z instrukcjami instalacji).




Uzyskaliśmy nasz klucz / certyfikat nadawcy do podpisywania i wysłaliśmy podpisaną wiadomość za pomocą SparkPost. Zdobyliśmy certyfikat odbiorcy do szyfrowania, a następnie wysłaliśmy podpisaną i zaszyfrowaną wiadomość za pomocą SparkPost.




Na końcu, wypróbowaliśmy wygodne samodzielne narzędzie „mimeshow” do przeglądania wewnętrznej struktury plików e-mail.


To wszystko na teraz! Do zobaczenia wkrótce!

Dołącz do naszego Newslettera.

Bądź na bieżąco z Bird dzięki cotygodniowym aktualizacjom do Twojej skrzynki odbiorczej.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

Dołącz do naszego Newslettera.

Bądź na bieżąco z Bird dzięki cotygodniowym aktualizacjom do Twojej skrzynki odbiorczej.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

Dołącz do naszego Newslettera.

Bądź na bieżąco z Bird dzięki cotygodniowym aktualizacjom do Twojej skrzynki odbiorczej.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

Logo Pinterest
Logo Uber
Square logo
Logo Adobe
Logo Meta
Logo PayPal

Company

Ustawienia prywatności

Biuletyn

Bądź na bieżąco z Bird dzięki cotygodniowym aktualizacjom do Twojej skrzynki odbiorczej.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

Logo Uber
Square logo
Logo Adobe
Logo Meta

Company

Ustawienia prywatności

Biuletyn

Bądź na bieżąco z Bird dzięki cotygodniowym aktualizacjom do Twojej skrzynki odbiorczej.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

Logo Uber
Logo Adobe
Logo Meta

Zasięg

Grow

Manage

Automate

Zasoby

Company

Biuletyn

Bądź na bieżąco z Bird dzięki cotygodniowym aktualizacjom do Twojej skrzynki odbiorczej.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.