Duda sobre llaves públicas, privadas y criptografía de ficheros con PGP

Iniciado por pepemanu1, 1 Enero 2015, 16:29 PM

0 Miembros y 1 Visitante están viendo este tema.

pepemanu1

Hola
Quiero empezar a cifrar ficheros con algún programa PGP, como el GPG4WIN por ejemplo, pero tengo algunas dudas que no me acaban de quedar claras.
A ver... he visto como se hace, he visto tutoriales explicando como se cifra y se descifra un fichero, pero lo que no me acaba de quedar claro es ¿para que necesito yo una lllave pública y una privada, y más exactamente, qué función cumple la llave pública y qué función cumple la llave privada?
En uno de los tutoriales explican que una vez que has creado la llave pública, la tienes que enviar por correo electrónico, junto con su contraseña. El fichero de llave pública es un fichero ASC.
¿Ahora, yo entiendo que si mando la contraseña por email y el fichero de llave pública por email, eso no debe ser muy seguro verdad?
Imaginemos que alguién más intercepta ese email, en ese caso, se haria con la contraseña y con la llave, con lo cual, podria también descifrar ficheros facilmente.
¿No es así?
Os rogaría vuestra ayuda.
Saludos

engel lex

El sistema de llave publica y privada se llama cifrado asimetrico, es entre las cosas mas seguras que hay...

Tu creas 2 llaves una publica para que el mundo la vea y una privada, solo para ti...

Cuando alguien te envia un mensaje se mezclan las claves publica tuya con la publica y privada de la otra persona... es mensaje solo se puede abrir con tu llave privada....

Es seguro porque no se comparte la contraseña real y ni si quiera quien cierra el mensaje  puede abrirlo...

Si tienes dudas busca en youtube
'Como funciona el cifrado asimetrico' o 'como funciona el rsa'
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

toxeek

lee sobre PKI, trata de entender como funciona y ya sabras como trabaja este tipo de tecnologia  ;-)

http://en.wikipedia.org/wiki/Public_key_infrastructure
"La envidia es una declaración de inferioridad"
Napoleón.

pepemanu1

aha... entiendo entonces que hay que tener siempre dos llaves, la mia (privada) y la llave que doy a la persona a la que envío un fichero cifrado (pública).
Cada llave es un fichero ASC y sin las dos llaves, el fichero no se abre.
La verdad que sigo sin situarme mentalmente muy bien sobre como es eso de que se mezclen las dos claves.
He encontrado un video muy sencillo... lo pongo aquí:

[youtube=640,360]https://www.youtube.com/watch?v=-OFdogGy7zk[/youtube]

https://www.youtube.com/watch?v=-OFdogGy7zk

Para terminar de enterarme necesitaría entenderlo con un ejemplo.
Partamos de un ejemplo sencillo.
Yo envio un fichero cifrado (un documento de Word) como adjunto en un email.
Se lo voy a enviar a mi amigo Pepe.
A mi amigo Pepe le doy su llave pública, y la mando como adjunto al email (un fichero ASC).
También le doy la contraseña.
Van en el email el fichero de Word cifrado, la llave pública de mi amigo Pepe, y la clave.
En mi ordenador se queda la llave privada.

Mi amigo Pepe recibe el mail, y usa su programa para abrir el fichero de word cifrado. Usaría un programa PGP como el GPG4WIN.

Hasta aquí todo perfecto.
PERO... a mi amigo Pepe le tienen pinchado el email, y resulta que un Sr. llamado Juan, que es el que le tiene pinchado el email y recibe copias de todos los emails que le entran a mi amigo Pepe, este Juan, ha recibido una copia exacta del email que ha recibido mi amigo Pepe. Juan ha recibido todo, el fichero de Word cifrado, la llave ASC, la clave...
¿Que le impide a Juan abrir ese fichero, si tiene todo lo mismo de Pepe? Tiene las mismas cosas, el fichero ASC (la llave pública, tiene la clave, tiene el fichero cifrado...)
¿Por qué no puede abrirlo Juan si tiene lo mismo que ha recibido Pepe?.

Creo que respondiendo a este ejemplo, me enteraría mejor.
Saludos



engel lex

No, lo entendiste mal...

Lo iba a explicar, pero este video deberia dejarlo en claro

[youtube=640,360] http://youtu.be/dleUxfghd5I [/youtube]
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

toxeek

Como el compadre cita PGP .. habra que centrarse en PGP,

"...PGP can be used to send messages confidentially. For this, PGP combines symmetric-key encryption and public-key encryption. The message is encrypted using a symmetric encryption algorithm, which requires a symmetric key. Each symmetric key is used only once and is also called a session key. The message and its session key are sent to the receiver. The session key must be sent to the receiver so they know how to decrypt the message, but to protect it during transmission, it is encrypted with the receiver's public key. Only the private key belonging to the receiver can decrypt the session key."

Asi que el caso es que PGP usa ambos, encriptacion simetrica y asimetrica. Cuando el cita que que ocurre si Juanito intercepta el email y capta el denominado "session key", pues aqui hay que decir que Juanito no podria ver el mensaje puesto que este mensaje se ha cifrado con la clave publica de Miguel (AKA destinatario). Y como sabes solo Miguel puede desencriptarlo con su llave privada. Asi pues se usan ambos metodos, encriptacion simetrica y asimetrica  :D
"La envidia es una declaración de inferioridad"
Napoleón.

vk496

La encriptacion asimétrica se puede usar de dos formas.

-Tu encriptas archivos con la llave privada para que cualquier persona pueda leerlo con tu llave pública (muy útil para certificar que tu eres el que ha escrito ese mensaje y no un impostor)

-La gente cifra los mensajes con tu llave pública para que SOLO TU puedas leerlo (ya que solo tu tienes la llave privada).

Para mandar emails con tu amigo, ambos deberíais tener las llaves públicas de los otros. Así, tu le mandas mensajes usando su llave pública y él hace lo mismo con la tuya.

De esta forma, si alguien coge el mensaje, como no tiene ninguna llave privada, no sabría nada de nada.

Salu2

pepemanu1

Cita de: vk496 en  3 Enero 2015, 15:58 PM
La encriptacion asimétrica se puede usar de dos formas.

-Tu encriptas archivos con la llave privada para que cualquier persona pueda leerlo con tu llave pública (muy útil para certificar que tu eres el que ha escrito ese mensaje y no un impostor)

-La gente cifra los mensajes con tu llave pública para que SOLO TU puedas leerlo (ya que solo tu tienes la llave privada).

Para mandar emails con tu amigo, ambos deberíais tener las llaves públicas de los otros. Así, tu le mandas mensajes usando su llave pública y él hace lo mismo con la tuya.

De esta forma, si alguien coge el mensaje, como no tiene ninguna llave privada, no sabría nada de nada.

Salu2

Aha, esto lo entiendo... creo que con esta explicación me aclaro más. Vamos a ver...

Claro al cifrar un archivo con mi llave privada, yo soy Miguel, y lo cifro con mi llave, lo que ofrezco es la seguridad de que fui yo quien ha creado ese archivo. Luego doy una llave pública (fichero ASC) y eso significa, que la persona que reciba esa llave pública podrá leer mi archivo cifrado.
Entiendo, que aquí no hay una seguridad como tal, para evitar que cualquiera sea capaz de descifrar ese mensaje.
Aquí lo que hay es la seguridad, de que yo, Miguel, he sido quien ha escrito ese mensaje. Ya que si yo no hubiera sido, no se podría abrir con la llave pública.

Pongamos el caso, otro tio que dice llamarse Miguel manda un archivo cifrado diciendo que soy yo. Y lo manda a mis amigos, por ejemplo a mi amigo Pepe. Claro, Pepe como ya tiene mi llave pública, cuando va a abrir el archivo que el impostor le ha mandado, no abre... y no abre porque la llave pública que tiene Pepe (mi amigo del alma) está unida a mi llave privada (yo soy Miguel).

Por tanto, si hay un Juanito por ahi diciendo que se llama Miguel e intentando mandar ficheros cifrados a mi nombre, la gente que los reciba, no podrá abrirlos, ya que sus llaves públicas (las cuales se las di yo) detectaran que ese fichero, no es mio, es de otra persona que se hace pasar por mi.

Por tanto, cifrar un fichero con mi llave privada y mi llave pública, significa que da la seguridad de que yo he sido quien ha escrito ese fichero. Pero nada más.

Ahora, bien, cualquier persona que tenga mi llave pública, va a ser capaz de descifrar, de abrir y ver ese fichero.


¿Que pase si yo quiero que solo mi amigo Pepe sea capaz de descifrar ese fichero y nadie más?
Esto es distinto, no hablamos de que Pepe sepa que el fichero cifrado que le mando, esté hecho por mi. Lo que hablamos es que, cuando Pepe (mi amigo) reciba el email que yo le he mandado (yo soy Miguel), solamente Pepe pueda abrir el fichero cifrado y nadie más.

Obviamente, si hay un intruso que recibe una copia del email, si recibe la llave pública, va a poder abrir el fichero, poque la llave pública lo que hace es eso, permitir que las personas que la tengan abran mis ficheros cifrados. Lo único que vamos a tener llegados a este punto es la seguridad de que yo, Miguel, he sido el autor, pero nada más. No hay tal seguridad, cualquier persona que tenga la llave pública (fichero ASC) podrá abrir el fichero.

¿Hasta aquí es correcto?

ENTIENDO QUE... si yo quiero que solamente mi amigo Miguel pueda abrir el fichero cifrado y nadie más, entiendo que solamente mi amigo Miguel debería tener la llave pública. De esa forma, si alguien tiene una copia del email y no tiene la llave pública, no podrá abrir el fichero cifrado, porque le falta la llave pública.

La pregunta aquí es... ¿Cómo puedo darle yo la llave pública a ciertas personas sin enviarla por email, ya que si alguien me tiene pinchado el email se puede hacer con la llave pública?

Bueno pues, a esto le veo yo varias soluciones.
En mano, directamente en un pendrive, si Pepe (mi amigo) está cerca mia, o si resulta que mi amigo Pepe no está cerca, otra cosa que se puede usar es un servicio de almacenamiento en la nube, o un email desechable, que los hay, y a los que se puede acceder con TOR.

Mandas la llave pública, es un email desechable, a las 24 horas se borra, y además, no deja rastro de que eres tú, porque usas TOR.

¿Creo que voy bien? ¿Es correcto?

Saludos y perdón por la extensa explicación.

engel lex

debes conocer la llave publica de quien le envías... por eso se comparten los codigos PGP, tu le envías de una vez tu llave publica a el receptor para que pueda enviarte de vuelta algo...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

vk496

Cita de: engel lex en  4 Enero 2015, 22:44 PM
debes conocer la llave publica de quien le envías... por eso se comparten los codigos PGP, tu le envías de una vez tu llave publica a el receptor para que pueda enviarte de vuelta algo...
Exacto.

Estás enfocando la criptografía como algo que solo parte de ti, y no es así. La razón de darle el nombre "llave pública" es para que la compartas sin miedo ni temores.


Si tenemos en cuenta que Mario siempre está espiando tu red, puedes hacer esto perfectamente:

-Tu generas tu par de claves publica y privada
-Tu amigo genera par de claves publica y privada.

-Mandas por email a tu amigo la llave pública (o la subes a Internet)
-Tu amigo te manda a ti su llave pública.

Cuando vayas a mandar un mensaje a Miguel, lo cifras con SU llave pública. Y él hará lo mismo con TU llave pública.

Ambos podréis comunicaros y Mario nunca sabrá nada.

El protocolo SSL en buena parte funciona así (o eso tengo entenido). Mediante este método (criptografía asimétrica) se negocia una clave maestra, la cual sirve para cifrar el contenido de las webs con criptografía SIMÉTRICA (porque el rendimiento es muy superior)

Salu2