2012-08-20 10 views
13

Como científico me gustaría mantener un registro oficial de la hora en que compruebo algo en mi repositorio de Git. Esto con el fin de respaldar posteriormente las afirmaciones de quién inventó lo primero durante, por ejemplo, disputas de patentes.Git: ¿Es posible falsificar la fecha de firma de una etiqueta?

En el momento en que de vez en cuando añadir una etiqueta a mi repositorio de este modo:

git tag -s -m "`date`" 2012-08-20 

y empujar las etiquetas al servidor central:

git push --tags 

que levanta una etiqueta muestra la Fecha en que lo firmé con mi clave:

git tag -v 2012-08-20 
object 2d6f6035270e8e44c035431e99be8da3fccee095 
type commit 
tag 2012-08-20 
tagger My Full Name <[email protected]> 1345466433 +0200 

Mon Aug 20 14:40:33 CEST 2012 
gpg: Signature made Mon Aug 20 14:40:37 2012 CEST using RSA key ID somekey 
gpg: Good signature from "My Full Name <[email protected]>" 
gpg:     aka "My Full Name <personal-email>" 

Mi pregunta es qué tan seguras son estas fechas? ¿Es posible manipularlos más tarde?

EDITAR: para aclarar un pero, además, deseo poder demostrar que sería muy poco probable que haya manipulado las etiquetas más adelante.

+0

Al firmar código ejecutable con la firma de Microsoft Authenticode, puede usar un servicio de "sellado de tiempo", que verifica el momento en que se firmó la firma, siempre que confíe en el proveedor del servicio de sellado de tiempo. No sé de ninguna otra manera de firmar algo con un sello de tiempo, especialmente si se mantendría legalmente, pero podría buscar ese término. –

Respuesta

14

Lo que Git garantiza es: Si la fecha (o el resto de la etiqueta, o las confirmaciones asociadas a ella, etc.) se modifican, la SHA1 de la etiqueta cambiará.

Sin embargo, para que esto sea útil, debe demostrar de alguna manera cuál era la etiqueta SHA1 original, y que ya la tenía en la fecha reclamada de la invención.

De lo contrario, para reclamar fraudulentamente que inventó algo en enero de 1980, podría simplemente rebobinar la fecha de su computadora a 1980 y crear el repositorio con los commits necesarios, las etiquetas y all-git no lo sabría, ya que solo puede creer el reloj del sistema lo dice.

Así que si quiere probar que inventó/escribió algo antes de una fecha en el pasado, git (solo) no puede ayudarlo, ni puede hacer ninguna forma de firmar solo. Lo que necesita es Trusted timestamping. Existen varios esquemas diferentes, pero todos requieren uno o más terceros que esencialmente garanticen la exactitud de la marca de tiempo.

+0

+1. Enlace interesante a la marca de tiempo confiable. – VonC

Cuestiones relacionadas