Dlaczego warto płacić za certyfikat SSL?
W przypadku większości zastosowań nie ma dobrego powodu, aby za nie płacić.
Podsumowanie wyjątków znajduje się na samym dole.
Cofnijmy się i wyjaśnijmy, co robią certyfikaty i w przybliżeniu jak.
To, co jest powszechnie nazywane „certyfikatem”, składa się z dwóch połączonych elementów:
- Zaświadczenie właściwego , który zawiera klucz publiczny i trochę identyfikację (taką jak nazwa domeny).
- Klucz prywatny , który umożliwia posiadaczowi (i tylko właściciel) do cyfrowego podpisywania wiadomości w taki sposób, że mogą one zostać zweryfikowane przy użyciu powyższego certyfikatu.
Jeśli chcesz uzyskać certyfikat yourdomain.com
, możesz:
- Utwórz klucz prywatny / publiczny i zachowaj część prywatną, no cóż, prywatną.
- Poproś zaufaną stronę trzecią („CrediCorp”) o utworzenie certyfikatu dla
yourdomain.com
swojego klucza publicznego.
- Udowodnij w jakiś sposób CrediCorp, który kontrolujesz
yourdomain.com
.
- Umieść klucz prywatny i uzyskany certyfikat na serwerze i skonfiguruj serwer WWW, aby ich używał.
Następnie, jeśli Alice odwiedzi yourdomain.com
, jej przeglądarka pobierze certyfikat z twojego serwera internetowego, wraz z wiadomością podpisaną przez twój klucz prywatny. Następnie jej przeglądarka sprawdza trzy rzeczy:
- Że podpisana wiadomość może zostać zweryfikowana za pomocą certyfikatu (dowód, że została podpisana odpowiednim kluczem prywatnym, który
yourdomain.com
powinien mieć tylko ).
- Domeną certyfikatu jest domena, którą przeglądarka próbuje odwiedzić (
yourdomain.com
).
- Że certyfikat pochodzi od CrediCorp.
Połączenie tych trzech rzeczy gwarantuje Alice, z którą faktycznie rozmawia yourdomain.com
, a nie jakimś oszustom ... Pod warunkiem, że Alice ufa CrediCorp .
(Istnieje również trochę tańca voodoo z krypto, aby zmienić tę autentyczność w poufność).
W jaki sposób Alice ufa CrediCorp?
To jest prawdziwy sedno tutaj. Krótko mówiąc, w pewnym momencie CrediCorp powiedział: „Hej, zrobimy certyfikaty”. Po włożeniu wielu wysiłków w przestrzeganie wielu zasad udało im się przekonać niektórych ludzi, że CrediCorp jest rzeczywiście godny zaufania i będą wydawać certyfikaty tylko poprawnie.
W szczególności udało im się przekonać twórców, powiedzmy, Firefox. W rezultacie CrediCorp znajduje się na liście A Firefoksa, a ich certyfikaty są domyślnie zaufane przez Firefox. Tak więc naprawdę, Alice ufa Firefoxowi, Firefox ufa CrediCorp, a CrediCorp ufa (po weryfikacji), gdy twierdzisz, że kontrolujesz yourdomain.com
. To prawie jak łańcuch .
Ale Firefox nie tylko ufa CrediCorp w wydawaniu certyfikatów yourdomain.com
, ale ufa certyfikatom CrediCorp dla dowolnej domeny. A Firefox także ufa ShabbyCorp dla dowolnej domeny.
Ma to konsekwencje. Jeśli komuś uda się przekonać ShabbyCorp, że kontroluje yourdomain.com
(ponieważ ShabbyCorp nie jest bardzo dokładny), może uzyskać certyfikat ShabbyCorp dla yourdomain.com
odpowiedniego klucza prywatnego. Za pomocą tego certyfikatu mogą podszyć się pod Twój serwer WWW. W końcu mają certyfikat (plus klucz) yourdomain.com
, któremu zaufało Firefox!
CrediCorp i ShabbyCorp to, co nazywa urzędy certyfikacji , CAS za krótki. W prawdziwym świecie ComodoSSL i Let's Encrypt są przykładami urzędów certyfikacji. Ale jest ich o wiele więcej; od tego momentu Firefox ufa 154 urzędom certyfikacji .
Whoa. Ale jak to odpowiada na moje pytanie?
Ehm, dochodzę do tego ...
To jest ta rzecz. Mechanika opisana powyżej dotyczy wszystkich certyfikatów. Jeśli masz poprawny, zaufany certyfikat dla swojej witryny, zadziała. Nie ma nic specjalnego w certyfikatach marki A w porównaniu do certyfikatów marki B; wszystkie podlegają tym samym wymogom urzędu certyfikacji i tej samej matematyce kryptograficznej.
I nawet jeśli bardziej lubisz CrediCorp - bo wiesz, brzmią one o wiele bardziej godne zaufania - korzystanie z nich naprawdę Ci nie pomoże. Jeśli atakujący może przekonać ShabbyCorp do nadania mu certyfikatu dla Twojej witryny, może on użyć tego certyfikatu do podszywania się pod Twoją witrynę, niezależnie od tego, skąd ją masz.
Dopóki Firefox ufa ShabbyCorp, odwiedzający nie zauważą różnicy. (Tak, odwiedzający mogą wyciągnąć certyfikat i przekopać się przez niego, zobaczyć, kto go wydał. Ale kto to robi?) Jeśli chodzi o fałszowanie certyfikatów, cały system jest tak słaby, jak najsłabszy z ponad 150 urzędów certyfikacji. Dlaczego tak, to jest przerażające i jest to prawdopodobnie największa krytyka tego całego programu. Mimo to utknęliśmy.
Chodzi o to, że jeśli nie ufasz urzędowi certyfikacji w zakresie wydawania „dobrych” certyfikatów, zdobycie certyfikatów w innym miejscu niewiele ci pomoże.
Gotcha, wszystko jest równie skazane. Brak ostrzeżeń?
Weeeelllll ...
Zacznijmy od zabicia punktu, który zrobiłem w ostatniej sekcji. Obecnie można zablokować domenę tylko wybranym przez siebie urzędom certyfikacji za pomocą DNS-CAA . Załóżmy, że ufasz Comodo i nie ufasz innym urzędom certyfikacji, możesz poprosić wszystkie urzędy certyfikacji inne niż Comodo o nie wydawanie certyfikatów dla twojej domeny. W teorii. (Ponieważ DNS-CAA nie jest sprawdzany przez przeglądarki, tylko przez wydawanie urzędów certyfikacji. Tak więc przejęty urząd certyfikacji może zignorować to zabezpieczenie).
Jeśli chcesz przejść przez ten problem, powstaje pytanie: czy Let's Encrypt faktycznie jest mniej godny zaufania? Czy mniej bezpieczny? Wiarygodność jest trudna, jak to oszacować? Mogę tylko powiedzieć, że moim zdaniem Let's Encrypt jest nie mniej wiarygodny niż inne CA. Jeśli chodzi o bezpieczeństwo ich sprawdzania poprawności, są one bardzo podobne do tego, co robią komercyjne urzędy certyfikacji (w przypadku certyfikatów DV). Zobacz także to pytanie .
Za to, co jest warte: sieć StackExchange, której częścią jest ta strona, obecnie używa certyfikatów Let's Encrypt. Większość ludzi nigdy tego nie zauważy, a jeśli tak, szczerze wątpię, czy to by dla nich wiele znaczyło.
Aby certyfikat miał znaczenie, wystawcy urzędu certyfikacji muszą zaufać dostawcy oprogramowania , w przeciwnym razie certyfikat jest bezużyteczny. Użyłem Firefoksa jako przykładu, ale tak naprawdę chcesz, aby CA zaufało przynajmniej aktualnym i nieco starszym wersjom Firefox, Chrome, Windows, Mac OS X, iOS i Android. I dziesiątki mniejszych graczy. Warto rozważyć CA (w tym ComodoSSL i Let's Encrypt), którym ufają wszystkie te podmioty.
Jeśli urząd certyfikacji źle się zachowa lub zostanie ujawniony jako niewiarygodny, zostanie usunięty z różnych magazynów zaufania wystarczająco szybko, aby zrujnować dzień właścicieli certyfikatów. Dwa znane mi przykłady to DigiNotar i StartCom / WoSign (sprawdź artykuły, dostarczają one ciekawych informacji na temat dynamiki zaufania!). Więc jeśli uważasz, że Let's Encrypt spieprzy się lub zostanie upuszczony z innego powodu, nieużywanie ich zapobiegnie wpadnięciu w ten konkretny wypadek.
Certyfikaty wykorzystują trochę magii kryptograficznej ; pytanie brzmi, który Crypto matematyczne magii ? Co jeśli to słaba magia? Jest to w rzeczywistości poważny problem, a urzędy certyfikacji wykazały, że również starają się ją ulepszyć. Na szczęście dostawcy przeglądarek poprawili luki, ustawiając tutaj minimum dla akceptacji certyfikatów. Na przykład certyfikaty używające RSA-1024 lub SHA-1 są teraz odrzucane przez większość przeglądarek, więc żaden certyfikat, który działa w praktyce, nie używa tych przestarzałych prymitywów kryptograficznych. Rezultatem jest to, że trudno jest jakiemukolwiek CA (Let's Encrypt wliczony w cenę) rozczarować się z tej strony.
Wcześniej mniej więcej powiedziałem, że wszystkie certyfikaty są sobie równe. Kłamałem, nie są. W szczególności do tej pory omawiałem „certyfikaty walidowane przez domenę (DV)”, z których korzysta ogromna większość stron internetowych. Zapewniają one pewność, że przeglądarka faktycznie komunikuje się z domeną wyświetlaną na pasku adresu URL. Istnieją również certyfikaty „Organization Validated (OV)” i „ Extended Validation (EV)”, które wymagają znacznie bardziej szczegółowych kontroli od urzędów certyfikacji. W szczególności powinieneś być w stanie uzyskać certyfikat EV dla somebank.com
/ SomeBank Inc., jeśli możesz udowodnić, że jesteś SomeBank, Inc.
Zdobycie certyfikatów EV jest znacznie bardziej kosztowne (ballpark: setki EUR / USD rocznie) i mogą zostać nagrodzone zielonym paskiem URL lub kłódką w przeglądarce, być może wyświetlającym „SomeBank, Inc.” także. W przeciwieństwie do certyfikatów DV, oferują również pewne pojęcie, do kogo strona internetowa może faktycznie należeć. Plusem jest to, że mogą wyglądać bardziej legalnie. Rozczarowanie polega na tym, że użytkownicy rzadko zwracają na nie uwagę, więc ich skuteczność jest ograniczona.
Osoba atakująca z sfałszowanym certyfikatem DV może nadal podszyć się pod witrynę, tylko bez dodatkowych wskazówek wizualnych, jakie może zaoferować certyfikat EV, a użytkownicy na ogół nie zauważają tego rozróżnienia. I odwrotnie, możliwe jest uzyskanie wprowadzającego w błąd certyfikatu EV, aby ułatwić phishing. W rezultacie zarówno Chrome , jak i Firefox będą rzucać swoje skinienia wzrokowe na certyfikaty EV, a niektórzy uważają, że odejdą całkowicie.
Jeśli jesteś bankiem, prawdopodobnie nadal potrzebujesz certyfikatu EV. W przeciwnym razie nie tak bardzo. Ale jeśli zrobić trzeba EV, Szyfrowanie niech nie jest dla ciebie, bo po prostu nie oferują certyfikaty EV.
Certyfikaty są ważne tylko przez ograniczony czas . Certyfikaty typowego komercyjnego urzędu certyfikacji zachowują ważność przez jeden rok, ale widziałem coś od trzech miesięcy do trzech lat. Certyfikaty Let's Encrypt są ważne przez 90 dni , co znajduje się na krótkim odcinku tego zakresu, więc będziesz musiał często je odnawiać. W przypadku użytkowników Let's Encrypt jest to zwykle zautomatyzowane, dzięki czemu certyfikaty są wymieniane co 60 dni.
Możliwość zautomatyzowania odnowienia za pomocą powszechnie dostępnego oprogramowania jest w rzeczywistości przyjemniejsza niż coroczne. O kurwa, mój certyfikat wygasł? Jaki jest mój login w urzędzie certyfikacji? Jak to znowu działa? rytuał, którym wydaje się, że większość małych witryn kończy się w komercyjnych urzędach certyfikacji.
Wcześniej nazwałam to przerażającym, że istnieje tak wiele urzędów certyfikacji, którym wszyscy musimy ufać. Posiadanie wielu urzędów certyfikacji jest również zaletą, ponieważ usunięcie jednego z naszych zaufanych sklepów ma ograniczony wpływ na użytkowników. W szczególności wydalenie jednego urzędu certyfikacji wpłynie tylko na certyfikaty wydane przez ten jeden urząd certyfikacji. Jeśli wszyscy ostatecznie skorzystają z jednego urzędu certyfikacji (czego niektórzy obawiają się, że może się zdarzyć z Let's Encrypt ), skoncentrujemy tam całe nasze zaufanie i stracimy zalety tej fragmentacji.
I wreszcie, są inne korzyści, które może zaoferować płatny urząd certyfikacji, takie jak wsparcie komercyjne lub gwarancja SSL za milion dolarów . Nie wierzę w oba te aspekty, ale są to rzeczy, których Let's Encrypt nie oferuje.
Boli mnie głowa ... Myślę, że miałem pytanie?
Używaj tego, z czym czujesz się komfortowo! W przypadku certyfikatów DV niewiele różni się w rzeczywistości między różnymi urzędami certyfikacji. Używam Let's Encrypt zarówno profesjonalnie, jak i prywatnie i jestem z tego zadowolony.
Są naprawdę tylko cztery potencjalne powody, dla których unikam Let's Encrypt:
- Jeśli potrzebujesz certyfikatów EV (lub OV).
- Jeśli nie możesz lub nie chcesz zautomatyzować odnawiania certyfikatu, a ważność certyfikatu na trzy miesiące jest dla Ciebie za krótka.
- Jeśli nie ufasz Let's Encrypt (ale pamiętaj o rozważeniu również innych środków, takich jak DNS-CAA, i prawdopodobnie powinieneś również umieścić na czarnej liście Let's Encrypt w przeglądarce).
- Jeśli uważasz, że Let's Encrypt zostanie z jakiegoś powodu wycofane lub usunięte z przeglądarek.
Jeśli żadna z nich Cię nie dotyczy, możesz nie płacić za swoje certyfikaty.