SlideShare una empresa de Scribd logo
1 de 11
Encriptación de datos
Asegurando nuestra información
Introducción
Las aplicaciones Web muy a menudo
necesitan almacenar datos sensibles,
como las conexiones a las bases de datos
o las credenciales de una cuenta de
usuario en archivos de configuración. Por
razones de seguridad, este tipo de
información nunca debe ser almacenada
en texto plano y siempre debe ser cifrada
antes de su almacenamiento.
Objetivos
En este módulo aprenderemos a:
• Utilizar la clase librería que encapsula las
llamadas a la Data Protection API (DPAPI)
contenida en “Crypt32.dll” para cifrar y descifrar
datos.
• Cifrar las cadenas de conexión y almacenarlas
en el Web.config
• Crear una aplicación Web para cifrar y descifrar
datos.
Requerimientos
• Imports System.Text
• Imports Dataprotection
Las referencias a emplear son:
Referencia y uso de Crypt32.dll
para DPAPI
Creación del proyecto Dataprotection que
emplea la librería DPAPI
Win32® Data Protection API (DPAPI).
Una de las caracteristicas de DPAPI es que
maneja las llaves
de cifrado por nosotros.
Pantalla de pruebas
Cifrando cadenas
Private Sub btnEncrypt_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnEncrypt.Click
Dim dp As New
DataProtector(DataProtector.Store.USE_MACHINE_STORE)
Try
Dim dataToEncrypt() As Byte =
Encoding.ASCII.GetBytes(txtDataToEncrypt.Text)
txtEncryptedData.Text =
Convert.ToBase64String(dp.Encrypt(dataToEncrypt, Nothing))
Catch ex As Exception
lblError.ForeColor = Color.Red
lblError.Text = "Exception.<br>" + ex.Message
Return
End Try
lblError.Text = ""
End Sub
Descifrando cadenas
Private Sub btnDecrypt_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnDecrypt.Click
Dim dp As New
DataProtector(DataProtector.Store.USE_MACHINE_STORE)
Try
Dim dataToDecrypt() As Byte =
Convert.FromBase64String(txtEncryptedData.Text)
txtDecryptedData.Text =
Encoding.ASCII.GetString(dp.Decrypt(dataToDecrypt, Nothing))
Catch ex As Exception
lblError.ForeColor = Color.Red
lblError.Text = "Exception.<br>" + ex.Message
Return
End Try
lblError.Text = ""
End Sub
Descifrando valores establecidos
en Config.Web
<appSettings>
<add key="connectionString"
value="AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAn5RQ1aAJME2AMmEpBWkVlg
QAAAACAAAAAAADZgAAqAAAABAAAACwMLkvl305PsddA94tM4E8AAAAAASAA
ACgAAAAEAAAAN+WvQ7eCbS3W3aZ1X8SEytIAAAAUwjfzcZvNVs4Bp439waR13/T
5tWYSdh/4nvuC1NO/0JWFrmW1ve19U6GPjxzxJo6QhUWdW8g0267d/GuUpZXnYD
WjuOl9gEnFAAAAA1H2b97Jaz4+YXpYthxSlDZXQLY" />
</appSettings>
En el archivo Web.Config
Descifrando valores establecidos
en Config.Web
Private Sub btnDecryptConfig_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnDecryptConfig.Click
Dim dp As New
DataProtector(DataProtector.Store.USE_MACHINE_STORE)
Try
Dim appSettingValue As String =
ConfigurationSettings.AppSettings("connectionString")
Dim dataToDecrypt() As Byte =
Convert.FromBase64String(appSettingValue)
txtDecryptedData.Text =
Encoding.ASCII.GetString(dp.Decrypt(dataToDecrypt, Nothing))
Catch ex As Exception
lblError.ForeColor = Color.Red
lblError.Text = "Exception.<br>" + ex.Message
Return
End Try
lblError.Text = ""
End Sub
DEMO
http://localhost/DPAPIClientWeb/WebForm1.aspx

Más contenido relacionado

Similar a DEMO_Encriptación_datos

Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerCloudAppi
 
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...SolidQ
 
Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...
Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...
Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...Cristian Mamani
 
Colombia Bootcamp Azure Key Vault.pptx
Colombia Bootcamp Azure Key Vault.pptxColombia Bootcamp Azure Key Vault.pptx
Colombia Bootcamp Azure Key Vault.pptxLuis Beltran
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corporacion de Industrias Tecnologicas S.A.
 
Seguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datosSeguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datosjosecuartas
 
Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)Raúl Requero García
 
Framework .NET 3.5 15 Configuración y despliegue de soluciones
Framework .NET 3.5 15 Configuración y despliegue de solucionesFramework .NET 3.5 15 Configuración y despliegue de soluciones
Framework .NET 3.5 15 Configuración y despliegue de solucionesAntonio Palomares Sender
 
Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3Fernando Redondo Ramírez
 
2018 cyberark evento cloud
2018   cyberark evento cloud2018   cyberark evento cloud
2018 cyberark evento cloudCSA Argentina
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securityseguridadelinux
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EECarlos Gavidia-Calderon
 
Asegúr@IT II - Seguridad En Iis7
Asegúr@IT II - Seguridad En Iis7Asegúr@IT II - Seguridad En Iis7
Asegúr@IT II - Seguridad En Iis7Chema Alonso
 
Symfony2 un framework para maximizar tu productividad en desarrollo web
Symfony2 un framework para maximizar tu productividad en desarrollo webSymfony2 un framework para maximizar tu productividad en desarrollo web
Symfony2 un framework para maximizar tu productividad en desarrollo webIEBSchool
 

Similar a DEMO_Encriptación_datos (20)

Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developer
 
Clase xiii
Clase xiiiClase xiii
Clase xiii
 
Aplicaciones Web Seguras (Anti-SQLi)
Aplicaciones Web Seguras (Anti-SQLi)Aplicaciones Web Seguras (Anti-SQLi)
Aplicaciones Web Seguras (Anti-SQLi)
 
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
 
Proteccion... 39887
Proteccion... 39887Proteccion... 39887
Proteccion... 39887
 
Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...
Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...
Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...
 
Colombia Bootcamp Azure Key Vault.pptx
Colombia Bootcamp Azure Key Vault.pptxColombia Bootcamp Azure Key Vault.pptx
Colombia Bootcamp Azure Key Vault.pptx
 
Temas owasp
Temas owaspTemas owasp
Temas owasp
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
Seguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datosSeguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datos
 
Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)
 
Seguridad
SeguridadSeguridad
Seguridad
 
Framework .NET 3.5 15 Configuración y despliegue de soluciones
Framework .NET 3.5 15 Configuración y despliegue de solucionesFramework .NET 3.5 15 Configuración y despliegue de soluciones
Framework .NET 3.5 15 Configuración y despliegue de soluciones
 
Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3
 
2018 cyberark evento cloud
2018   cyberark evento cloud2018   cyberark evento cloud
2018 cyberark evento cloud
 
OTN Tour 2015 AROUG
OTN Tour 2015 AROUGOTN Tour 2015 AROUG
OTN Tour 2015 AROUG
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_security
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EE
 
Asegúr@IT II - Seguridad En Iis7
Asegúr@IT II - Seguridad En Iis7Asegúr@IT II - Seguridad En Iis7
Asegúr@IT II - Seguridad En Iis7
 
Symfony2 un framework para maximizar tu productividad en desarrollo web
Symfony2 un framework para maximizar tu productividad en desarrollo webSymfony2 un framework para maximizar tu productividad en desarrollo web
Symfony2 un framework para maximizar tu productividad en desarrollo web
 

DEMO_Encriptación_datos

  • 1. Encriptación de datos Asegurando nuestra información
  • 2. Introducción Las aplicaciones Web muy a menudo necesitan almacenar datos sensibles, como las conexiones a las bases de datos o las credenciales de una cuenta de usuario en archivos de configuración. Por razones de seguridad, este tipo de información nunca debe ser almacenada en texto plano y siempre debe ser cifrada antes de su almacenamiento.
  • 3. Objetivos En este módulo aprenderemos a: • Utilizar la clase librería que encapsula las llamadas a la Data Protection API (DPAPI) contenida en “Crypt32.dll” para cifrar y descifrar datos. • Cifrar las cadenas de conexión y almacenarlas en el Web.config • Crear una aplicación Web para cifrar y descifrar datos.
  • 4. Requerimientos • Imports System.Text • Imports Dataprotection Las referencias a emplear son:
  • 5. Referencia y uso de Crypt32.dll para DPAPI Creación del proyecto Dataprotection que emplea la librería DPAPI Win32® Data Protection API (DPAPI). Una de las caracteristicas de DPAPI es que maneja las llaves de cifrado por nosotros.
  • 7. Cifrando cadenas Private Sub btnEncrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEncrypt.Click Dim dp As New DataProtector(DataProtector.Store.USE_MACHINE_STORE) Try Dim dataToEncrypt() As Byte = Encoding.ASCII.GetBytes(txtDataToEncrypt.Text) txtEncryptedData.Text = Convert.ToBase64String(dp.Encrypt(dataToEncrypt, Nothing)) Catch ex As Exception lblError.ForeColor = Color.Red lblError.Text = "Exception.<br>" + ex.Message Return End Try lblError.Text = "" End Sub
  • 8. Descifrando cadenas Private Sub btnDecrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecrypt.Click Dim dp As New DataProtector(DataProtector.Store.USE_MACHINE_STORE) Try Dim dataToDecrypt() As Byte = Convert.FromBase64String(txtEncryptedData.Text) txtDecryptedData.Text = Encoding.ASCII.GetString(dp.Decrypt(dataToDecrypt, Nothing)) Catch ex As Exception lblError.ForeColor = Color.Red lblError.Text = "Exception.<br>" + ex.Message Return End Try lblError.Text = "" End Sub
  • 9. Descifrando valores establecidos en Config.Web <appSettings> <add key="connectionString" value="AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAn5RQ1aAJME2AMmEpBWkVlg QAAAACAAAAAAADZgAAqAAAABAAAACwMLkvl305PsddA94tM4E8AAAAAASAA ACgAAAAEAAAAN+WvQ7eCbS3W3aZ1X8SEytIAAAAUwjfzcZvNVs4Bp439waR13/T 5tWYSdh/4nvuC1NO/0JWFrmW1ve19U6GPjxzxJo6QhUWdW8g0267d/GuUpZXnYD WjuOl9gEnFAAAAA1H2b97Jaz4+YXpYthxSlDZXQLY" /> </appSettings> En el archivo Web.Config
  • 10. Descifrando valores establecidos en Config.Web Private Sub btnDecryptConfig_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecryptConfig.Click Dim dp As New DataProtector(DataProtector.Store.USE_MACHINE_STORE) Try Dim appSettingValue As String = ConfigurationSettings.AppSettings("connectionString") Dim dataToDecrypt() As Byte = Convert.FromBase64String(appSettingValue) txtDecryptedData.Text = Encoding.ASCII.GetString(dp.Decrypt(dataToDecrypt, Nothing)) Catch ex As Exception lblError.ForeColor = Color.Red lblError.Text = "Exception.<br>" + ex.Message Return End Try lblError.Text = "" End Sub