Urząd znakujący czasem

Urząd znakujący czasem – usługa działająca w ramach infrastruktury klucza publicznego, potwierdza czas przedstawienia urzędowi dokumentów elektronicznych.

Opis edytuj

Urząd znakujący może wystawiać stemple czasowe potwierdzając tym samym istnienie konkretnych danych w konkretnym momencie czasowym. Ważne jest, że stemple czasowe są podpisane przez urząd znakujący czasem co zapewnia niezaprzeczalność oraz to, że istnieje możliwość weryfikacji certyfikatu urzędu znakującego czasem (uwierzytelnianie). Zapytanie o wystawienie stempla czasowego oraz odpowiedź serwera jest zdefiniowana w dokumencie RFC 3161 ↓.

Zgłoszenie edytuj

TimeStampReq ::= SEQUENCE  {
  version               INTEGER  { v1(1) },
  messageImprint        MessageImprint, 
   --a hash algorithm OID and the hash value of the data to be time-stamped
  reqPolicy             TSAPolicyId              OPTIONAL,
  nonce                 INTEGER                  OPTIONAL,
  certReq               BOOLEAN                  DEFAULT FALSE,
  extensions            [0] IMPLICIT Extensions  OPTIONAL  }
MessageImprint ::= SEQUENCE  {
       hashAlgorithm                AlgorithmIdentifier,
       hashedMessage                OCTET STRING  }

W zgłoszeniu znajduje się przede wszystkim skrót danych, które mają zostać podstemplowane.

Odpowiedź edytuj

Odpowiedź opakowana jest CMS (jeden z formatów podpisu elektronicznego), w podpisanych danych znajduje się struktura:

TSTInfo ::= SEQUENCE  {
  version                      INTEGER  { v1(1) },
  policy                       TSAPolicyId,
  messageImprint               MessageImprint,
    -- MUST have the same value as the similar field in TimeStampReq
  serialNumber                 INTEGER,
   -- Time-Stamping users MUST be ready to accommodate integers up to 160 bits.
  genTime                      GeneralizedTime,
  accuracy                     Accuracy                 OPTIONAL,
  ordering                     BOOLEAN             DEFAULT FALSE,
  nonce                        INTEGER                  OPTIONAL,
    -- MUST be present if the similar field was present in TimeStampReq.  In that case it MUST have the same value.
  tsa                          [0] GeneralName          OPTIONAL,
  extensions                   [1] IMPLICIT Extensions   OPTIONAL  }

gdzie: messageImprint to dane przysłane do podstemplowania, a genTime to czas podstemplowania.

Linki zewnętrzne edytuj