Difference between revisions of "Timestamp"

From Ilianko
 
(23 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
Данни, които '''идентифицират и удостоверяват''', кога (година, ден,час, секунда ...) е възникнало дадено събитие.
 
Данни, които '''идентифицират и удостоверяват''', кога (година, ден,час, секунда ...) е възникнало дадено събитие.
 
*пощенско клеймо
 
*пощенско клеймо
*електронно удостоверение на време
+
*[[електронно удостоверение на време]]
  
  
'''Електронно удостоверявание на време'''
 
[http://www.vesselin.org/papers/xhtml/protect_free_content_distribution.html#theme-1]Удостоверяването на време е услуга, която се предоставя в частна или обществена полза от съответния за това доставчик. Същността й се състои в издаване на електронен подпис от страна на доставчика върху изпратен му от заявителя хеш, при което в електронно подписания блок информация, който се връща на заявителя, освен хеша се указва и точното време на извършване на подписването. Върнатият към заявителя електронно подписан блок, съдържащ служебна информация, хеша на заявителя и точното време на електронното подписване, се нарича удостоверение за време. Доставчикът на услугата още се нарича "удостоверител на време" или "издател на удостоверение за време". За да може да предоставя услугата, той следва да разполага с универсален източник на време, репериран и отчитащ UTC.
 
  
В детайли услугата функционира по следния начин. Заявителят изчислява хеш на някакво съдържание, с използването на стандартизирана хеш функция (към момента това е SHA-1). След това влага изчисления хеш в специално форматиран блок информация и го изпраща към системата на издателя на удостоверения за време. Изпратеният блок се нарича заявка за издаване на удостоверение за време. Издателят проверява заявката за коректност (най-вече синтактична), прибавя към нея точното време в момента на подписването и допълнителни полета с информация, извършва електронен подпис върху така форматирания блок и го връща на заявителя. Полученото от заявителя е удостоверението за време.
 
  
За какво служи издаденото удостоверение за време и каква документна стойност има то? Удостоверението за време служи само и единствено като свидетелство, че към момента от време, отбелязан в него, на заявителя е бил известен хеш с някаква стойност, описана в удостоверението. Самият удостоверител на време по право не е виждал съдържанието, от което е изчислен хеша. Предполага се, че той е изчислен от заявителя, но ако следва да бъдем детайлни, би следвало да споменем, че това не е задължително, защото е възможно друго лице да е съобщило хеша на заявителя и последния да го е вложил в заявката изпратена до удостоверителя. Възможно е дори заявителя да е измислил някакво N-битово число, което да съответства като разред на резултата от използването на някоя от стандартните хеш функции и да го е заявил, кото значи, че дори не е нужно на числото, представляващо хеша, да съответства някакво съдържание. Последното обаче не носи никаква практическа стойност.
+
==Удостоверители за време==
  
Казаното по-горе все още не обяснява в детайли точно и ясно документната стойност на удостоверението за време, затова е нужно да бъде обяснена чисто практическата полза от него. Да си представим, че някой трябва да докаже пред съд или друго физическо или юридическо лице, че някакъв блок информация е съществувал преди някаква дата, час, минути и секунди. За целта той следва да е изчислил хеша на това съдържание и да е издал удостоверение за време, преди датата, часа, минутите и секундите, за които ще се доказва давността. Ролята на удостоверителят на време в цялата схема е като независима страна да даде гаранции, че наистина на заявителя е бил известен въпросния хеш преди някаква дата, час, минути и секунди. Тези гаранции той дава чрез електронния си подпис, извършен върху заявката, в която се добавя и точното време на подписване. За доказване на давността се изисква проверка на валидността на удостоверението за време, която е на два етапа. В първия етап се проверява валидността на електронния подпис на удостоверителя (издателя) върху съдържанието на удостоверението, като за целта се изисква копие от съответния удостоверителски (издателски) сертификат и лиспа на данни, че частния ключ към него е бил разкрит (проверява се чрез публикуван CRL списък). Ако при първия етап е потвърдена валидността на удостоверението, се пристъпва към втория етап. Вторият етап изисква да е достъпно копие на съдържанието, за което хеша е изчислен и което е обект на доказване като давност. След това заинтересованото от уставяване на давността лице или организация, изчислява хеша и го сравнява с този публикуван в удостоверението. Ако изчисления и публикувания хешове са равни по стойност, то се приема, че преди някаква дата, час, минути и секунди, съдържанието е съществувало. Това приемане е ключа към документната стойност на удостоверението за време.
+
За да има юредическа стойност удостоверението за време, то трябва да бъде издадено от [http://ec.europa.eu/information_society/policy/esignature/eu_legislation/trusted_lists/index_en.htm сертифициран удостоворител в границите на европейски съюз]. За България е серитифицирана [http://www.crc.bg КРС], която от своя страна е [http://crc.bg:8080/dpls/apex/f?p=923:310:3952311760191391::NO::: сертифицирала удостоверители], като [http://www.b-trust.org Борика-Банксервиз АД (B-trust)], [http://www.infonotary.com Инфоарти АД] и други.
  
Това, че някой е заявил хеш на съдържание за влагане в удостоверение за време, все още не доказва неговото авторство върху съдържанието. На практика удостоверението за време не е документ за авторство или собственост върху съдържанието, а и няма целта да направи това. Когато удостоверенията за време се използват за установяване на авторство, те удостоверяват не самото съдържание, а стойността на електронния подпис върху него. Идеята е следната. Заявителят извършва електронен подпис върху съдържанието (все едно дали електронният подпис ще е вложен или отделен от съдържанието). След това изчислява хеша на съдържанието с електронния подпис и именно него подлага на удостоверяване по време. В този случай удостоверяването за време указва, че преди някаква дата, час, минути, секунди е съществувал електронен подпис върху съдържанието. Ако никой не успее да представи електронен подпис върху съдържанието с по-задна дата и няма други документи за авторство, то заявителя следва да се счита за автор на съдържанието.
+
[http://www.b-trust.org/?p=timestamp В момента единствено B-trust предлага безплатно издаване на удостоверение за време.]
  
Подобен механизъм на определяне на авторство ползва изключително много творците на свободно съдържание, чиито творби са обект на некоректно използване от страна на различни търговски организации, в разрез с лиценза за разпространение и използване на съдържанието. Чрез удостоверение за време те могат да доказват авторството си върху свободно разпространяемо съдържание (например "Снимка: Интернет"). Авторите следва възможно най-бързо след създаването на произведението си, да го подпишат електронно и след това да издадат удостоверение за време за извършения електронен подпис. Всеки автор следва да пази оригиналното съдържание, електронния подпис, обект на удостоверението за време, и издаденото удостоверение. Само чрез тези три елемента на процеса по удостоверяване на съдържанието, може да бъде заявявано авторство на база на давност.
 
  
 +
==Инстaлиране на TS клиент==
  
is a sequence of characters or encoded information identifying when a certain event occurred, usually giving date and time of day, sometimes accurate to a small fraction of a second. The term derives from rubber stamps used in offices to stamp the current date, and sometimes time, in ink on paper documents, to record when the document was received. A common example of this type of timestamp is a postmark on a letter. However, in modern times usage of the term has expanded to refer to digital date and time information attached to digital data. For example, computer files contain timestamps that tell when the file was last modified, and digital cameras add timestamps to the pictures they take, recording the date and time the picture was taken.
+
За издаване на timestamp ни е нужна заявка за издаване. Заявката е в определeн формат според [http://www.ietf.org/rfc/rfc3161.txt препоръка RFC3161].
Contents
 
  
    1 Digital timestamps
+
За генериране на заявката може да се използва [http://www.opentsa.org/ openTSA], инструмент включен в [http://www.openssl.org/ OpenSSL] след версия 0.99. 
    2 Examples
 
    3 Standardization
 
    4 Other meanings
 
    5 See also
 
    6 Notes
 
  
Digital timestamps
+
За проверка на текущата версия на OpenSSL използвайте:
 +
openssl version
  
A timestamp is the time at which an event is recorded by a computer, not the time of the event itself. In many cases, the difference may be inconsequential: the time at which an event is recorded by a timestamp (e.g., entered into a log file) should be close to the time of the event.
+
Ако версията е по-малка от 0.99 изтеглете и компилирайте по-нова версия:
 +
sudo su
 +
cd ~/
 +
mkdir ts
 +
cd ts
 +
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
 +
tar -zxf openssl-1.0.1c.tar.gz
 +
cd openssl-1.0.1c
 +
./config --prefix=/home/student/ts
 +
make
 +
make install
  
The sequential numbering of events is sometimes called timestamping[citation needed].
+
==Създаване на директория за съхранение на сертификати==
  
This data is usually presented in a consistent format, allowing for easy comparison of two different records and tracking progress over time; the practice of recording timestamps in a consistent manner along with the actual data is called timestamping.
+
Уместно е да се създаде директория за съхранение на сертификатите на организаците, на които ще се доверяваме.
 +
sudo su
 +
cd ~/
 +
mkdir ts/CA
 +
 
 +
Изтеглянe на сертификата, с който се удостоверяват подписаните от B-trust документите. Този сертификат ще се ползва впоследствие при удостоверяване на удостоверението за време.
 +
 +
cd ts/CA
 +
wget http://ilianko.com/RootCA5.pem
 +
За улеснение сертификатът е качен на ilianko.com. Същият сертификат може да се изтегли от http://b-trust.org, но в друг формат.
  
Timestamps are typically used for logging events or in a sequence of events (SOE), in which case each event in the log or SOE is marked with a timestamp. In filesystems, timestamp may mean the stored date/time of creation or modification of a file.
+
 +
Генериране на хеш на сертификата, който ще ползва от openTSA.
  
 +
cd ~/ts
 +
bin/c_rehash CA/
  
[[Category:Интернет сигурност]]
+
==Генериране на заявка за удостоверение за време==
 +
 +
Документът, който искаме да подпечатаме е файлът text.time. От text.time ще се генерира хеш посредством SHA1.
 +
ts/bin/openssl ts -query -data text.time -sha1 -no_nonce -cert -out text.time.tsq
 +
 
 +
Преглед на заявката може да направим с:
 +
ts/bin/openssl ts -query -in text.time.tsq -text
 +
Изход от командата:
 +
Version: 1
 +
Hash Algorithm: sha1
 +
Message data:
 +
    0000 - 58 1a 1d d4 74 80 2e 9b-65 a6 1a ea 4e 0b 99 c6  X...t...e...N...
 +
    0010 - 76 2a 8b fc                                      v*..
 +
Policy OID: unspecified
 +
Nonce: unspecified
 +
Certificate required: yes
 +
Extensions:
 +
 
 +
Ясно се вижда стойността на хеша, която ще бъде заявена за удостоверяване:
 +
''581a1dd474802e9b65a61aea4e0b99c6762a8bfc''
 +
 
 +
==Изпращане TS заявката ==
 +
 
 +
Може да се ползва web формата на http://www.b-trust.org/?p=timestamp.
 +
След качване на заявката автоматично се праща отговор с удостоверение за време на изпратения хеш.
 +
 
 +
==Проверка на удостоверението за време==
 +
 
 +
За визуализиране на удостоверението за време може да се ползва:
 +
ts/bin/openssl ts -reply -in text.time.tsr -text
 +
 
 +
<code><pre>
 +
Status info:
 +
Status: Granted.
 +
Status description: Operation Okay
 +
Failure info: unspecified
 +
 
 +
TST info:
 +
Version: 1
 +
Policy OID: 0.4.0.2023.1.1
 +
Hash Algorithm: sha1
 +
Message data:
 +
    0000 - 58 1a 1d d4 74 80 2e 9b-65 a6 1a ea 4e 0b 99 c6  X...t...e...N...
 +
    0010 - 76 2a 8b fc                                      v*..
 +
Serial number: 0x03A353327A25
 +
Time stamp: Oct 12 11:54:20 2012 GMT
 +
Accuracy: unspecified seconds, 0x01F4 millis, unspecified micros
 +
Ordering: yes
 +
Nonce: unspecified
 +
TSA: DirName:/C=BG/L=Sofia/O=BORICA - BANKSERVICE AD, EIK 201230426/OU=B-Trust/CN=B-Trust Time Stamp Authority/street=bul. Tsarigradsko shose No 117/postalCode=1784/emailAddress=ca5tss@b-trust.org/telephoneNumber=+359 2 9 215 100
 +
Extensions:
 +
 
 +
</pre></code>
 +
Виждат се времето на подпечатване ''Time stamp: Oct 12 11:54:20 2012 GMT'' и издателя на печата ''BORICA - BANKSERVICE AD''.
 +
 
 +
За удостоверяване на удостоверението за време:
 +
ts/bin/openssl ts -verify -data text.time -in text.time.tsr -CApath ts/CA
 +
 
 +
Полученият отговор трябва да изглежда:
 +
Verification: OK
 +
 
 +
Ако няма наличен сертификат на издателя на удостоверение за време отговорът ще е:
 +
  Verification: FAILED
 +
3076750056:error:2F06D064:time stamp routines:TS_VERIFY_CERT:certificate \
 +
verify error:ts_rsp_verify.c:246:Verify  error:unable to get local issuer certificate
 +
 
 +
 
 +
== Подписване на документ ==
 +
 +
Доказването на произхода на време-подписаната информация, може да стане с електронно подписване. Електронното подписване не е задължително да бъде с X.509 сертифициран универсален електронен подпис, а може да се извърши и с openPGP сертификат
 +
 
 +
apt-get install gnupg
 +
gpg --gen-key
 +
gpg -a --detach-sign text
 +
 
 +
 
 +
 
 +
 
 +
 +
 
 +
 
 +
 +
 +
 
 +
 
 +
 
 +
 
 +
http://security.stackexchange.com/questions/4518/how-to-estimate-the-time-needed-to-crack-rsa-encryption
 +
 
 +
[[Category:Мрежова сигурност]]

Latest revision as of 05:21, 15 October 2012

Немски печат за дата и час, 1960s

timestamp или удостоверявание на време

Данни, които идентифицират и удостоверяват, кога (година, ден,час, секунда ...) е възникнало дадено събитие.



Удостоверители за време

За да има юредическа стойност удостоверението за време, то трябва да бъде издадено от сертифициран удостоворител в границите на европейски съюз. За България е серитифицирана КРС, която от своя страна е сертифицирала удостоверители, като Борика-Банксервиз АД (B-trust), Инфоарти АД и други.

В момента единствено B-trust предлага безплатно издаване на удостоверение за време.


Инстaлиране на TS клиент

За издаване на timestamp ни е нужна заявка за издаване. Заявката е в определeн формат според препоръка RFC3161.

За генериране на заявката може да се използва openTSA, инструмент включен в OpenSSL след версия 0.99.

За проверка на текущата версия на OpenSSL използвайте:

openssl version

Ако версията е по-малка от 0.99 изтеглете и компилирайте по-нова версия:

sudo su
cd ~/
mkdir ts
cd ts
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -zxf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c
./config --prefix=/home/student/ts
make
make install

Създаване на директория за съхранение на сертификати

Уместно е да се създаде директория за съхранение на сертификатите на организаците, на които ще се доверяваме.

sudo su
cd ~/
mkdir ts/CA
 

Изтеглянe на сертификата, с който се удостоверяват подписаните от B-trust документите. Този сертификат ще се ползва впоследствие при удостоверяване на удостоверението за време.

cd ts/CA
wget http://ilianko.com/RootCA5.pem

За улеснение сертификатът е качен на ilianko.com. Същият сертификат може да се изтегли от http://b-trust.org, но в друг формат.


Генериране на хеш на сертификата, който ще ползва от openTSA.

cd ~/ts
bin/c_rehash CA/

Генериране на заявка за удостоверение за време

Документът, който искаме да подпечатаме е файлът text.time. От text.time ще се генерира хеш посредством SHA1.

ts/bin/openssl ts -query -data text.time -sha1 -no_nonce -cert -out text.time.tsq

Преглед на заявката може да направим с:

ts/bin/openssl ts -query -in text.time.tsq -text

Изход от командата:

Version: 1
Hash Algorithm: sha1
Message data:
   0000 - 58 1a 1d d4 74 80 2e 9b-65 a6 1a ea 4e 0b 99 c6   X...t...e...N...
   0010 - 76 2a 8b fc                                       v*..
Policy OID: unspecified
Nonce: unspecified
Certificate required: yes
Extensions:

Ясно се вижда стойността на хеша, която ще бъде заявена за удостоверяване: 581a1dd474802e9b65a61aea4e0b99c6762a8bfc

Изпращане TS заявката

Може да се ползва web формата на http://www.b-trust.org/?p=timestamp. След качване на заявката автоматично се праща отговор с удостоверение за време на изпратения хеш.

Проверка на удостоверението за време

За визуализиране на удостоверението за време може да се ползва:

ts/bin/openssl ts -reply -in text.time.tsr -text
 Status info:
Status: Granted.
Status description: Operation Okay
Failure info: unspecified

TST info:
Version: 1
Policy OID: 0.4.0.2023.1.1
Hash Algorithm: sha1
Message data:
    0000 - 58 1a 1d d4 74 80 2e 9b-65 a6 1a ea 4e 0b 99 c6   X...t...e...N...
    0010 - 76 2a 8b fc                                       v*..
Serial number: 0x03A353327A25
Time stamp: Oct 12 11:54:20 2012 GMT
Accuracy: unspecified seconds, 0x01F4 millis, unspecified micros
Ordering: yes
Nonce: unspecified
TSA: DirName:/C=BG/L=Sofia/O=BORICA - BANKSERVICE AD, EIK 201230426/OU=B-Trust/CN=B-Trust Time Stamp Authority/street=bul. Tsarigradsko shose No 117/postalCode=1784/emailAddress=ca5tss@b-trust.org/telephoneNumber=+359 2 9 215 100
Extensions:

Виждат се времето на подпечатване Time stamp: Oct 12 11:54:20 2012 GMT и издателя на печата BORICA - BANKSERVICE AD.

За удостоверяване на удостоверението за време:

ts/bin/openssl ts -verify -data text.time -in text.time.tsr -CApath ts/CA

Полученият отговор трябва да изглежда:

Verification: OK

Ако няма наличен сертификат на издателя на удостоверение за време отговорът ще е:

 Verification: FAILED
3076750056:error:2F06D064:time stamp routines:TS_VERIFY_CERT:certificate \
verify error:ts_rsp_verify.c:246:Verify  error:unable to get local issuer certificate


Подписване на документ

Доказването на произхода на време-подписаната информация, може да стане с електронно подписване. Електронното подписване не е задължително да бъде с X.509 сертифициран универсален електронен подпис, а може да се извърши и с openPGP сертификат

apt-get install gnupg
gpg --gen-key
gpg -a --detach-sign text







http://security.stackexchange.com/questions/4518/how-to-estimate-the-time-needed-to-crack-rsa-encryption