Co dzieje się z certyfikatami podpisującymi kod, gdy wygasa główny urząd certyfikacji?

9

Jak dla mnie jasne: jeśli sam certyfikat znaku wygaśnie, podpisany kod zostanie zweryfikowany / zaakceptowany na wypadek, gdyby został podpisany znacznikiem czasu. Jeśli nie, podpisany kod również wygasł.

Ale co się stanie, jeśli sam mój urząd certyfikacji wygasa (główny urząd certyfikacji wydający w ten sposób urzędy certyfikacji)?

  • Czy kod będzie nadal akceptowany, jeśli jest oznaczony znacznikiem czasu?
  • Czy wygasłe certyfikaty głównego i wystawiającego CA nadal muszą być obecne (np. W zaufanym głównym magazynie certyfikatów ca)? To moje założenie, nawet jeśli urząd certyfikacji może zostać zdegradowany, klient wykonujący podpisany musi nadal ufać urządowi certyfikacji? W przeciwnym razie łańcuch zaufania zostanie zerwany, prawda?
  • Czy brak listy CRL lub AIA spowoduje jakiekolwiek problemy?
dr_pepper285
źródło

Odpowiedzi:

12

Ale co się stanie, jeśli sam mój urząd certyfikacji wygasa (główny urząd certyfikacji wydający w ten sposób urzędy certyfikacji)?

Dosłownie nic. Wytłumaczmy to trochę bardziej szczegółowo.

Jeśli podpis nie jest oznaczony znacznikiem czasu, podpis jest ważny, o ile:

  • dane nie są modyfikowane
  • podpisanie certyfikatu jest ważne w czasie
  • żaden certyfikat w łańcuchu nie zostanie odwołany
  • certyfikat główny jest zaufany

Po wygaśnięciu, unieważnieniu lub unieważnieniu certyfikatu podpisu w taki czy inny sposób podpis uznaje się za nieważny. Prosty i prosty.

Celem znaczników czasu w podpisie cyfrowym jest zapewnienie większego zaufania do podpisanej treści. Certyfikaty do podpisywania są ważne przez krótki czas, a podstawowe ustawienia zaufania nie są odpowiednie do podpisywania długoterminowego (być może zarchiwizowanego). Zwykle (bez znaczników czasu) będziesz musiał odtworzyć podpis przy każdym odnawianiu certyfikatu podpisywania. To droga do nikąd.

Dodając znacznik czasu do podpisów cyfrowych, warunki zaufania są zmieniane na następującą listę:

  • dane nie są modyfikowane
  • czas podpisania certyfikatu * był * ważny w czasie podpisywania: czas podpisania mieści się w okresie ważności certyfikatu podpisującego
  • Żaden certyfikat nie został odwołany * przed * generowaniem podpisu
  • zarówno podpisywanie, jak i datownik certyfikaty łączą się z zaufanymi głównymi urzędami certyfikacji (niezależnie od ich ważności, po prostu muszą znajdować się w magazynie zaufania).

Co się tutaj zmieniło: podpis pozostaje ważny po wygaśnięciu ważności certyfikatu. Oznacza to, że cały łańcuch podpisywania i znaczników czasu może wygasnąć (wraz z certyfikatem głównym) i nie spowoduje to utraty zaufania. Certyfikaty w łańcuchu można odwołać. Jedyny wymóg: jeśli dowolny certyfikat zostanie odwołany, czas odwołania (uzyskany z listy CRL) musi być ustawiony na czas po utworzeniu podpisu (czas podpisania jest identyfikowany przez znacznik czasu). Poprzednie zdanie oznacza, że ​​musi istnieć podpisana lista CRL, aby udowodnić, że żaden certyfikat nie został odwołany w momencie podpisywania.

To jest powód, dla którego nowoczesne systemy Windows dostarczają dawno wygasłe certyfikaty root. Nadal są używane do sprawdzania poprawności starych podpisów, które są oznaczone datą.

Jakiś czas temu napisałem post na blogu, który wyjaśnia ten temat bardziej szczegółowo: podpisy cyfrowe i znaczniki czasu

Crypt32
źródło
Twój post na blogu to bardzo dobry artykuł na ten temat!
ThoriumBR
Znalazłem ten temat bardzo zagmatwany w IT Pro (i programistach) i próbowałem uporządkować rzeczy w poście na blogu.
Crypt32
Ale kwestia CRL nie jest dla mnie całkowicie jasna. Czy nadal potrzebuję (ostatniej) listy CRL wygasłych urzędów certyfikacji?
dr_pepper285
Tak, listy CRL są wymagane. Niepotrzebne na końcu, musi zostać opublikowane ( ThisUpdatepole) po czasie podpisania. Ta lista CRL może udowodnić, że żaden certyfikat w obu łańcuchach (podpisanie i sygnatura czasowa) nie został odwołany w czasie podpisywania.
Crypt32