Planowanie i implementowanie protokołu Transport Layer Security (TLS) do aplikacji, w tym usług Azure App Service i API Management

Zakończone

Transport Layer Security (TLS) to protokół kryptograficzny przeznaczony do zabezpieczania komunikacji za pośrednictwem sieci przez zapewnienie szyfrowania, uwierzytelniania i integralności danych. Działa przez ustanowienie bezpiecznego protokołu uzgadniania między klientem a serwerem, negocjację zestawów szyfrowania i weryfikację certyfikatów wystawionych przez zaufane organy certyfikacyjne. Ten proces zapewnia, że poufne informacje, takie jak poświadczenia i dane aplikacji, są przesyłane w postaci zaszyfrowanej, chroniąc je przed przechwytywaniem lub manipulowaniem podczas przesyłania. Protokół TLS ewoluował w wielu wersjach, a protokoły TLS 1.2 i TLS 1.3 oferują silniejsze szyfrowanie, szybsze uzgadnianie i zwiększoną prywatność w porównaniu z wcześniejszymi iteracjami.

W kontekście platformy Azure protokół TLS odgrywa kluczową rolę w zabezpieczaniu danych między usługami, takimi jak App Service, API Management, Azure Storage i SQL Database. Platforma Azure wymusza protokół TLS dla wszystkich połączeń w celu zapewnienia szyfrowania podczas przesyłania, co zmniejsza ryzyko, takie jak ataki typu man-in-the-middle. Wymagane są nowoczesne wersje protokołu TLS (wersja 1.2 lub nowsza). Platforma Azure jest zgodna ze standardami zabezpieczeń branżowymi i udostępnia funkcje, takie jak Perfect Forward Secrecy i uwierzytelnione szyfrowanie, co zwiększa odporność na zmieniające się zagrożenia. Nowsze wersje protokołu TLS nie tylko chronią dane klientów, ale także zapewniają zgodność z wymaganiami prawnymi, dzięki czemu protokół TLS jest podstawowym składnikiem stanu zabezpieczeń platformy Azure.

Co robi usługa Transport Layer Security dla aplikacji

Protokół Transport Layer Security (TLS) szyfruje dane podróżujące między klientami i serwerami, uniemożliwiając podsłuchiwanie i manipulowanie. Gdy użytkownik łączy się z aplikacją internetową lub interfejsem API, protokół TLS tworzy zaszyfrowany tunel, który chroni poufne informacje — takie jak tokeny uwierzytelniania, dane osobowe i transakcje biznesowe — przed przechwyceniem.

Nowoczesne organizacje korzystają z protokołu TLS w celu:

  • Spełnij wymagania prawne: standardy, takie jak PCI DSS, HIPAA i inne standardy, nakazują szyfrowanie danych przesyłanych.
  • Tworzenie zaufania klientów: Wskaźniki zabezpieczeń przeglądarki i ostrzeżenia dotyczące certyfikatów bezpośrednio tworzą zaufanie użytkowników.
  • Zapobieganie naruszeniom danych: Niezaszyfrowane połączenia uwidaczniają poświadczenia, tokeny sesji i dane biznesowe osobom atakującym sieci.

Protokół TLS zastępuje przestarzały protokół Secure Sockets Layer (SSL). Zawsze konfiguruj usługi do korzystania z protokołu TLS 1.2 lub nowszego, a protokół TLS 1.3 jest zalecany do zapewnienia optymalnego bezpieczeństwa i wydajności.

Dlaczego protokół TLS ma znaczenie na platformie Azure

Usługi platformy Azure obsługują miliony żądań klientów codziennie w różnych regionach globalnych. Protokół TLS zapewnia trzy krytyczne zabezpieczenia:

  • Uwierzytelnianie: Certyfikaty potwierdzają tożsamość usługi, uniemożliwiając ataki typu man-in-the-middle, w których atakujący podszywają się pod punkty końcowe.
  • Poufność: Szyfrowanie zapewnia, że tylko autoryzowane osoby mogą odczytywać przesyłane dane, nawet jeśli ruch przechodzi przez niezaufane sieci.
  • Integralność: Podpisy kryptograficzne wykrywają wszelkie naruszenia danych podczas transmisji.

Bez protokołu TLS, osoba atakująca w tej samej sieci, co użytkownicy, może przechwytywać poświadczenia logowania, klucze interfejsu API lub rekordy klientów. Platforma Azure obejmuje wbudowaną obsługę protokołu TLS w usługach platformy, ale należy skonfigurować minimalne wersje i zasady certyfikatów, aby dostosować je do wymagań dotyczących zabezpieczeń.

Ważne

Protokół TLS chroni tylko dane podczas przesyłania. Dane magazynowane należy szyfrować oddzielnie przy pomocy szyfrowania Azure Storage, przezroczystego szyfrowania danych baz danych lub usługi Azure Disk Encryption.

Konfigurowanie protokołu TLS dla usługi Azure App Service

W kodzie aplikacji możesz uzyskać dostęp do certyfikatów publicznych lub prywatnych dodanych do usługi Azure App Service. Kod aplikacji może działać jako klient i uzyskiwać dostęp do usługi zewnętrznej, która wymaga uwierzytelniania certyfikatu. Może być również konieczne wykonanie zadań kryptograficznych.

Takie podejście do używania certyfikatów w kodzie korzysta z funkcji Transport Layer Security (TLS) w usłudze App Service, która wymaga, aby aplikacja znajdowała się w warstwie Podstawowa lub nowsza. Jeśli aplikacja znajduje się w warstwie Bezpłatna lub Współdzielona, możesz dołączyć plik certyfikatu do repozytorium aplikacji.

Gdy zezwolisz usłudze App Service na zarządzanie certyfikatami TLS/Secure Sockets Layer (SSL), możesz obsługiwać certyfikaty i kod aplikacji oddzielnie oraz chronić poufne dane.

Usługa Azure App Service zapewnia zarządzane kończenie żądań protokołu TLS z automatycznym odnawianiem certyfikatów. Kontrolujesz minimalną wersję protokołu TLS i możesz wymusić protokół HTTPS dla wszystkich połączeń.

Wymuszanie minimalnej wersji protokołu TLS

  1. W witrynie Azure Portal przejdź do zasobu usługi App Service.
  2. W obszarze Ustawienia wybierz pozycję Konfiguracja.
  3. Wybierz kartę Ustawienia Ogólne.
  4. Ustaw minimalną wersję protokołu TLS na 1.2 lub 1.3 (zalecana wersja 1.3).
  5. Wybierz Zapisz, aby zastosować zmianę.

Klienci próbujący nawiązać połączenie ze starszymi wersjami protokołu TLS otrzymują błąd połączenia, uniemożliwiając starszym systemom używanie słabej kryptografii.

Wymaganie połączeń HTTPS

  1. W zasobie usługi App Service wybierz pozycję Konfiguracja w obszarze Ustawienia.
  2. Wybierz kartę Ustawienia Ogólne.
  3. Ustaw Tryb Tylko HTTPS na Włączony.
  4. Wybierz Zapisz.

Platforma Azure automatycznie przekierowuje żądania HTTP do protokołu HTTPS, zapewniając, że cały ruch używa zaszyfrowanych połączeń. Połączenia szyfrowane eliminują ostrzeżenia dotyczące zawartości mieszanej w przeglądarkach i upraszczają inspekcje zgodności.

Dodawanie niestandardowego certyfikatu domeny

Aplikacje usługi App Service otrzymują bezpłatny *.azurewebsites.net certyfikat. W przypadku obciążeń produkcyjnych przy użyciu domen niestandardowych:

  1. Kup lub zaimportuj certyfikat zgodny z nazwą domeny.
  2. W usłudze App Service wybierz pozycję Certyfikaty w obszarze Ustawienia.
  3. Wybierz pozycję Dodaj certyfikat i postępuj zgodnie z kreatorem, aby przekazać certyfikat lub utworzyć certyfikat zarządzany przez usługę App Service.
  4. Powiąż certyfikat z domeną niestandardową w obszarze Domeny niestandardowe.

Certyfikaty zarządzane są odnawiane automatycznie przed wygaśnięciem. Certyfikaty prywatne wymagają ręcznego odnawiania i ponownego ładowania.

Konfigurowanie protokołu TLS dla usługi Azure API Management

Usługa Azure API Management znajduje się pomiędzy klientami a interfejsami API zaplecza, zarządzając uwierzytelnianiem, ograniczaniem szybkości oraz transformacją. TLS konfiguruje się zarówno w warstwie bramy (od strony klienta), jak i zaplecza (od usługi do usługi).

Ustawianie minimalnej wersji protokołu TLS dla bramy

  1. W witrynie Azure Portal otwórz wystąpienie usługi API Management.
  2. W obszarze Zabezpieczenia wybierz pozycję Protokoły i szyfry.
  3. Wyczyść pola wyboru dla protokołów SSL 3.0, TLS 1.0 i TLS 1.1.
  4. Upewnij się, że protokół TLS 1.2 jest włączony (obsługa protokołu TLS 1.3 zależy od warstwy usługi).
  5. Wybierz Zapisz.

Ustawienie minimalnej wersji protokołu TLS uniemożliwia klientom negocjowanie słabych wersji protokołu. Przetestuj użytkowników interfejsu API przed wyłączeniem protokołu TLS 1.1, jeśli obsługujesz starsze aplikacje mobilne lub starsze systemy.

Wymuszanie protokołu HTTPS dla punktów końcowych interfejsu API

  1. Przejdź do interfejsów API w instancji usługi Zarządzania API.
  2. Wybierz interfejs API, który chcesz zabezpieczyć.
  3. W obszarze Ustawienia znajdź opcję Schemat adresów URL .
  4. Wybierz tylko protokół HTTPS.
  5. Wybierz Zapisz.

Usługa API Management odrzuca żądania HTTP z odpowiedzią 403 Zabronione, chroniąc przed przypadkowym ujawnieniem niezaszyfrowanych punktów końcowych.

Konfigurowanie weryfikacji TLS po stronie serwera

Gdy usługa API Management wywołuje usługi zaplecza, sprawdź, czy te połączenia również używają protokołu TLS:

  1. W interfejsie API wybierz pozycję Projekt i wybierz operację.
  2. W sekcji Zaplecze wybierz ikonę ołówka, aby edytować.
  3. Włącz pozycję Weryfikuj łańcuch certyfikatów i Zweryfikuj nazwę certyfikatu.
  4. Przekaż zaufane certyfikaty główne, jeśli zaplecze używa certyfikatów prywatnych lub z podpisem własnym.

Sprawdź połączenia oparte na kopii zapasowej, aby uniemożliwić usłudze API Management akceptowanie nieprawidłowych lub wygasłych certyfikatów z usług zaplecza, utrzymując kompleksowe szyfrowanie.

Wskazówka

Usługa Azure Key Vault umożliwia przechowywanie i obracanie certyfikatów zarówno dla usługi App Service, jak i usługi API Management. Scentralizowany proces zarządzania cyklem życia certyfikatu upraszcza raportowanie zgodności.

Planowanie konfiguracji protokołu TLS

Przed wdrożeniem zmian protokołu TLS w środowisku produkcyjnym:

  • Przeprowadź inspekcję istniejących klientów: zidentyfikuj wszystkie systemy przy użyciu protokołu TLS 1.0 lub 1.1 i zaplanuj ich uaktualnienia.
  • Testowanie odnawiania certyfikatów: Sprawdź, czy automatyczne odnawianie działa dla zarządzanych certyfikatów i dokumentuje procedury ręcznego odnawiania certyfikatów prywatnych.
  • Konfigurowanie monitorowania: konfigurowanie alertów usługi Azure Monitor dla błędów uzgadniania protokołu TLS i ostrzeżeń o wygaśnięciu certyfikatu.
  • Mapowania zgodności dokumentów: rejestruj ustawienia protokołu TLS spełniające określone wymagania prawne dotyczące dzienników inspekcji.

Wyłączenie starszych wersji protokołu TLS może przerwać zgodność ze starszymi klientami. Koordynowanie pracy z właścicielami aplikacji i planowanie etapowego wdrażania przy użyciu jasnej komunikacji z użytkownikami interfejsu API.

Najważniejsze wynos

  • Skonfiguruj minimalną wersję protokołu TLS do wersji 1.2 lub nowszej we wszystkich usługach platformy Azure, aby zapobiec słabym lukom w kryptografii.
  • Wymuszanie połączeń tylko https w usłudze App Service i usłudze API Management w celu wyeliminowania niezaszyfrowanego ruchu.
  • Włącz walidację certyfikatu zaplecza w usłudze API Management, aby zachować kompleksowe szyfrowanie między granicami usługi.
  • Użyj usługi Azure Key Vault do scentralizowanego zarządzania certyfikatami i zautomatyzowanych przepływów pracy odnawiania.
  • Przetestuj zmiany konfiguracji protokołu TLS w środowiskach przejściowych przed wdrożeniem produkcyjnym, aby zidentyfikować problemy ze zgodnością klienta.
  • Przeprowadź inspekcję istniejących wystąpień usług Azure App Service i API Management, aby zidentyfikować usługi, które nadal zezwalają na protokół TLS 1.0 lub 1.1.
  • Utwórz usługę Azure Key Vault i przeprowadź migrację magazynu certyfikatów z ręcznego przekazywania do scentralizowanego zarządzania opartego na magazynie.
  • Skonfiguruj alerty usługi Azure Monitor dotyczące wygaśnięcia certyfikatu na 30 dni przed wygaśnięciem oraz niepowodzeń w uzgadnianiu protokołu TLS, aby zapobiec zakłóceniom w działaniu usługi.