Download - 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
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
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
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)
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.
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
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
Creando nuestra propia implementación de PGP en VB.Net (MiniPGP)
Demostración
Seguridad y Autenticación con VB.Net
Seguridad y Autenticación con VB.Net
Firma digital• Generación
• Verificación
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
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