Mam problem ze zrozumieniem, dlaczego musimy kupować certyfikaty SSL, skoro możemy je generować lokalnie za pomocą openSSL. Jaka jest różnica między zakupionym certyfikatem a certyfikatem testowym generowanym lokalnie? Czy to tylko duży przekręt?
Mam problem ze zrozumieniem, dlaczego musimy kupować certyfikaty SSL, skoro możemy je generować lokalnie za pomocą openSSL. Jaka jest różnica między zakupionym certyfikatem a certyfikatem testowym generowanym lokalnie? Czy to tylko duży przekręt?
Odpowiedzi:
Jedno słowo - zaufanie. Certyfikat SSL od dostawcy, któremu ufa Twoja przeglądarka, oznacza, że przynajmniej dokonał podstawowej weryfikacji, aby stwierdzić, że jesteś tym, za kogo się podajesz.
W przeciwnym razie mógłbym tworzyć własne certyfikaty dla google.com lub yourbank.com i udawać, że nimi są.
Płatne certyfikaty nie zapewniają żadnego dodatkowego poziomu szyfrowania w stosunku do podpisu własnego (zwykle). Ale samopodpisany certyfikat spowoduje błąd przeglądarki.
Tak, części SSL to oszustwo (certyfikat Verisign kontra Geotrust, gdzie Verisign jest nawet 100 razy droższy), ale nie wszystkie.
Jeśli to wszystko jest wewnętrzne, nie ma potrzeby posiadania płatnego certyfikatu, ponieważ możesz zastosować własne metody zaufania (np. Nic nie rób, a może po prostu sprawdzanie odcisków palców).
Cały sens certyfikatu SSL polega na tym, że przeglądarka ma uzasadnione zaufanie do klucza publicznego serwera dla transakcji HTTPS.
Najpierw zbadajmy, co by się stało, gdybyśmy nie korzystali z certyfikatów. Zamiast tego serwer wysyłałby klucz publiczny w postaci zwykłego tekstu, a przeglądarka inicjowałaby zaszyfrowaną komunikację przy jego użyciu (pierwszą rzeczą, jaką zrobiłby, to szyfrowanie własnego klucza publicznego i bezpieczne wysyłanie go dalej). Co jeśli ja i napastnik zaklinuję się na środku? Mógłbym na bieżąco zastąpić twój klucz publiczny moim, mieć zaszyfrowane połączenie z przeglądarką, odszyfrować wszystkie otrzymywane przeze mnie rzeczy, zaszyfrować go za pomocą klucza publicznego i wysłać go (i odwrotnie w przypadku ruchu typu odpowiedzi). Żadna ze stron nie zauważy różnicy, ponieważ nikt wcześniej nie znał kluczy publicznych.
OK, więc ustaliliśmy, że potrzebujemy sposobu, aby przeglądarka zaufała mojemu kluczowi publicznemu. Jednym ze sposobów na to byłoby przechowywanie wszystkich zarejestrowanych kluczy publicznych w przeglądarce. Oczywiście wymagałoby to aktualizacji za każdym razem, gdy ktoś rejestrował klucz publiczny, a to prowadziłoby do wzdęć. Można również przechowywać klucze publiczne w rękach serwerów DNS 1 , ale serwery DNS mogą być również sfałszowane, a DNS nie jest bezpiecznym protokołem.
Tak więc jedyną opcją jest „połączenie” zaufania za pomocą mechanizmu podpisywania. Przeglądarka przechowuje szczegółowe informacje o kilku urzędach certyfikacji, a Twój certyfikat zostanie wysłany wraz z łańcuchem innych certyfikatów, z których każdy podpisuje następny i przechodzi do głównego / zaufanego / wbudowanego urzędu certyfikacji. Zadaniem urzędu certyfikacji jest upewnienie się, że domena należy do Ciebie przed podpisaniem certyfikatu.
Ponieważ bycie urzędem certyfikacji jest biznesem, pobierają za to opłaty. Niektóre bardziej niż inne.
Jeśli utworzyłeś własny certyfikat, otrzymasz błąd podobny do:
Nie ma wartości dla niepodpisanego certyfikatu. To jak zabranie ołówka i broszury, narysowanie paszportu, który twierdzi, że jesteś Barackiem Obamą. Nikt mu nie zaufa.
1. W końcu twoja pozycja DNS jest tworzona podczas rejestracji domeny. Ciekawym pomysłem byłoby użycie bardziej niezawodnego protokołu, który pozwala jednocześnie rejestrować klucze publiczne.
Odpowiedź na twoje pytanie zależy od odbiorców: ponieważ cały system certyfikatów opiera się na „zaufaniu”, użytkownicy muszą mieć możliwość udowodnienia swoich certyfikatów lub zaufania stronie trzeciej, która przeprowadziła te kontrole i wykazała sukces poprzez podpisanie twój certyfikat. Użyty przeze mnie termin „potwierdzenie certyfikatów” jest nieco niedokładny: długa wersja powinna brzmieć: „aby udowodnić, że jesteś właścicielem certyfikatu i możesz go używać”.
Jeśli wszyscy użytkownicy znają Cię osobiście i mają techniczną możliwość udowodnienia, że certyfikat został wydany przez Ciebie, nie ma technicznej potrzeby korzystania z certyfikatu od „certyfikowanego” dostawcy. W takim przypadku samopodpisany certyfikat może być nawet lepszy niż jeden z nich.
Ale w większości przypadków użytkownicy nie mogą wykonać tego procesu samodzielnie. Tutaj ci dostawcy SSL wchodzą na rynek. Oferują usługę wykonania tych kontroli i wyrażają wynik kontroli poprzez podpisanie certyfikatu. Należy jednak pamiętać o jednym ważnym fakcie: podpisując certyfikat dostawca SSL wyraża, że sprawdził tożsamość wystawcy certyfikatu zgodnie z własną polityką podpisywania. Użytkownik musi więc zdecydować, czy ta polityka jest wystarczająco precyzyjna i czy może zaufać dostawcy.
Najważniejsze jest to, że jeśli certyfikat jest generowany samodzielnie, zwykli użytkownicy nie mają możliwości zweryfikowania jego prawdziwości. W przypadku zakupionego certyfikatu zakładają oni przynajmniej zweryfikowanie poprawności wydruków w certyfikacie. Pomysł: jeśli umieścisz swój telefon i adres w certyfikacie, urząd certyfikacji przypuszczalnie go zweryfikuje, ale rzadko to robią.
Dodatkowo, certyfikat zakupu jest identyfikowalny, co oznacza, że użytkownik może zawsze śledzić, skąd pochodzi certyfikat, podczas gdy certyfikat z podpisem własnym jest tylko losową tożsamością.
W wielu systemach „podpisywanie kodu” było wymagane od autoryzowanego urzędu certyfikacji w przeszłości, co jest uzależnione od zasad, ale ponieważ samopodpisane certyfikaty są tak liczne, nie jest już teraz w 100% egzekwowane.
Nie ma różnicy technicznej (twoje własne nie są mniej bezpieczne), tylko organizacja: certyfikat Twojego urzędu certyfikacji nie jest częścią standardowej instalacji przeglądarki. To sprawia, że większość osób nie jest w stanie połączyć się z twoim certyfikatem. Ale kupowanie certyfikatu dla sieci wewnętrznej nie miałoby sensu.
Wszystko sprowadza się do zaufania. „Certyfikowany” dostawca SSL jest podobno renomowany (choć można nim manipulować) w porównaniu z samopodpisanym certyfikatem z samego serwera.
Jeśli Twoja organizacja ma własne podpisywanie certyfikatów, jest to całkowicie akceptowalne i nie powinno powodować żadnych ostrzeżeń dla użytkowników (pod warunkiem, że używają pęku kluczy cert jako zaufanego źródła), ale nadal będzie generować ostrzeżenie, jeśli spróbujesz użyć go zewnętrznie.
Podsumowując: do użytku wewnętrznego jest w porządku, jeśli dostarczasz go zewnętrznie płatnemu klientowi, brak ostrzeżeń jest spokojny. Czy poczujesz się bezpieczniej, gdy twoje transakcje finansowe odbywają się przez akredytowane źródło, czy może jakiś facet stojący na ulicy, której tak naprawdę nie znasz?
Ostatnio LetsEncrypt ogłosił dostępność swoich narzędzi wiersza poleceń do generowania ważnych certyfikatów.
Brak e-maili sprawdzających poprawność, bez skomplikowanej edycji konfiguracji, żadnych wygasłych certyfikatów niszczących witrynę. I oczywiście, ponieważ Let's Encrypt zapewnia certyfikaty za darmo, nie trzeba organizować płatności.
Dla tych, którzy zastanawiają się, czy te certyfikaty są ważne w głównych przeglądarkach, odpowiedź brzmi: tak:
W dniu 19 października 2015 r. Certyfikaty pośrednie zostały podpisane krzyżowo przez IdenTrust, co powoduje, że wszystkie certyfikaty wydawane przez Let's Encrypt mają zaufanie wszystkich głównych przeglądarek. [20]
..... 8 marca 2016 r. Let's Encrypt wydało swój milionowy certyfikat po siedmiu miesiącach istnienia. [39]
12 kwietnia 2016 r. Let's Encrypt opuścił Beta.
Link do administratora systemu i programistów: https://letsencrypt.org/getting-started/
W dobie technologii blockchain i eliminacji zewnętrznych systemów zaufania nadszedł czas, aby wydawanie drogich certyfikatów przez kilka wybranych organów zaczęło być kwestionowane.
Chociaż Letsencrypt nie ma nic wspólnego z technologią blockchain, jest to początek we właściwym kierunku. Mamy nadzieję, że konieczność płacenia wysokiej opłaty co roku drogiemu urzędowi certyfikacji kończy się logicznie.
Mówiąc najprościej, samopodpisany certyfikat SSL nic nie znaczy. Nie ma żadnej wartości dla świata zewnętrznego. To tak, jakby powiedzieć „jestem właścicielem Hiszpanii”. Możesz szczerze myśleć, że tak, ale nikt nie rozpozna twojego roszczenia.
Podobną analogią byłoby wymyślenie czegoś, a następnie twierdzenie, że posiadasz prawa do wynalazku, ale jeśli nie zarejestrujesz patentu w urzędzie, trudno będzie ci na to uwierzyć, prawda?
Chodzi o to, że certyfikat jest podpisany przez organ, któremu ufają ludzie. Jeśli jakaś strona internetowa ma ważny certyfikat SSL, oznacza to, że właściciel zadał sobie trud zarejestrowania swojej witryny, płacenia za certyfikat SSL i uzyskania oficjalnego certyfikatu od jakiegoś prawdziwego urzędu certyfikacji, więc prawdopodobnie nie jest to tania strona phishingowa. Z drugiej strony, jeśli ufasz samopodpisanym certyfikatom, wtedy wspomniana witryna phishingowa może po prostu wygenerować własny sfałszowany certyfikat (który chętnie zaakceptujesz) i voila.
Oczywiście, jeśli jest to sieć wewnętrzna w prywatnym intranecie, prawdopodobnie już sobie ufasz, więc w tym przypadku autorytatywny certyfikat tak naprawdę nic nie dodaje, więc możesz bezpiecznie zignorować jasne czerwone światła, które Twoja przeglądarka rzuci na Ciebie . To samo dotyczy małych witryn internetowych, w których nadal chcesz szyfrować ruch klient-serwer, ale twój model zagrożenia nie gwarantuje silnego uwierzytelnienia, w którym to przypadku możesz uzyskać certyfikat z podpisem własnym i zaakceptować (nieistotny dla twojego modelu zagrożenia) ryzyko MITM.
Co jest prawdopodobnie satysfakcjonujące, biorąc pod uwagę, jak drogie mogą być zaufane certyfikaty SSL.
Innymi słowy, samopodpisany certyfikat oznacza powiedzenie „Poświadczam, że jestem tym, kim jestem - zaufaj mi !”.
Aby było to krótkie i proste ... i trochę obalić to, co zostało powiedziane ...
To nie jest problem z szyfrowaniem, przy użyciu odpowiednich narzędzi możesz wygenerować certyfikat lokalnie z wybranym typem szyfrowania ... i uzyskać ważny certyfikat.
Główną zaletą, którą masz przy zakupie certyfikatu od jednostki certyfikującej jest to, że w okresie ważności certyfikatu posiadają na swoich serwerach mechanizm sprawdzania wszystkiego, co podpisałeś za pomocą certyfikatu online ...
Komputery nie muszą być podłączone, aby produkty cyfrowe mogły zostać zweryfikowane i zatwierdzone przy użyciu certyfikatu ... należy przekierować sprawdzanie poprawności do jednostki certyfikującej.
Przepraszam, że tak późno włączyłem się w tę dyskusję - pomyślałem, że warto zauważyć, że używając openssl można skonfigurować prywatny urząd certyfikacji z własnym certyfikatem głównym, a następnie utworzyć certyfikaty serwera podpisane przez ten urząd certyfikacji. Pod warunkiem, że certyfikat główny urzędu certyfikacji zostanie zaimportowany do przeglądarki, a przeglądarka otrzyma polecenie jego zaakceptowania, certyfikat serwera zostanie zaakceptowany bez komentarza. (Oczywiście jest to realna opcja, jeśli społeczność użytkowników jest niewielka, a wszyscy użytkownicy znają się osobiście.)