Mam frontendowy serwer WWW działający na HTTPS - to jest publiczne - tzn. Port jest otwarty.
Mam również serwer API zaplecza, do którego mój serwer WWW wysyła żądania API - jest to publiczny obiekt i wymaga uwierzytelnienia - port jest otwarty.
Te 2 serwery działają na HTTPS.
Za serwerem API znajduje się wiele innych serwerów. Serwer API odwraca serwery proxy do tych serwerów. Porty dla tych innych serwerów nie są otwarte na ruch przychodzący. Można się z nimi rozmawiać tylko za pośrednictwem serwera API.
Moje pytanie ... Czy „wiele innych serwerów” musi działać przez HTTPS, czy, biorąc pod uwagę, że nie można uzyskać do nich dostępu z zewnątrz, czy mogą zamiast tego bezpiecznie korzystać z HTTP?
Myślałem, że to będzie częste pytanie, ale nie mogłem znaleźć na nie odpowiedzi. Dzięki. Jeśli to dupe, proszę wskazać mi właściwą odpowiedź.
Odpowiedzi:
Jest to kwestia opinii i ma również związek z kwestiami regulacyjnymi (jeśli masz do czynienia).
Nawet jeśli nie jest to obecnie konieczne, jestem wielkim zwolennikiem utrzymania HTTPS między zaporami ogniowymi / modułami równoważenia obciążenia / serwerami frontonu i serwerami zaplecza na poziomie aplikacji. To o jeden mniej powierzchnia ataku. Zawarłem umowy z miejscami, które musiały zostać przekonwertowane, ponieważ zaczęły być przekazywane bardziej wrażliwe informacje - lepiej zacząć od tego.
To, co ogólnie sugeruję, to użycie wewnętrznego urzędu certyfikacji (jeśli jest dostępny) lub autopodpisania (jeśli nie ma wewnętrznego urzędu certyfikacji) serwerów zaplecza. Ustawiliśmy datę ważności na dobrą i daleką przyszłość, aby uniknąć niepotrzebnych zmian.
źródło
We'd set the expiration date nice and far into the future to avoid unnecessary changes.
” i dodaj regułę do preferowanego pakietu monitorowania, aby ostrzec Cię, gdy wkrótce wygaśnie. Proszę!TL; DR należy szyfrować ruch, chyba że jest na tym samym hoście.
Nie możesz ufać swojej sieci. Szkodliwe oprogramowanie we własnej sieci może przechwytywać / modyfikować żądania HTTP.
To nie są teoretyczne ataki, ale przykład z życia:
Routery (prawdopodobnie zhakowane) w sieci niektórych witryn wstrzykujących reklamy: https://www.blackhat.com/docs/us-16/materials/us-16-Nakossible-TCP-Injection-Attacks-in-the-Wild- A-Large-Scale-Study-wp.pdf
Indyjska sieć wąchania między chmurą a back-endem: https://medium.com/@karthikb351/airtel-is-sniffing-and-censoring-cloudflares-traffic-in-india-and-they-don-t-even-know -it-90935f7f6d98 # .hymc3785e
Znany teraz „SSL dodany i usunięty tutaj :-)” z NSA
źródło
To naprawdę zależy od tego, co próbujesz osiągnąć. Zrozumieć, że celem korzystania z HTTPS jest ochrona danych przesyłanych między dwoma punktami. Jeśli obawiasz się, że dane są wąchane w Twojej sieci, być może najpierw należy się tym zająć. Jeśli chcesz zabezpieczyć przesyłane dane w sieci, mówisz, że masz obawy dotyczące bezpieczeństwa danych przechodzących przez twoje systemy wewnątrz sieci lub istnieje jakiś powód związany z zachowaniem zgodności z przepisami, aby szyfrować przesyłane dane.
To jest raczej pytanie poglądowe, ale odpowiedź brzmi: to zależy. Co próbujesz zrobić? Jakie dane szyfrujesz? Z jakimi zagrożeniami próbujesz się bronić? Czy masz wymóg prawny (np. PCI-DSS, HIPAA itp.), Który mówi, że musisz zaszyfrować przesyłane dane? Jeśli dane są wrażliwe i obawiasz się, że mogą zostać niewłaściwie wykorzystane, gdy są przesyłane w Twojej sieci, sugerowałbym spotkanie z zarządem w celu rozwiązania problemu. Więc w końcu, co próbujesz chronić i dlaczego próbujesz to chronić?
źródło
Wcześniej ludzie zakładali, że sieci wewnętrzne są bezpieczne jak domy. Kiedyś wdałem się w spór z przełożonym, który był przerażony, że moje wewnętrzne serwery działają z wbudowanymi zaporami ogniowymi. „Jeśli nie możesz zaufać swojej sieci wewnętrznej, komu możesz zaufać?” Zwróciłem uwagę, że w naszej wewnętrznej sieci mamy laptopy dla studentów i że nie ma zapory ogniowej między studentami a moimi serwerami. On, będąc nowym w środowisku akademickim, wydawał się mieć swój wszechświat w strzępach na tę informację.
Sieci wewnętrzne nie są już uważane za bezpieczne, nawet jeśli nie masz laptopów studenckich w sieci. Zobacz przykłady Toma, aby uzyskać przykłady.
To powiedziawszy, tak, to zależy od tego, jakie informacje są przesyłane, od wszelkich problemów związanych z przestrzeganiem prawa itp. Możesz zdecydować, że nie obchodzi Cię, że ktoś wącha, powiedzmy, dane pogodowe. Powiedział, że to jest możliwe, że nawet jeśli nie jest wysłana Dane wrażliwe teraz , ktoś może zdecydować, aby dodać funkcje do aplikacji później, że są wrażliwe, więc polecam większą paranoję (łącznie HTTPS).
źródło
Dzisiaj, ze specjalnymi instrukcjami procesora dotyczącymi przyspieszenia szyfrowania i nowymi protokołami transportowymi, które w ogóle nie będą działać lub będą działać z obniżoną wydajnością w przypadku niezaszyfrowanego łącza (HTTP / 2, gRPC itp.), Być może lepszym pytaniem jest: czy są jakieś powód, dla którego chcesz obniżyć łącze sieciowe do HTTP? Jeśli nie ma konkretnego powodu, odpowiedzią jest pozostanie przy HTTPS.
źródło
Jedynym powodem, dla którego mogę wyłączyć szyfrowanie, jest myśl o wydajności. Jednak w twoim przypadku serwery wewnętrzne są połączone przez HTTP, co oznacza, że już ponoszą one koszty wydajności związane z uruchomieniem serwera WWW, obsługą protokołu HTTP i kodowaniem danych w HTTP / JSON / cokolwiek. Wyłączenie szyfrowania zwolni prawdopodobnie 100 KB pamięci RAM i zapewni kilka mikrosekund na KB przesłanych danych, co nie będzie miało widocznego wpływu na ogólną wydajność. Z drugiej strony będziesz musiał zwracać znacznie większą uwagę na bezpieczeństwo, ponieważ teraz uruchamiasz HTTP w intranecie. W rzeczywistości możliwe jest, że bardziej rygorystyczna konfiguracja zapory ogniowej spowolni bardziej niż wyłączenie szyfrowania przyspieszyło je, powodując gorszą wydajność postrzeganą przez użytkowników końcowych.
Będzie to jak umieszczenie spoilera na ciągniku: teoretycznie zyskujesz prawie nic, a praktycznie wiele niedogodności.
źródło