Mając na uwadze, że certyfikat został wydany 10. 10. 2016 r., Tj. Po 1. 1. 2016 r., Czy ma to jakoś wpływ na zachowanie podpisu? Pytam o to w imieniu czytania o wycofaniu SHA-1, np .:
Nie zrobi tego.
Czy powinienem także znacznik czasu? Do czego to służy? Czy są jakieś wady znacznika czasu?
Sygnatury czasowe są dowodem strony trzeciej, że podpis został faktycznie wykonany w określonym czasie i nie był jedynie wynikiem cofnięcia zegara komputera.
Zatem podstawowym zastosowaniem znaczników czasu jest udowodnienie, że podpis został złożony przed wygaśnięciem certyfikatu - lub, co ważniejsze, przed jego unieważnieniem.
Na przykład, jeśli ktoś wycieknie z prywatnego klucza podpisu i unieważni swój certyfikat, zwykle oznacza to, że wszystkie podpisy wykonane za jego pomocą (przeszłość i przyszłość) staną się nieważne. Jednak sygnatury oznaczone znacznikiem czasu mogą pozostać ważne, ponieważ wiadomo, że zostały złożone przed odwołaniem.
Wycofanie SHA-1 w Windows Authenticode wydaje się również używać znaczników czasu, dzięki czemu stare programy podpisane przy użyciu SHA-1 nadal będą wyświetlać się jako poprawnie podpisane, jednocześnie uniemożliwiając każdemu po odcięciu się od nowych podpisów „randkowania wstecznego”.
Ponieważ istnieje wiele bezpłatnych i publicznych organów ds. Oznaczania czasu, nie ma powodu, aby tego nie robić.
Przypuśćmy, że porzucę obsługę systemów XP i Vista, czy podpis SHA-2 będzie działał poprawnie w systemie Windows 7?
Nastąpiło spustoszenie w przypadku krzyżowego podpisywania SHA-2 (w szczególności SHA-256) i SHA-1. Przypuśćmy, że jak już powiedziałem, nie będę już obsługiwał WinXP i Visty, czy potrzebuję tego?
Po pierwsze, należy zauważyć, że SHA-1 / SHA-2 jest zaangażowany w kilku miejscach - jest używany osobno, gdy wystawiający certyfikat CA podpisuje twój certyfikat, i kiedy podpisujesz rzeczywisty plik wykonywalny (a nawet gdy organ znaczników czasu podpisuje Twój podpis). Innymi słowy, istnieje łańcuch podpisów, a każdy z nich ma swój własny skrót.
Możliwe jest również, że podpisy na certyfikatach są sprawdzane przez inny kod niż podpisy na plikach wykonywalnych, a jeden może obsługiwać SHA-2, podczas gdy drugi nadal tego nie robi.
Tak więc rzeczywista sytuacja jest taka, że system Windows XP SP3 w pełni obsługuje certyfikaty podpisane przy użyciu SHA-2, po prostu nie obsługuje plików wykonywalnych podpisanych przy użyciu SHA-2. Jest to wspomniane w KB 968730 , także w tym poście TechNet .
Jednak w Authenticode możliwe jest dodawanie wielu podpisów do tego samego pliku wykonywalnego (inaczej podpisywanie podwójne lub podpisywanie zagnieżdżone), dzięki czemu możesz mieć podpis oparty na SHA-1 dla starszych systemów i podpis oparty na SHA-2 dla nowszych.
Za pomocą osslsigncode
możesz najpierw zrobić podpis SHA-1 za pomocą -h sha1
, a następnie uruchomić go ponownie za pomocą, -nest -h sha256
aby dodać podpis SHA-2. To samo działa z signtool sign /as /fd sha256 /td sha256
(dołącz podpis). Na przykład, nocne kompilacje PuTTY są podwójnie podpisane i działają na wszystkich wersjach systemu Windows, pomimo użycia certyfikatu SHA-256.
(Nie liczę tutaj XP SP2 i starszych, ponieważ, cóż.)
signtool sign /fd SHA256 /a /tr http://time.certum.pl "Test.exe"
?