Hace unos años hubo un pirata informático (no recuerdo quién era) que reveló por completo una vulnerabilidad en un sistema determinado, pero para asegurarse de que nadie se atribuyera eso, creó algún tipo de clave PGP.
Lo que entendí en ese momento es que él creó una clave para asegurarse de que él fue quien la descubrió, pero no reveló quién era en realidad, solo creó un mecanismo para poder probar que él fue quien creó la divulgación. .
Okay. Entiendo cómo funcionan los algoritmos y la criptografía. ¡Pero todavía no entiendo cómo puede crear una clave para proteger un contenido dado revelado en la web para demostrar que usted fue quien lo creó primero! ¡Son solo palabras!
¿Es realmente posible? ¿Cuál debería ser el proceso para garantizar que pueda probarlo empíricamente? ¿Lo entendí correctamente o probablemente me perdí algo con respecto a este caso?
Espero que esta pregunta sea lo suficientemente específica, básicamente es solo cómo proteger un contenido que creaste en la web (un párrafo, un código, una palabra, etc.) y asegurarte de que eres tú quien lo creó primero, dentro de un contexto dado
Con mi conocimiento, no veo cómo eso es posible, pero estoy intrigado si hay una forma práctica de hacerlo. ¿Esta ahí?
fuente
But I still don't understand how you can create a key to protect a given content disclosed in the web to prove you are the one who created it first! It is just words!
Hay una diferencia entre demostrar que creaste algo y demostrar que fuiste el primero en crear algo. La clave PGP puede probar que el hacker envió el informe de vulnerabilidad. No hay garantía de que la vulnerabilidad no haya sido descubierta o informada antes que él, pero al menos puede demostrar que la había denunciado en una fecha determinada.Respuestas:
Creo que lo que te falta es una entidad confiable.
Cuando hash el archivo con el contenido que desea certificar, puede mostrar al mundo que usted es el propietario de este documento, sin revelarlo. Todo esto está muy bien, pero ¿cómo puede probar que tuvo este documento en algún momento específico en el pasado?
De esto se trata Trusted Timestamping. Aquí hay un extracto de Wikipedia :
He estado utilizando el servicio de sellado de tiempo de Universign, que tiene un buen conjunto de herramientas para hacer que toda la operación sea fácil de realizar. Hay muchas compañías que ofrecen servicios similares.
Es interesante notar que, como mencionó @JoelFan, que bitcoin proporciona una forma de obtener una entidad confiable que no está centralizada (¿por qué debería confiar en alguien?). La cadena de bitcoin proporciona una línea de tiempo (puede probar que un documento incrustado en la cadena de bitcoin se creó antes que otro más abajo en la cadena). Sin embargo, a mi entender, aún se perdería la fecha y hora efectiva del evento.
Además, Trusted Timestamping es una referencia válida en litigios.
fuente
Antiguamente, los científicos publicaban anagramas de su trabajo para poder decir "Pensé en esta idea". (mire las secciones de 'historia' y 'establecimiento de prioridades'). La cuestión es que querían poder atribuirse el crédito, pero también darles a otros científicos que publiquen sus resultados si tenían otras ideas sin construir sobre la idea original. .
Por ejemplo, Gallileo publicó SMAISMRMILMEPOETALEVMIBVNENVGTTAVIRAS, que era un anagrama de altissimvm planetam tergeminvm obseravi que traducido del latín dice " Observé el planeta más alto en tres formas". Se equivocó: Saturno (el planeta "más alto" conocido en ese momento) no está formado por tres partes. Cincuenta años más tarde, Christiaan Huygens publicó AAAAAAA CCCCC D EEEEE H IIIIIII LLLL MM NNNNNNNNN OOOO PP Q RR S TTTTT UUUUU que en latín es Annulo cingitur, tenui, plano, nusquam cohaerente, ad eclipticam inclato que se traduce como "Está rodeado por una delgada delgada". anillo plano que no lo toca y está inclinado contra la eclíptica ".
Si bien esos son fragmentos históricos que ahora son de interés, muestran un concepto importante en ese momento: proporcionar un 'hash' que es fácil de decir "este hash codifica este texto". Es fácil pasar del texto conocido al anagrama o al hash, pero es difícil descubrir qué es si no sabes qué es en primer lugar.
Con los mecanicistas modernos, tenemos otras formas de hacer hashes. Muchos de ellos están muy relacionados con la criptografía. Existe la función hash criptográfica . La idea es, sin embargo, que es fácil pasar del texto que conoce al hash, pero es difícil pasar del texto al hash que no conoce.
Y así, si usted tiene un programa que podría publicar un hash del programa que hace algo y luego, cuando usted está listo para revelarla (posiblemente después de las correcciones de la empresa o de un período de tiempo más adelante), puede publicar el código real y todos pueden ver que sí, este código coincide con el hash.
fuente
Puedes hacerlo bastante fácil. Si tiene un texto sin formato
text
, una clave secretaS
y una clave pública,P
lo haceS(text)
y obtiene elcipher
.Ahora puedes publicar
cipher
yP
noS
. Por lo tanto, todos pueden descifrar elcipher
conP
haciendoP(cipher)
. Si ahora quiere demostrar que usted fue quien creó elcipher
(y, por lo tanto, el originaltext
), puede publicarloS
o, si no quiere que nadie conozca S, puede crear otroS("I was really the one who found the text first")
y publicarlo. Debido a que no hay forma de crear un cifrado que se descifre conP(cipher)
eso, se obtiene un texto significativo.Así es como puedes probarlo.
fuente
S
, es muy difícil encontrar un textocipher2
queP(cipher2)
no sea galimatías. ConS
esto es trivial, comoS("the text you want")
=cipher2
. Hacer lo contrario equivale a derrotar el método criptográfico.Es posible mezclar los datos que desea marcar con el tiempo y convertirlos en una dirección de Bitcoin. Esto se conoce como marca de tiempo confiable . Al hacer un pequeño pago (un satoshi o 0.00000001 BTC), el pago se almacena en la cadena de bloques junto con la dirección a la que pagó.
Dado que solo el hash se almacena en la cadena de bloques de Bitcoin, nadie puede decir qué datos almacenó, pero dados los datos pre-hash puede probar que los datos se crearon antes del bloque que contiene el pago realizado a esa dirección.
fuente
Una manera muy simple de establecer que eres el primero en publicar algo, sin revelar quién eres de inmediato, pero teniendo la opción de hacerlo más tarde:
No es necesario encriptar nada.
Por supuesto, existe la posibilidad de que aún no desee publicar sus resultados. En ese caso, debe cifrar todo excepto la línea con la dirección de correo electrónico. Sin embargo, ahora puede ser más difícil publicar esto en un sitio de renombre.
fuente
Esta es una versión diferente de la respuesta de Valenterry.
Así es como lo haría con PGP:
Genere un par de claves pública / privada.
Este método no requiere liberar su clave secreta, que en general es una mala idea. De acuerdo, siempre puedes hacer un nuevo par de claves PGP: no cuesta nada, pero no debes entregar imprudentemente claves secretas si quieres ser creíble.
La parte más difícil es probar el tiempo, pero en términos de documentar una vulnerabilidad, no necesitamos una solución 100% a prueba de balas y verificable en la corte, solo necesitamos algo que sea 'suficientemente bueno'. Los registros de un proveedor de almacenamiento en la nube (dropbox, rackspace, google, etc.) probablemente sean lo suficientemente buenos, suponiendo que implementen un servicio seguro.
También vale la pena señalar que ser el primero con una idea y su marca de tiempo nunca ha significado que haya sido la primera persona en pensar en la idea. Si alguien lo pensó antes que usted pero nunca registró la idea con un mecanismo de marca de tiempo, entonces no puede demostrar que lo hizo antes que usted. Entonces, si estamos tratando de descubrir quién lo hizo primero, y todo lo que sabemos es el momento en que se le ocurrió, entonces debemos suponer que se le ocurrió primero (la otra persona podría estar mintiendo).
fuente
Ugh, muchas de estas respuestas están perdiendo el punto.
1) Lo que hizo el hacker no tuvo nada que ver con el cifrado.
2) Lo que hizo el hacker no tuvo nada que ver con el tiempo (la marca de tiempo, etc.)
Lo que hizo el hacker fue firmar públicamente el documento de lanzamiento. Cuando PGP firma algo (un correo electrónico, un documento de Word, etc.), crea un hash que es la suma del hash del documento que se firma y su propia clave privada. Ahora, para demostrar que usted es el creador del documento, solo necesita "mostrar" la clave privada, ya que presumiblemente solo el autor lo sabe. Hablando criptográficamente, puede "demostrar" que posee la clave privada sin mostrar la clave en sí.
Entonces, en efecto, firmó digitalmente el documento. La única persona que puede copiar esa firma es alguien con su clave privada. No hay nada que decir que el documento se hizo hoy, o ayer, o que fue la primera instancia en existir. Ninguna cantidad de marcas de tiempo de hashing o lo que sea que cambie eso.
La única forma de firmar digitalmente algo A TIEMPO es usar blockchain a la bitcoin. No podría haber moneda digital sin verificación de tiempo: el hecho de que la persona A haya enviado dinero a la persona B es irrelevante a menos que sepamos cuándo. No puede ir a una tienda con un trozo de papel y decir "mi madre me envió $ 100 una vez. Me gustaría comprar un poco de pan", porque un recibo de una transacción no significa que el dinero todavía le pertenece. Es posible que se lo haya dado a otra persona en el ínterin. La cadena de bloques resuelve este problema al lograr que un gran número de personas (mineros de bitcoins) estén de acuerdo en el hecho de que la transacción se realizó en un momento determinado (y luego registrando ese tiempo en la cadena de bloques para siempre).
fuente