News for hackers. Stuff that matters.
Re:Cryptographically timestamping all your Git commits autom... by kazinator on Thursday December 03, 2015 @11:20AM (#10670414)
> The most robust way of timestamping is cryptographic timestamping, where the downloaded file is hashed using a cryptographic hash function like SHA-256, and then the hash is published.

How is this a time stamp? The hash doesn't change if you touch the file's modification time.

Re:Cryptographically timestamping all your Git commits autom... by michaelt on Thursday December 03, 2015 @12:59PM (#10671239)
Sometimes it's useful to be able to prove a file was created /before/ a given time.

For example, if you download a signed executable, but the signing certificate expired a while ago, does that mean you don't trust the executable? If you don't trust it, every executable would eventually break when the signing certificate went out of date. The solution is to require a cryptographic timestamp proving the executable was generated at a time when the code signing certificate was valid.

That's how you can download Java applets that were published and signed in 2005 and still know the signature is valid. Not that many people are using that technology these days!

Re:Cryptographically timestamping all your Git commits autom... by gwern on Thursday December 03, 2015 @01:55PM (#10671706)
> Sometimes it's useful to be able to prove a file was created /before/ a given time.

Let me give a personal example: some time ago, someone deleted the public copies of some webpages we were using in our investigation and threatened to us that if we continued, they would simply claim that our copies of were forged later (after we had contacted them), and, they thought, make us look like fools & scuttle our claims (with some hints that they might also sue us for libel to boot). Fortunately, I had been timestamping all along and had timestamped the archived webpages in question; so I could prove that my copies are unaltered from well before they raised the question, and, further, at around the same time as they were independently captured in a different archive service. After we noted this to them, they had to back down on the threats and take us more seriously.

Re:Cryptographically timestamping all your Git commits autom... by kazinator on Thursday December 03, 2015 @03:43PM (#10672463)
> If you download a signed executable, but the signing certificate expired a while ago, does that mean you don't trust the executable?

Indeed, no you don't---not on the basis of cryptographic reasoning, at least.

Certificates expire for a reason. That reason is the assumption that they are being actively cracked, and so have a limited shelf life. You can trust a 2005 certificate only to the extent that you bank on the underlying private key not to have been cracked.

If the key is cracked, then the attackers can create a brand new file, and make it look like its existence had been certified in 2005.

Old stuff that still matters has to be re-certified with new certificates in the face the impending expiry of the old ones.

Re:Cryptographically timestamping all your Git commits autom... by cba9 on Thursday December 03, 2015 @04:08PM (#10672648)
> If the key is cracked, then the attackers can create a brand new file, and make it look like its existence had been certified in 2005.

What? If someone cryptographically timestamped a particular signed file in 2005, even if Eve cracks the original public key and can now produce arbitrary new signed files with that key, they still do not have 2005 timestamps for any of those new files! They could only make 2015 timestamps. That's the whole point of cryptographic timestamps.

Re:Cryptographically timestamping all your Git commits autom... by kazinator on Friday December 04, 2015 @10:38AM (#10676850)
That just means that the timestamps have their own certification mechanism which is independent of the certificate on the file. That certification mechanism also has expiring keys. The attacker uses the cracked 2005 stamping key to stamp the file and the cracked certificate to sign it.

(If you could certify a timestamp forever, in a non-expiring, uncrackable way, why wouldn't you just use that for the whole file?)

Re:Cryptographically timestamping all your Git commits autom... by cba9 on Friday December 04, 2015 @05:31PM (#10679650)
> The attacker uses the cracked 2005 stamping key to stamp the file and the cracked certificate to sign it.

OK, so you don't actually understand how cryptographic timestamping works or the Bitcoin version. Please read up on it before commenting.

> If you could certify a timestamp forever, in a non-expiring, uncrackable way, why wouldn't you just use that for the whole file?

What you are timestamping is the whole file!

Re:Cryptographically timestamping all your Git commits autom... by kazinator on Sunday December 06, 2015 @10:09PM (#10687826)
Sorry, I mean something like "for the whole aspect of certifying the file, not just its time stamp".

(Of course the time stamp is for the whole file; not just for a subrange of bytes or whatever; if anything is altered, then the timestamp doesn't hold for the altered object.)

Re:Cryptographically timestamping all your Git commits autom... by arethuza on Thursday December 03, 2015 @11:50AM (#10670608)
I suspect that means that the file hash is published to a trusted third party who then combines the hash with a timestamp:

https://en.wikipedia.org/wiki/Trusted_timestamping

Re:Cryptographically timestamping all your Git commits autom... by aeorgnoieang on Thursday December 03, 2015 @01:16PM (#10671407)
Publishing, in a way that can later be verified, provides the time component.