PDF de programación - Desarrollo de software y criptografía - ¿cómo proteger los datos en nuestras aplicaciones?

Desarrollo de software y criptografía - ¿cómo proteger los datos en nuestras aplicaciones?gráfica de visualizaciones

Publicado el 2 de Mayo del 2017
406 visualizaciones desde el 2 de Mayo del 2017
3,1 MB
55 paginas
Creado hace 6a (23/06/2014)
Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

Desarrollo de software y criptografía
¾cómo proteger los datos en nuestras aplicaciones?

Gunnar Wolf

Debian ˆ IIEc-UNAM ˆ FI-UNAM

SG Conferencia y Expo 2014

Contenidos

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

1 El qué y el por qué

2 El cómo y con qué

3 Cuando las cosas salen mal. . .

Acerca de mí

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

Desarrollador, administrador de sistemas,
entusiasta. . .

Como todos ustedes (½espero!)

Mantenedor del llavero de conanza OpenPGP en el
Proyecto Debian
No soy experto en criptografía

Me resulta interesante
Estoy convencido de la importancia de que los
desarrolladores la comprendan y utilicen.

Acerca de la ponencia

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

Mencionaré algunos (no demasiados) datos y
referencias
La presentación está disponible en
http://gwolf.org/desarrollo_y_criptograa
Con ligas vivas a la fuente de información donde
haga falta

La criptografía y el mundo real

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

¾Para qué desarrollamos sistemas?

¾Qué sabemos de nuestra información?

¾Cómo podemos proteger nuestra información?

¾Y en qué nos podemos equivocar?

La criptografía y el mundo real

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

¾Para qué desarrollamos sistemas?

Invariablemente, para gestionar información

¾Qué sabemos de nuestra información?

En ella radica el valor de nuestro trabajo

¾Cómo podemos proteger nuestra información?

¾Y en qué nos podemos equivocar?

La criptografía y el mundo real

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

¾Para qué desarrollamos sistemas?

Invariablemente, para gestionar información

¾Qué sabemos de nuestra información?

En ella radica el valor de nuestro trabajo

¾Cómo podemos proteger nuestra información?

...¾Qué signica proteger?

¾Y en qué nos podemos equivocar?

½A eso vamos!

Propiedades a defender en un mensaje

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

¾Qué podemos asegurar empleando técnicas

criptográcas?

Condencialidad
Integridad
Autenticación

Y varias otras propiedades que derivan de estas.

Un par de ejemplos

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

Veamos brevemente un ejemplo de cada uno.

Importante: Son ejemplos basados en nuestra realidad,

aunque no absolutamente literales

Condencialidad

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

Figura: Ejemplo clásico de condencialidad: Transmisión de
datos para el comercio electrónico

Autenticación

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

¾Qué hacen para vericar usuario/contraseña en sus
sistemas? ¾Y qué graban en la base de datos?
user = User.find_by_login(params[:login])
return false if user.blank?
passwd_hash = Digest::MD5.hexdigest(user.pw_salt +

params[:passwd])

return (user.passwd != passwd_hash) ? false : true

sistema=> select login, passwd, pw_salt from users

where login=’gwolf’;

login |

passwd

| pw_salt

-------+----------------------------------+----------

gwolf | ce0f7176bd13fd657770cefb55923b7f | {BwHnnL?

(1 row)

1

2

3

4

1

2

3

4

5

Nunca se guarda la contraseña, sino una prueba
criptográca de su posesión.

Autenticación

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

¾Qué hacen para vericar usuario/contraseña en sus
sistemas? ¾Y qué graban en la base de datos?
user = User.find_by_login(params[:login])
return false if user.blank?
passwd_hash = Digest::MD5.hexdigest(user.pw_salt +

params[:passwd])

return (user.passwd != passwd_hash) ? false : true

sistema=> select login, passwd, pw_salt from users

where login=’gwolf’;

login |

passwd

| pw_salt

-------+----------------------------------+----------

gwolf | ce0f7176bd13fd657770cefb55923b7f | {BwHnnL?

(1 row)

1

2

3

4

1

2

3

4

5

Nunca se guarda la contraseña, sino una prueba
criptográca de su posesión.

Autenticación

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

¾Qué hacen para vericar usuario/contraseña en sus
sistemas? ¾Y qué graban en la base de datos?
user = User.find_by_login(params[:login])
return false if user.blank?
passwd_hash = Digest::MD5.hexdigest(user.pw_salt +

params[:passwd])

return (user.passwd != passwd_hash) ? false : true

sistema=> select login, passwd, pw_salt from users

where login=’gwolf’;

login |

passwd

| pw_salt

-------+----------------------------------+----------

gwolf | ce0f7176bd13fd657770cefb55923b7f | {BwHnnL?

(1 row)

1

2

3

4

1

2

3

4

5

Nunca se guarda la contraseña, sino una prueba
criptográca de su posesión.

Integridad

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

Al bajar un archivo de Internet, quiero conrmar que
sea exactamente el mismo que el que subió el autor
Muchos autores y depósitos de software lo publican
junto con su hash (MD5, SHA1, SHA-256)
No se comprueba la identidad del autor, sino
únicamente la integridad del documento
$ apt-cache show linux-image-3.14-1-amd64
Package: linux-image-3.14-1-amd64

(...)

Size: 30780396
MD5sum: 251351c12ed891abf3659514f62d05c6
SHA1: 8bbf040135253e96b4624ad0e141672015b0394a
SHA256:

1

2

3

4

5

6

7

072815c82ebd18f7998fffb441faea571518a6e1502652687d336dd071d4918f

Importante: ¾Estos datos se transmitieron por un
canal conable?

Integridad

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

Al bajar un archivo de Internet, quiero conrmar que
sea exactamente el mismo que el que subió el autor
Muchos autores y depósitos de software lo publican
junto con su hash (MD5, SHA1, SHA-256)
No se comprueba la identidad del autor, sino
únicamente la integridad del documento
$ apt-cache show linux-image-3.14-1-amd64
Package: linux-image-3.14-1-amd64

(...)

Size: 30780396
MD5sum: 251351c12ed891abf3659514f62d05c6
SHA1: 8bbf040135253e96b4624ad0e141672015b0394a
SHA256:

1

2

3

4

5

6

7

072815c82ebd18f7998fffb441faea571518a6e1502652687d336dd071d4918f

Importante: ¾Estos datos se transmitieron por un
canal conable?

Algunas otras propiedades derivadas

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

Vinculación / no-repudio
Certicación
Control de acceso
Tiempo de validez: Validación / expiración
Sello de tiempo
Revocación
Recibo / conrmación
Firma anónima o ciega

Ojo: Varias de estas dependen de la existencia de un

tercero conable (autoridad certicadora).

Y con esto, ¾a qué quiero llamar la
atención?

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

Los esquemas antes descritos son seguros y están
comprobados al 100 %.

Módulo teoría de la complejidad → Más al
respecto en un minuto

Pero. . . ¾Y la implementación que los rodea / llama
/ invoca?

Contenidos

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

1 El qué y el por qué

2 El cómo y con qué

3 Cuando las cosas salen mal. . .

¾Cómo voy a implementar mi criptografía?

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

Los diferentes algoritmos son ampliamente
conocidos y están públicamente documentados
Criptografía simétrica / asimétrica; diferentes
longitudes de llave, diferentes modos de operación
¾Por qué?

Muchos de estos algoritmos son aparentemente
fáciles de comprender e implementar. ¾Por qué no
hacerlo?

¾Cómo voy a implementar mi criptografía?

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

Los diferentes algoritmos son ampliamente
conocidos y están públicamente documentados
Criptografía simétrica / asimétrica; diferentes
longitudes de llave, diferentes modos de operación
¾Por qué? Cada uno presenta ciertas ventajas y
desventajas en situaciones especícas; algunos
ejemplos en breve

Muchos de estos algoritmos son aparentemente
fáciles de comprender e implementar. ¾Por qué no
hacerlo?

¾Cómo voy a implementar mi criptografía?

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

Los diferentes algoritmos son ampliamente
conocidos y están públicamente documentados
Criptografía simétrica / asimétrica; diferentes
longitudes de llave, diferentes modos de operación
¾Por qué? Cada uno presenta ciertas ventajas y
desventajas en situaciones especícas; algunos
ejemplos en breve

Muchos de estos algoritmos son aparentemente
fáciles de comprender e implementar. ¾Por qué no
hacerlo?

½Nunca lo hagan!

Regla de oro de la criptografía

Desarrollo de

software y
criptografía

Gunnar Wolf

El qué y el por
qué

El cómo y con
qué

Cuando las
cosas salen
mal. . .

No haces tu propia

criptografía

Regla de oro de la criptografía

Desarrollo de

software y
criptografía

Gun
  • Links de descarga
http://lwp-l.com/pdf3275

Comentarios de: Desarrollo de software y criptografía - ¿cómo proteger los datos en nuestras aplicaciones? (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad