Sie befinden sich im Service: Public-Key-Zertifikate

Zeitstempeldienst der DFN-PKI

Zeitstempeldienst der DFN-PKI

Anleitung

Auf dieser Seite erfahren Sie, wie Sie den Zeitstempeldienst der DFN-PKI konfigurieren.

Der Zeitstempeldienst dient dazu, den Status quo einer Datei zu einem bestimmten Zeitpunkt durch eine vertrauenswürdige Instanz (z.B. DFN-PKI) zu bescheinigen.

Der Zeitstempeldienst der DFN-PKI kann im Rahmen der DFN-Satzung für nicht gewerbliche Zwecke verwendet werden. Ein eigenes bzw. gesondertes Zertifikat ist hierfür nicht nötig.

Der Zeitstempelserver ist über den folgenden Link erreichbar (eine Abfrage diese URL im Browser ist nicht möglich!):

http://zeitstempel.dfn.de

Der Zeitstempeldienst kann in Adobe Acrobat, openssl (ab Version 1.0) oder in Komponenten von Microsoft bzw. Java verwendet werden. Zudem steht für Java und C# die Bibliotheken BouncyCastle zur Verfügung bzw. mit BouncyCastlePP ein Port von BouncyCastle für C++.

Laut Information des DFN soll openssl (>= 1.1.xx) funktionieren. Um openssl selbst zu bauen, gehen Sie bitte wie folgt vor:

cd ~
git clone https://github.com/openssl/openssl.git

cd openssl
./Configure linux-x86_64
./config --prefix=${HOME}/opt/openssl --openssldir=${HOME}/opt/openssl
make
make test

export OPENSSL=${HOME}/opt/openssl
export C_INCLUDE_PATH=$OPENSSL/include
export LIBRARY_PATH=$OPENSSL/lib
export LD_LIBRARY_PATH=$LIBRARY_PATH:$LD_LIBRARY_PATH
export OPENSSL_PREFIX=${OPENSSL}

echo ${OPENSSL}
echo ${C_INCLUDE_PATH}
echo ${LD_LIBRARY_PATH}
echo ${OPENSSL_PREFIX}

${HOME}/opt/openssl/bin/openssl
OpenSSL> version
OpenSSL 1.1.1-pre5-dev  xx XXX xxxx
OpenSSL>
[[ -f ${HOME}/opt/openssl/bin/openssl ]] && (export MYOPENSSL="${HOME}/opt/openssl/bin/openssl") || (export MYOPENSSL="openssl")

Beispiel-Code erzeugen:

echo -e "#\!/usr/bin/env bash\n\n#© by ra@rwth-aachen.de\n\n echo 'hello dfn timestamp world'\n\n#########\n# EOF" > dfn-timestamp-test.sh

chmod 750 dfn-timestamp-test.sh

./dfn-timestamp-test.sh
hello dfn timestamp world

 Erzeugen des "timestamp request":

${MYOPENSSL} ts -query -data dfn-timestamp-test.sh -cert -sha256 -no_nonce -out dfn-timestamp-test.tsq

Den "timestamp request" an der Zeitstempel-Server übermitteln:

curl -s -S -k -H "Content-Type: application/timestamp-query" --data-binary @dfn-timestamp-test.tsq "http://zeitstempel.dfn.de" -o dfn-timestamp-test.tsr

Verifikation des Zeitstempels:

wget https://pki.pca.dfn.de/dfn-ca-global-g2/pub/cacert/chain.txt

${MYOPENSSL} ts -verify -in dfn-timestamp-test.tsr -data dfn-timestamp-test.sh -CAfile chain.txt

${MYOPENSSL} ts -verify -queryfile dfn-timestamp-test.tsq -in dfn-timestamp-test.tsr -CAfile chain.txt

Im Falle eines OpenSSL-Fehlers "... time stamp routines: TS_CHECK_SIGNING_CERTS ..."

wget https://info.pca.dfn.de/doc/timestampverifier-latest.tar.gz
tar zxvf timestampverifier-latest.tar.gz
cd timestampverifier-1.1
sed -i 's/request=req.tsq/request=$1/' verify.sh
sed -i 's/java -cp/echo -e "\\n#############################################\\n\\n"\njava -cp/' verify.sh
./verify.sh ../dfn-timestamp-test.tsq

Hier sollte dann "Data in response matches data in request." erscheinen.

${MYOPENSSL} ts -reply -in resp.tsr -text

Verifizieren der "timestamp response":

openssl ts -reply -in dfn-timestamp-test.tsr -text

Status info:
Status: Granted.
Status description: Operation Okay
Failure info: unspecified
TST info:
Version: 1
Policy OID: 1.3.6.1.4.1.22177.300.22.1
Hash Algorithm: sha256
Message data:
    0000 - 79 ae 3e 21 6f 52 92 ea-f0 00 78 73 fe 95 06 2b   y.>!oR....xs...+
    0010 - ce 0c 26 29 89 8f e2 62-dd 9c 06 a5 3a 1f b9 dc   ..&)...b....:...
Serial number: 0x840AA89C8C03C5373E2680B1A2F61CBE132EBBF1
Time stamp: Nov 30 08:50:24 2016 GMT
Accuracy: unspecified
Ordering: no
Nonce: unspecified
TSA: unspecified
Extensions:

Weitere Informationen:

zuletzt geändert am 06.02.2026

Wie hat Ihnen dieser Inhalt geholfen?

Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz