Instituto Tecnológico Superior de Zacapoaxtla. Ingeniería Informática. IINF MANUAL DE PRÁCTICAS. Asignatura: Seguridad Informática

Instituto Tecnológico Superior de Zacapoaxtla. Ingeniería Informática. IINF-2010-220 MANUAL DE PRÁCTICAS. Asignatura: Seguridad Informática. Clave de la asignatura: IFC-1021
 Elaboró: M.S.C Luis Alberto Espejo Ponce 1 INTRODUCCIÓN .................................................................................................................................... 3 PRACTICA 1 .......................................................................................................................................... 4 ENCRIPTACIÓN EN JAVA. ................................................................................................................................ 4 PRACTICA 2. ......................................................................................................................................... 7 ENCRIPTACIÓN EN SQL SERVER. ...................................................................................................................... 7 PRÁCTICA 3. ....................................................................................................................................... 12 CONFIGURACIÓN SERVIDOR SSL. ................................................................................................................... 12 2 Introducción La asignatura de Seguridad Informática se encuentra estructurada de tal manera que el aprendizaje sea evolutivo en el conocimiento adquirido iniciando con los conceptos básicos de seguridad y las principales amenazas a las que se encuentran expuestos nuestros activos informáticos, posteriormente la asignatura nos permitirá conocer las directrices o temas actuales relacionados con la Seguridad que permitan conocer y tener la habilidad de aplicarlas de acuerdo a las necesidades de cada organización. El presente manual muestra unas practicas en las que el alumno desarrolla el conocimiento implementando mecanismos de seguridad informática como encriptación en lenguajes de programación y bases de datos, además de implementar un servidor web con seguridad SSL. 3 Practica 1 Encriptación en Java. Objetivo: Identifica y comprende el uso de clases para la encriptación de datos en el lenguaje de programación Java. Introducción. La plataforma de Java incorpora muchos mecanismos para implementar seguridad tanto en la comunicación segura, control de acceso, autentificación y criptografía, esta última incorpora esta funcionalidad utilizando dos APIs. JCA – Java Cryptography Architecture. JCE – Java Cryptography Extension. EL la siguiente practica el alumno realiza la captura de un código que incorpora la librería java.security y utiliza una encriptación con el algoritmo MD5 del texto “123” y “hola” para que se pueda observar la salida al momento de realizar la encriptación. Material • • • Equipo de computo con sistema operativo Windows Software IDE para programar en java (Netbeans JCreator) JDK 1.8 Desarrollo Paso 1 Abrir el software IDE que tengan instalado Netbens o JCreator y capturar el siguiente código el cual implementa una encriptación del texto “123” y Hola. import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class TestEncriptarMD5 { private static final char[] CONSTS_HEX = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' }; 4 public static String encriptaEnMD5(String stringAEncriptar) { try { MessageDigest msgd = MessageDigest.getInstance("MD5"); byte[] bytes = msgd.digest(stringAEncriptar.getBytes()); StringBuilder strbCadenaMD5 = new StringBuilder(2 * bytes.length); for (int i = 0; i < bytes.length; i++) { int bajo = (int)(bytes[i] & 0x0f); int alto = (int)((bytes[i] & 0xf0) >> 4); strbCadenaMD5.append(CONSTS_HEX[alto]); strbCadenaMD5.append(CONSTS_HEX[bajo]); } return strbCadenaMD5.toString(); } catch (NoSuchAlgorithmException e) { return null; } } public static void main(String args[]) { System.out.println("\n\nEncriptacion en MD5 de 123: '"+encriptaEnMD5("123")+"'"

3 downloads 53 Views 669KB Size

Story Transcript

Instituto Tecnológico Superior de Zacapoaxtla. Ingeniería Informática. IINF-2010-220 MANUAL DE PRÁCTICAS.

Asignatura: Seguridad Informática. Clave de la asignatura: IFC-1021
 Elaboró: M.S.C Luis Alberto Espejo Ponce

1

INTRODUCCIÓN .................................................................................................................................... 3 PRACTICA 1 .......................................................................................................................................... 4 ENCRIPTACIÓN EN JAVA. ................................................................................................................................ 4 PRACTICA 2. ......................................................................................................................................... 7 ENCRIPTACIÓN EN SQL SERVER. ...................................................................................................................... 7 PRÁCTICA 3. ....................................................................................................................................... 12 CONFIGURACIÓN SERVIDOR SSL. ................................................................................................................... 12

2

Introducción La asignatura de Seguridad Informática se encuentra estructurada de tal manera que el aprendizaje sea evolutivo en el conocimiento adquirido iniciando con los conceptos básicos de seguridad y las principales amenazas a las que se encuentran expuestos nuestros activos informáticos, posteriormente la asignatura nos permitirá conocer las directrices o temas actuales relacionados con la Seguridad que permitan conocer y tener la habilidad de aplicarlas de acuerdo a las necesidades de cada organización. El presente manual muestra unas practicas en las que el alumno desarrolla el conocimiento implementando mecanismos de seguridad informática como encriptación en lenguajes de programación y bases de datos, además de implementar un servidor web con seguridad SSL.

3

Practica 1 Encriptación en Java. Objetivo: Identifica y comprende el uso de clases para la encriptación de datos en el lenguaje de programación Java. Introducción. La plataforma de Java incorpora muchos mecanismos para implementar seguridad tanto en la comunicación segura, control de acceso, autentificación y criptografía, esta última incorpora esta funcionalidad utilizando dos APIs. JCA – Java Cryptography Architecture.

JCE – Java Cryptography Extension. EL la siguiente practica el alumno realiza la captura de un código que incorpora la librería java.security y utiliza una encriptación con el algoritmo MD5 del texto “123” y “hola” para que se pueda observar la salida al momento de realizar la encriptación. Material • • •

Equipo de computo con sistema operativo Windows Software IDE para programar en java (Netbeans JCreator) JDK 1.8

Desarrollo Paso 1 Abrir el software IDE que tengan instalado Netbens o JCreator y capturar el siguiente código el cual implementa una encriptación del texto “123” y Hola. import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class TestEncriptarMD5 { private static final char[] CONSTS_HEX = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' };

4

public static String encriptaEnMD5(String stringAEncriptar) { try { MessageDigest msgd = MessageDigest.getInstance("MD5"); byte[] bytes = msgd.digest(stringAEncriptar.getBytes()); StringBuilder strbCadenaMD5 = new StringBuilder(2 * bytes.length); for (int i = 0; i < bytes.length; i++) { int bajo = (int)(bytes[i] & 0x0f); int alto = (int)((bytes[i] & 0xf0) >> 4); strbCadenaMD5.append(CONSTS_HEX[alto]); strbCadenaMD5.append(CONSTS_HEX[bajo]); } return strbCadenaMD5.toString(); } catch (NoSuchAlgorithmException e) { return null; } } public static void main(String args[]) { System.out.println("\n\nEncriptacion en MD5 de 123: '"+encriptaEnMD5("123")+"'"); System.out.println("Encriptacion en MD5 de hola: '"+encriptaEnMD5("hola")+"'"); } }

Paso 2. Después de capturar el código comprobar su funcionalidad. ¿Cuál fue el resultado de la salida en pantalla para e texto “123”? __________________________________________________________________ ¿Cuál fue el resultado de la salida en pantalla para e texto “Hola”? __________________________________________________________________ Paso 3. Modificar el código para que el programa permita la entrada de cualquier texto introducido por el usuario y permita la encriptación del mismo. Resultados. Con la siguiente practica el alumno identifica las clases y métodos para la implementación de criptografía de texto.

5

Conclusiones Bibliografía. Java Cryptography Architecture (JCA) Reference Guide. (2016). Docs.oracle.com. Retrieved 4 July 2016, from https://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html joseGC/Tutorial. (2016). GitHub. Retrieved 4 July 2016, from https://github.com/joseGC/Tutorial/blob/master/Encriptacion/src/Encriptar.java

6

Practica 2. Encriptación en SQL Server. Objetivo: Implementa estructuras de encriptación de información en el manejador de base de datos SQL Server. Material. • •

Equipo de computo con Sistema Operativo Windows 8 o superior Manejador de base de Datos SQL Server 2008 o superior

Introducción. La encriptación ha sido un elemento fundamental en la seguridad informática desde tiempos lejanos a la segunda guerra mundial, ya que protege información personal incluso importante de las empresas cifrándolos sin que nadie pueda robarla, manipularla o destruirla. El motor SQL producido por Microsoft es un sistema de gestión de bases de datos relacionales el cual emplea el lenguaje Transact-SQL. Tiene como características principales: Soporte de transacciones Capacidad de escalar, estabilidad y seguridad Entorno grafico de administración Uso de comandos DDL Y DML Utilizamos la función EncryptByPassPhrase para poder criptarlo de manera que nadie puede ver los datos, por ejemplo un usuario ingresa y quiere acceso a la base datos no podrá ver la contraseña del usuario y de los datos y por ultimo utilizaremos el DECRYPTBYPASSPHRASE para desencriptar según los datos que queramos en la base de datos. Uitlizando estas librerías 1.- Creamos la Base de Datos “Usuarios” como lo muestra la Fig-1.

EL CODIGO PARA HACERLO ES: CREATE

DATABASE Usuarios

Fig-1

7

2.- Después de crear la base de datos creamos la tabla Loggin con los campos Name y Pass Fig 2

Fig. 2

3.- Al terminar de crear la tabla con sus campos correspondientes, declaramos una variable que nos permite establecer nuestro texto a cifrar. Fig. 3

Fig. 3

8

4.- Llamamos a la variable contraseña y le asignamos el valor que deseamos para este ejemplo se establece el valor de “Contraseña”. 5.-Insertamos valor a la tabla “loggin” y encriptamos el valor de la variable contraseña con la instrucción ENCRYPTBYPASSPHRASE dentro de la instrucción Insert contraseña Fig. 4

Fig. 4 6.- Insertamos 4 registros a la tabla Loggin como se realizó en el paso 5 7.- Para verificar los valores insertados seleccionamos la tabla Loggin Fig 5.

Fig. 5.

9

8.- Como se observa en la figura 6 después de insertar varios registros el campo Pass muestra los registros de una forma encriptada.

Fig. 6

9 .- Para Des encriptar los valores almacenados en el campo Pass utilizamos el comando DECRYPTBYPASSPHRASE Fig 7.

Fig 7. Resultado al mostrar los datos de la tabla Loggin Fig. 8

Fig 8. Resultados:

10

Con el uso de las instrucciones ENCRYPTBYPASSPHRASE dentro del insert en consultas SQL dentro de navegador SQL Server se puede garantizar la seguridad de los datos almacenados en los campo de las tablas. Conclusiones.

Bibliografía. Andrews, C. (2003). SQL server security. New York: McGraw-Hill/Osborne. Gabillaud, J. (2010). SQL Server 2008. [Cornellà de Llobregat]: ENI.

11

Práctica 3. Configuración servidor SSL. Objetivo. Implementa y administra un servidor SSL mediante la herramienta OpenSSL para brindar seguridad a los servidores Web. Introducción. HTTPS es la versión segura del protocolo HTTP, inventada en 1996 por Netscape Communications Corporation. Es un protocolo dependiente de HTTP, consistiendo de una combinación de éste con un mecanismo de transporte SSL o TLS. SSL por sus siglas en Ingles Secure Sockets Layer (Capa de conexión segura) es un protocolo criptográfico empleado para conexiones seguras entre un cliente y un servidor de paginas WEB . En la actualidad el protocolo ha sido sucedido por TLS por sus siglas en inglés Transport Layer Security (Seguridad de la capa de transporte) pero existe una versión TLS 1.2 que corresponde a SSL 3.3 de ahí que refiere al protocolo TLS como SSL. Material. Computadora de escritorio o portátil con sistema Operativo Ubuntu Server 14.0. Desarrollo. Paso 1. Instalar el Software OpenSSL mediante la instrucción apt-get( en caso de no tener instalada la aplicación). -sudo apt-get install openssl Después de la instalación se debe generar una llave para la generación del certificado de seguridad. -openssl genrsa -out llave.key 1024. Para la generación de un certificado ssl se requiere de información de la empresa que se utiliza para crear un archivo CSR. -openssl req –new -key llave.key -out contenido.csr Una vez que se tiene el archivo llave y el archivo .csr procedemos a la generación del certificado.

12

openssl x509 -req -days 365 -in contenido.csr -signkey llave.key -out certificado.crt Antes de realizar los siguientes pasos es importante verificar que el programa de Apache se encuentre instalado en su servidor. Verificar si existe la carpeta /etc/apache2 De lo contrario deben instalar primero apache para poder continuar

Configurar Apache. Ubicar los archivos llave.key y certificado.crt para que los copien y les cambien en nombre en la carpeta /etc/ssl/certs. Utilizar el siguiente comando. sudo cp certificado.crt /etc/ssl/certs/ssl.crt sudo cp llave.key /etc/ssl/certs/ssl.key

Note que al copiar los archivos el nombre de estos cambia a ssl.crt y ssl.key. Posterior Habilitar el modulo SSL para apache. sudo a2enmod ssl

Ejemplo corriendo el comando. 13

Para aplicar los cambios en el servidor Apache debemos editar el archivo default-ssl.conf el cual se encuentra en la dirección /etc/apache2/sites.available. Comando para ingresar al archivo. sudo nano /etc/apache2/sites-available/default-ssl.conf

Al ingresar al archivo únicamente debemos cambiar las siguientes líneas. ServerName www.example.com

Colocar su nombre de dominio Colocar delante de estas líneas la ruta donde se crearon los archivos ssl.crt, ssl.key SSLCertificateKeyFile SSLCertificateFile

La siguiente imagen muestra como es el archivo default-ssl.conf líneas anteriores.

y como deben quedar las

ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www Options FollowSymLinks AllowOverride None Options -Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined SSLEngine on SSLCertificateKeyFile /etc/ssl/certs/ssl.key

14

SSLCertificateFile /etc/ssl/certs/ssl.crt #SSLCACertificateFile /etc/ssl/certs/bundle.crt BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 # MSIE 7 and newer should be able to use keepalive BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

Al terminar de editarlo deben guardar el archivo y salir. Para que los cambios tomen efecto habilitar el siguiente comando. sudo a2ensite default-ssl

Por último reiniciar el servicio de apache.

sudo service apache2 reload

Al terminar si desean comprobar su servidor apache deben colocar primero una dirección estática al servidor Ubuntu en el archivo interfaces ubicado en. /etc/network/interfaces. Comando. sudo nano /etc/network/interfaces. Al terminar de editar aplicar los cambios con sudo ifdown eth0 o sudo ifup eth0. Para comprobar dependiendo del tipo de configuración de la tarjeta de red de la maquina virtual deben colocar un equipo adicional o con su propio equipo. Abrir un navegador e ingresar en la barra de direcciones. https://Dirección_IP_del_servidor.

15

Si todo esta correcto les debe aparecer una pagina donde se visualiza un mensaje “Esta ingresando a un sitio no confiable ” deben presionar la opción de continuar entiendo los riesgos para visualizar correctamente su pagina web. Resultados. Al terminar de configurar el servicio se cuenta con un servidor Web seguro que garantiza una comunicación cliente servidor de forma encriptada. Conclusiones

Bibliografía.

Castro, P. (2016). TLS (antes SSL) es el protocolo que mantiene a Internet segura. About.com en Español. Retrieved 6 July 2016, from http://aprenderinternet.about.com/od/ConceptosBasico/a/Que-Es-Ssl.htm Configuración de Apache con soporte SSL/TLS. - Alcance Libre. (2016). Alcancelibre.org. Retrieved 6 July 2016, from http://www.alcancelibre.org/staticpages/index.php/como-apache-ssl Helmke, M. (2012). Ubuntu unleashed. Indianapolis, Ind.: Sams Pub.

16

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.