Logo Studenta

Seguridad en Sistemas de Información Practica 2

¡Este material tiene más páginas!

Vista previa del material en texto

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
FACULTAD DE ESTUDIOS SUPERIORES CUAUTITLÁN 
Ingeniería en Telecomunicaciones, Sistemas y Electrónica
Seguridad en Sistemas de Información
 Grupo: 1909 
Practica No.2
“Encriptar contraseña con php usando función PASSWORD_BCRYPT”
Fecha De Entrega: 27/08/2018
Profesora: Carla Pamela Solano
Alumno: Jorge Antonio Jimenez Bernal
Semestre 2019-1
OBJETIVO:
Mediante lenguaje PHP y haciendo uso de una base de datos implementada en MySQL , crear un formulario de registro de usuarios y encriptar su contraseña.
DESARROLLO:
1.-En el panel de control de XAMPP se iniciaron los servicios de Apache y MYSQL
2.-En el directorio C:\xampp\htdocs se creo el primer archivo de tres , llamado perfill.htm. Este archivo contiene como tal el formulario a llenar, que se muestra a continuacion
Al mirar en el navegador en localhost\perfill.html , tenemos lo siguiente:
2.- Una vez creado el primer archivo , el siguiente sera llamado registroo.php .Este ayuda a registrar los datos que ingresaremos en el formulario a la tabla perfilusuarios de la base de datos llamada login que se creara posteriormente, concretamente en
$pdo=new PDO ('mysql:host=localhost;dbname=login',$user='root',$p='');
debajo de esta linea , se asignan a avariables los datos que vaya ingresando el usuario y se envian al campo correspondiente dentro de la base de datos :
3.-El ultimo archivo se llama veriff.php , y como todos los anteriores esta ubicado en C:\xampp\htcdocs , y contiene una funcion que encripta la contraseña mediante las funciones "password_hash y PASSWORD_BCRYPT"
4.-Una vez creados los archivos anteriores tenemos que proceder a crear una base de datos en MYSQL con el fin de que los datos sean almacenados en ella , para ello abriremos una ventana de consola con provilegios de administrador y nos dirigimos a la carpeta C:\xampp\mysql\bin
Una vez ahí , escribimos: mysql -u root -p , nos pedira la contraseña d ela cuenta “root” , como no esta definida , simplemente presionamos enter
Una vez presionado enter , debemos crear la base de datos ,seleccionarla y crear la tabla donde se guardaran los datos del formulario.
Se muestra a continuacion el codigo para crear la base de datos (simplemente se escribe en la consola y al final presionamos enter):
create table if not exists `login`.`perfilusuarios`
(`id` int(8) not null,
`nombre` varchar(50) not null,
`apellido` varchar(50) not null,
`correo` varchar(50) not null,
`usuario` varchar(50),
`password` varchar(50) not null,
primary key (`id`))
engine=innodb;
5.-Una vez creada la base de datos registramos algun usuario , en este caso a “Brandon” “Lopez” , con correo “brandoloper@yahoo.com “ id “01800” usuario “brandon” y contraseña “contraseña”.Para confirmar damos click en “Alta”
Una vez dado click en alta , nos muestra la siguiente pantalla
Y agregamos otro usuario mas para comprobar que funcione correctamente , al final , para ver los datos que se han ingresado , regresamos a nuesra consola y hacemos una consulta simple:
Y efectivamente vemos los dos datos que acabamos de ingresar , pero no podemos ver la contraseña ya que por seguridad , esta se encuentra encriptada.
CONCLUSIONES
Durante esta practica se manejo la conexión de una pagina web con una base de datos , de forma que la pagina , en este caso una forma de registro de alumnos , alimente nuestra base de datos , ademas tener la seguridad de que unicamente el ususario va a conocer su contraseña , brindando mayor privacidad .
PREGUNTAS
-¿Qué es criptografía y criptología?, ¿Cuál es la diferencia entre una y otra?
La criptología (del griego krypto: 'oculto' y logos: 'estudio') es, tradicionalmente, la disciplina que se dedica al estudio de la escritura secreta, es decir, estudia los mensajes que, procesados de cierta manera, se convierten en difíciles o imposibles de leer por entidades no autorizadas.
La palabra Criptografía proviene del griego "kryptos" que significa oculto, y "graphia", que significa escritura, y su definición según el dicccionario es "Arte de escribir con clave secreta o de un modo enigmático". La Criptografía es una técnica, o más bien un conjunto de técnicas, que originalmente tratan sobre la protección o el ocultamiento de la información frente a observadores no autorizados.
La diferencia entre una y otra , es que la Criptologia es la ciencia o el estudio , y la criptografia es una tecnica o conjunto de tecnicas para proteger informacion de otros.
-¿Qué es el cifrado? 
El cifrado es la práctica de codificar y decodificar datos. Cuando los datos están cifrados, se les ha aplicado un algoritmo para codificarlos, de manera que dejan de estar en su formato original y, por consiguiente, no se pueden leer. Los datos solo se pueden decodificar a su forma original aplicando una determinada clave de descifrado.
-¿Para qué nos sirve utilizarlo? 
Las técnicas de codificación son una parte importante de la seguridad de los datos, ya que protegen la información sensible contra amenazas como la explotación mediante malware y el acceso no autorizado de terceros. El cifrado de datos es una solución de seguridad versátil: puede aplicarse a datos como una contraseña, o de forma más amplia, a datos de un archivo o incluso a datos contenidos en medios de almacenamiento.
FUNCIONES/CONCEPTOS INVESTIGADOS:
-Lenguaje PHP .- PHP (acrónimo recursivo de PHP: Hypertext Preprocessor) es un lenguaje de código abierto muy popular especialmente adecuado para el desarrollo web y que puede ser incrustado en HTML.
-POST.- Nos permite recuperar datos enviados desde formularios con el método POST.
-include .- Esta palabra reservada significa que dentro del archivo , se va a incluir una librería/encabezado dentro del cual estan las funciones que se requieren
-try / catch.- Estructura empleada para capturar excepciones (errores) y entonces ejecutar codigo , en vez de que el programa se cierre
-PDO.-La extensión Objetos de Datos de PHP (PDO por sus siglás en inglés) define una interfaz ligera para poder acceder a bases de datos en PHP. Cada controlador de bases de datos que implemente la interfaz PDO puede exponer características específicas de la base de datos, como las funciones habituales de la extensión.
-setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION) .-Establece un atributo en el manejador de la base de datos de Reporte de Errores que Lanza exceptions.
-exec('SET NAMES "utf8"').-Con esta instrucción nos aseguramos que la codificacion sea la UTF-8 y asi podamos usar todos los caracteres especiales (acento , dieresis , comillas dobles etc..)
-prepare.-Prepara una sentencia para su ejecución y devuelve un objeto sentencia
-execute.- Ejecuta una consulta preparada
-bindValue.- Vincula un valor a un parámetro
-PDOException.- Representa un error generado por PDO. No se debería lanzar una PDOException desde el código
-getMessage().- Devuelve el mensaje y el codigo de la excepcion ocurrida
-strlen.-Obtener la longitud de una cadena de texto
-cost.- Define la potencia del cifrado , por defecto es 10 , pero puede ser incluso mayor si se tiene un buen hardware
-var_dump.- Obtiene informacion acerca de una variable determinada
-password_verify.-Valida que la contraseña coincida con su hash
-password_hash.-Crea un hash de una contraseña
-PASSWORD_BCRYPT.- Usa el algoritmo CRYPT_BLOWFISH para crear el hash. Esto producira un hash compatible con  crypt() usando el identificador "$2y$" . El resultado siempre sera un string de 60 careacteres, o FALSE en caso de error
FUENTES CONSULTADAS (Todas el 27/08/2018) :
http://www.dma.fi.upm.es/recursos/aplicaciones/matematica_discreta/web/aritmetica_modular/criptografia.html
http://www.criptohistoria.es/index.html
https://latam.kaspersky.com/resource-center/definitions/encryption
https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=580:post-php-procesar-datos-de-un-formulario-html-ejercicios-resueltos-y-ejemplos-sencillos-cu00834b&catid=70&Itemid=193
http://php.net/manual/es/

Continuar navegando