Sie befinden sich im Service: Zertifikate

Zeitstempeldienst der DFN-PKI

Zeitstempeldienst der DFN-PKI

Kurzinformation

Im Rahmen der DFN-PKI kann ein Zeitstempeldienst verwendet werden.

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

Der DFN Zeitstempeldienst kann im Rahmen der DFN-Satzung für nicht gewerbliche Zwecke verwendet werden.

Ein eigenes/gesondertes Zertifikat ist hierfür nicht nötig.

Der Zeitstempelserver ist über die URL http://zeitstempel.dfn.de zu erreichen - eine Abfrage diese URL im Browser ist nicht möglich!

Verwendet werden können Programme wie Adobe Acrobat oder openssl (ab Version 1.0, sie nachfolgend) aber auch Komponenten von Microsoft bzw. Java.

Zudem steht für Java und C# die Bibliotheken BouncyCastle zur Verfügung bzw. mit BouncyCastlePP ein Port von BouncyCastle für C++.


Anleitung

Laut Information des DFN soll openssl (>= 1.1.xx) funktionieren - ggf. muss aber openssl selber gebaut werden

openssl selber bauen
 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 übermittel
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/global-services-ca/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."

${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:

Zusatzinformation

Weitere Informationen:

zuletzt geändert am 29.01.2021

Wie hat Ihnen dieser Inhalt geholfen?