Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Udało mu się zmylić Symanteca lewym kluczem prywatnym i unieważnili prawidłowy certyfikat SSL

21 lipca 2017, 13:05 | W biegu | komentarzy 7

Co się dzieje jeśli ktoś wykradnie Ci klucz prywatny (związany z certyfikatem SSL) i np. go opublikuje? Możesz zgłosić taki wyciek i CA powinien unieważnić taki certyfikat.

Ale jak CA sprawdzają czy klucz prywatny, który wyciekł związany jest rzeczywiście z kluczem publicznym w certyfikacie SSL? Różnie z tym bywa, a ktoś ostatnio postanowił sprawdzić temat w praktyce.

W szczególności jeśli mamy takie sprawdzenie:

A naive check whether a private key belongs to a certificate could be done by extracting the public key parts of both the certificate and the private key for comparison.

Czyli porównanie tylko informacji dotyczących kluczy publicznych (z certyfikatu i klucza prywatnego) – umożliwia łatwe wyprodukowanie takiego klucza prywatnego, który będzie miał wzięty element dotyczący klucza publicznego – z certyfikatu – a reszta będzie zupełnie dowolna.

Jeśli akapit powyżej wygląda na trochę skomplikowany, to jeszcze raz pewna ciekawostka: klucz prywatny zawiera wszystkie informacje z klucza publicznego (+ jeszcze coś więcej). Tak np. możecie wytworzyć klucz publiczny z prywatnego:

openssl rsa -in server.key -pubout > mykey1.pub

A tak zobaczyć różne komponenty klucza prywatnego z Waszego serwera obsługującego https:

openssl rsa -noout -text -in server.key

Po dalsze szczegóły odsyłam do skryptu generującego fejkowy klucz prywatny na dowolnego certyfikatu.

Procedura wyglądała więc tak:

  • Zamówienie certyfikatu SSL dla swojej domeny
  • Wygenerowanie fejkowego klucza prywatnego
  • Wrzucenie klucza na pastebin
  • Wysłanie informacji do CA – „wyciekł klucz prywatny do tego certyfikatu” – unieważnijcie go ASAP

Wynik? Wg autora postu, takie Comodo nie udało się oszukać, ale RapidSSL (będący własnością Symanteca) – już tak – po prostu unieważnili certyfikat.

–ms

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. zz

    a może by tak sprawdzać i porównywać sha z modulus ?

    Odpowiedz
    • Na końcu cytowanego artka jest +- przepis. O dziwo masa gotowych tutoriali pokazuje to źle :/

      Odpowiedz
  2. Tomek

    hey chyba na rozwal.to nie działa większość zadanek

    Odpowiedz
  3. nicki

    Nie wiem co autor ma w głowie – nie komentuję.

    Skoro został zgłoszony wyciek klucza o pewnych cechach i został wysłany do CA komunikat o unieważnienie tego klucza, to nikt nie będzie sprawdzał, czy to ten klucz, czy nie ten. Blokują i koniec. Dopiero po blokadzie można na spokojnie sprawę wyjaśnić.
    Spróbuj unieważnić nie swój klucz tylko innej organizacji. Jak się uda, to wtedy można zacząć się martwić.
    To tak jakbym miał podejrzenie, że ktoś skradł moją kartę bankomatową. Zgłaszam ASAP, i ją blokują na telefon. Dopiero potem zgłaszam to oficjalnie albo wycofuję, jak się karta odnajdzie.

    Odpowiedz
    • No na tej zasadzie koleś pisał że mógłby równie dobrze zablokować cert dla symantec.com :P

      Odpowiedz
    • @nicki – ja tam wolę świat, w którym ktoś najpierw sprawdza co blokuje zanim to zrobi. Analogia do czytania umów przed podpisaniem czy kliknięciem w coś w e-mailu lub na podstawionej stronie nie będzie tutaj przypadkowa.

      Odpowiedz

Odpowiedz