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
330 visualizaciones desde el 2 de Mayo del 2017
3,1 MB
55 paginas
Creado hace 5a (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
Es necesario revisar y aceptar las políticas de privacidad