Seguridad Y AutenticacióN Con Vb

11
Seguridad y Autenticación con VB.Net ¿Qué clases ofrece .Net? Algoritmos de Hashing HMACSHA1 MACTripleDES MD5CryptoServiceProvider SHA1Managed SHA256Managed SHA384Managed SHA512Managed Algoritmos de criptografía simétrica DES, RC2, Triple-DES, y Rijndael (o AES) Algoritmos de criptografía asimétrica RSA, DSA

Transcript of Seguridad Y AutenticacióN Con Vb

Page 1: Seguridad Y AutenticacióN Con Vb

Seguridad y Autenticación con VB.Net

¿Qué clases ofrece .Net?Algoritmos de Hashing

HMACSHA1MACTripleDESMD5CryptoServiceProviderSHA1ManagedSHA256ManagedSHA384ManagedSHA512Managed

Algoritmos de criptografía simétricaDES, RC2, Triple-DES, y Rijndael (o AES)

Algoritmos de criptografía asimétricaRSA, DSA

Page 2: Seguridad Y AutenticacióN Con Vb

Seguridad y Autenticación con VB.Net

Criptografía Someter la información a un

proceso que la transforme, este proceso es revertido en el receptor.Criptografía Simétrica

El proceso queda definido por una única clave, el problema es que si el que escucha conoce la clave puede desencriptar la información

Page 3: Seguridad Y AutenticacióN Con Vb

Seguridad y Autenticación con VB.Net

El problema, ¿Cómo transportar la clave simétrica?

Surge la Criptografía Asimétrica

Utiliza dos claves que:• Funcionan en pareja• Es prácticamente

imposible deducir una a partir de la otra

Page 4: Seguridad Y AutenticacióN Con Vb

Seguridad y Autenticación con VB.Net

• Las entidades deben acordar el intercambio de claves públicas

• Pueden existir problemas de suplantación

• Necesidad de entidades certificadoras (AFIP en nuestro país)

Page 5: Seguridad Y AutenticacióN Con Vb

Seguridad y Autenticación con VB.Net

• Esquema jerárquico de certificación. Si A quiere comprobar la identidad de B, empleará la clave pública de EC1 para verificar el certificado digital de EC3.

• Una vez hecha esta comprobación, podrá confiar en EC3 como certificador de la clave pública de B.

Page 6: Seguridad Y AutenticacióN Con Vb

PGP (Pretty Good Privacy)• Utiliza una estructura de anillo de claves

públicas, denominado llavero• El emisor busca en su llavero la clave pública

del destinatario, utilizando un identificador del mismo

• El llavero es protegido con una clave para evitar ataques

• Utiliza un generador de claves simétricas aleatorio, allí es donde puede explotarse la vulnerabilidad

Seguridad y Autenticación con VB.Net

Page 7: Seguridad Y AutenticacióN Con Vb

Creando nuestra propia implementación de PGP en VB.Net (MiniPGP)

• Algoritmo de cifrado simétrico– Utilizamos la clase RijndaelManaged

• Algoritmo de cifrado asimétrico– Utilizamos la clase RSACryptoServiceProvider

• Algoritmo de Hashing– Utilizamos la clase MD5CryptoServiceProvider

• Estructura del llavero– Utilizamos la clase DataSet con un Datatable LLavero

Seguridad y Autenticación con VB.Net

Page 8: Seguridad Y AutenticacióN Con Vb

Creando nuestra propia implementación de PGP en VB.Net (MiniPGP)

Demostración

Seguridad y Autenticación con VB.Net

Page 9: Seguridad Y AutenticacióN Con Vb

Seguridad y Autenticación con VB.Net

Firma digital• Generación

• Verificación

Page 10: Seguridad Y AutenticacióN Con Vb

Sentencias en VB.Net

Crear FirmaDim hash As Byte()

' utilizamos MD5 pero podría ser cualquier otro

Dim md5 As New Security.Cryptography.MD5CryptoServiceProvider()

Dim cripto As New RSACryptoServiceProvider

‘ Indicamos donde está nuestra llave

cripto.FromXmlString(m_rsaKeyString)

hash = md5.ComputeHash(file)

Dim firma as Byte()=cripto.SignHash(hash, md5.ToString)

Seguridad y Autenticación con VB.Net

Page 11: Seguridad Y AutenticacióN Con Vb

Sentencias en VB.NetVerificar firma'quitamos el relleno porque sino los hash no coinciden msg = quitarRelleno(msg) Dim cripto As New RSACryptoServiceProvider‘obtenemos la llave del llavero cripto.FromXmlString(buscarLLave(entidad)) Dim hash As Byte() Dim md5 As New Security.Cryptography.MD5CryptoServiceProvider() hash = md5.ComputeHash(msg) 'verificamos la firma con la clave pública de la entidad firmante Dim result As Boolean = cripto.VerifyHash(hash, md5.ToString, firma)

Seguridad y Autenticación con VB.Net