Bienvenid@ a CryptoPHP

Introducción

La seguridad es un aspecto fundamental en todo tipo de aplicaciones, más si cabe en aquellas que transfieren información a través de redes cuyo control quedan fuera de las manos de los emisores y receptores durante una comunicación. El cifrado y descifrado de los datos, independientemente de cuál sea el canal de comunicación, ofrece a los interlocutores un alto nivel de seguridad.

PHP es el lenguaje más utilizado para el diseño de aplicaciones web de todo tipo, siendo ésta la razón de que lo hayamos elegido para estudiar los servicios criptográficos que ofrece.

Esta wiki tiene el objetivo de documentar temas relacionados con criptografía y el lenguaje PHP, tales como las bibliotecas OpenSSL, mcrypt o la interfaz entre PHP y el software criptográfico GnuPG, presente en todas las distribuciones de Linux y disponible también para otros sistemas operativos.

Objetivos

Inicialmente este sitio pretende documentar la biblioteca mcrypt que incorpora PHP, detallando por cada una de las funciones disponibles los puntos siguientes:

  • Nombre de la función y sintaxis de llamada.
  • Lista de parámetros de entrada y su significado.
  • Valor de retorno y su significado.
  • Explicación de la finalidad de la función.

Complementariamente a esta documentación se pretende preparar un ejemplo de uso que muestre cómo se invocaría a cada una de esas funciones en un programa.

Todas las distribuciones de Linux incorporan el software GnuPG, compatible con PGP y cuya interfaz de uso es habitualmente la consola de texto. Existe una extensión para PHP que actúa como interfaz entre este lenguaje y GnuPG, permitiendo utilizar parte de la funcionalidad de dicho software. El segundo objetivo de este sitio es documentar esa interfaz de la manera más detallada posible, ofreciendo también ejemplos prácticos de uso.

Finalmente se persigue facilitar una documentación clara sobre el uso de OpenSSL desde PHP, así como ofrecer un ejemplo real de uso desarrollando una aplicación completa, llamada CryptoPHP, que facilitará operaciones como la generación de claves, cifrado, firmado y descifrado de mensajes desde una interfaz web.

La aplicación CryptoPHP

Además de los ejemplos relativos a OpenSSL contenidos en esta wiki, que complementan la documentación sobre cada una de las funciones de esta extensión de PHP, el equipo de CryptoPHP ha desarrollado una aplicación algo más elaborada facilitando desde una interfaz web común las operaciones más habituales: generación de certificados, ya sea autofirmados o firmados por CryptoPHP; obtención de los datos de un certificado, cifrado y descifrado de datos, comprobación de firmas y generación de claves.

El código fuente de la aplicación, compuesto por una serie de módulos de código PHP combinado con HTML y CSS, puede instalarse en cualquier sistema en el que se disponga de un servidor web con PHP, el software OpenSSL y la correspondiente extensión que permite acceder a dicho software desde PHP. Éste es el objetivo principal de la aplicación, servir como base y ejemplo para cualquier programador que esté interesado en usar OpenSSL desde PHP.

También existe la posibilidad de probar el funcionamiento de CryptoPHP de manera inmediata, si bien el actual alojamiento de la aplicación es temporal y podría cambiar en un futuro.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License