Chcę użyć opcji znacznika czasu -tsa
narzędzia java jarsigner. Usługa znacznika czasu, którą mam na myśli, wymaga uwierzytelnienia. W tym celu otrzymasz spersonalizowany, miękki token, aby zidentyfikować się na serwerze znacznika czasu.Słoik sygnatury z sygnaturą czasową i uwierzytelnieniem na serwerze znacznika czasu
Moje pytanie: czy to uwierzytelnianie jest obsługiwane przez narzędzie Jarsigner? Innymi słowy: czy jarsigner obsługuje RFC 3161 (Time-Stamp Protocol) i RFC 2246 (uwierzytelnianie)?
Istnieje opcja -tsacert
z jarsignera. Dokumentacja mówi:
Jeśli w wierszu poleceń pojawi się „-tsacert alias” podczas podpisywania pliku JAR następnie datownik jest generowany dla podpisu. Alias identyfikuje certyfikat klucza publicznego TSA w aktualnie używanym magazynie kluczy. Certyfikat wpisu jest sprawdzany pod kątem rozszerzenia dostępu do informacji o temacie, które zawiera adres URL określający lokalizację TSA.
To, czym się mylę, to sformułowanie "sygnatura czasowa jest generowana dla podpisu". Co to znaczy? Również sformułowanie "alias identyfikuje certyfikat klucza publicznego TSA" jest mylące: wydaje się, że jest używane do weryfikacji znacznika czasu (ponieważ jest to klucz publiczny), aby nie identyfikować requestera (ponieważ nie jest to klucz prywatny).
Ponadto: zaświadczenie, z którym chcę się podpisać, to , a nie miękki token, ale jest przechowywane na karcie inteligentnej. Nie można go wyeksportować do magazynu kluczy. Dlatego muszę użyć opcji -keystore NONE -storetype PKCS11
. Myślę, że z tego powodu nie można użyć opcji -tsacert alias
, ponieważ potrzebuje ona prawdziwego magazynu kluczy zawierającego miękki token.
Serwer znacznika czasu, którego chciałam użyć w czasie podnoszenia pytania, wymaga osobnego certyfikatu do uwierzytelnienia klienta na serwerze. Pytanie dotyczyło tego certyfikatu, a nie tego, które było używane do podpisywania pliku jar. – Claude