4 Findings and discussion
4.4 Analysis of reporting since 7/7
El software Emby permite utilizar nuestro propio certificado utilizando el formato PFX (Personal inFormation eXchange)((intercambio de informaci´on personal))para la conexi´on HTTPS.
La empresa baraj´o la posibilidad de comprar un certificado para el servidor por lo que antes de realizar la compra se realizaron algunas comprobaciones generando un certificado autofirmado.
Antes de generar el certificado, lo primero que se tuvo que hacer fue instalar OpenSSL ya que en el PC de trabajo no estaba instalado. Despu´es, una vez instalado OpenSSL, se ejecuta OpenSSL para la generaci´on del certificado:
C:\OpenSSL-Win32\bin>OpenSSL
Con el siguiente comando se genera un certificado autofirmado:
OpenSSL> req -new -x509 -nodes -days 365 -keyout llavePrivada.key -out certificado.crt
req: Especifica un subcomando para la solicitud de certificado.
-new: Especifica que se va a hacer una nueva solicitud.
-x509: Esta opci´on especifica que queremos hacer un archivo de certificado autofirmado.
-nodes: Esta opci´on especifica no queremos asegurar nuestro archivo de llave privada con una con- trase˜na. Esto se hace por conveniencia ya que, de lo contrario, habr´ıa que introducir la contrase˜na cada vez que se reinicia el servidor que utiliza dicho certificado y esto entorpecer´ıa la administraci´on del servidor.
-days: Esta opci´on sirve para especificar el n´umero de d´ıas que ser´a v´alido el certificado que estamos creando. En este caso tendr´a validez durante 365 d´ıas.
-keyout: Esta opci´on sirve para especificar el nombre del archivo para la llave privada que se est´a creando. En este caso el nombre ser´a “llavePrivada.key”.
-out: Esta opci´on sirve para especificar el nombre del archivo del certificado que se est´a generando. En este caso el nombre ser´a “certificado.crt”.
Ejecutando este comando tambi´en se genera una llave privada de 2048 bits utilizando RSA (Rivest, Shamir y Adleman), un sistema criptogr´afico de llave p´ublica, es el algoritmo m´as utilizado para cifrar.
A continuaci´on, deberemos rellenar los detalles con los que contar´a el certificado:
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Castellon Locality Name (eg, city) []:Villarreal
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Villarreal C. F. Organizational Unit Name (eg, section) []:Departamento Informatica
Common Name (eg, YOUR name) []:https://84.124.12.69:8920 Email Address []:[email protected]
El punto m´as importante que se solicita es el campo “Common Name”. Donde se debe introducir el nombre del dominio que desea asociar con el certificado. En este caso, todav´ıa no se dispon´ıa de dominio por lo que se introdujo la direcci´on IP p´ublica del servidor 84.124.12.69 y el n´umero del puerto HTTPS 8920.
Una vez completados los datos anteriores se obtiene un certificado autofirmado (certificado.crt) y una llave privada (llavePrivada.key).
El formato PFX, al igual que el formato PKCS12 (Public-Key Cryptography Standards)((est´andares de criptograf´ıa de llave p´ublica)), es un formato binario que almacena el certificado y la llave privada de forma encriptada. A continuaci´on se muestra el comando utilizado para la obtenci´on del objeto PFX:
OpenSSL> pkcs12 -export -in certificado.crt -inkey llavePrivada.key -out servidorPKCS12.pfx - nodes
pkcs12: Especifica un subcomando para la solicitud de un objeto PKCS12.
-export: Especifica que se van a exportar elementos.
-in : Esta opci´on sirve para especificar el nombre del archivo del certificado autofirmado que se quiere exportar. En este caso “certificado.crt”.
-inkey : Esta opci´on sirve para especificar el nombre del archivo de la llave privada que se quiere exportar. En este caso “llavePrivada.key”.
-out: Esta opci´on sirve para especificar el nombre del archivo del objeto PFX que se est´a generando. En este caso el nombre ser´a “servidorPKCS12.pfx”.
Despu´es de ejecutar este comando pedir´a que se introduzca una contrase˜na para proteger al objeto PFX ya que este a parte del certificado tambi´en contiene una llave privada. Para este caso tampoco se introduce contrase˜na ya que si se hace, el servidor no tendr´a acceso a la llave privada ni al certificado.
La llave privada junto con el objeto PFX, al no estar protegidos con contrase˜na se deben proteger con los permisos del sistema operativo del servidor.
La figura 5.14 muestra como, una vez generado el objeto PFX, se instala en el software de servidor. Despu´es de la instalaci´on del certificado se reinicia el servidor. Para comprobar que el certificado se ha instalado de manera correcta, se intenta acceder al servidor desde dos navegadores web diferentes, Mozilla Firefox y Google Chrome.
Al intentar acceder a la direcci´on https://84.124.12.69:8920utilizando cualquiera de los dos nave- gadores, se advierte que no se conf´ıa en el certificado del servidor ya que ´este est´a autofirmado y no est´a firmado por un CA de confianza. Aunque los navegadores hagan esa advertencia se puede acceder
Figura 5.14: Instalaci´on certificado
igualmente teniendo en cuenta el riesgo que conlleva. El riego est´a en que el otro miembro de la comuni- caci´on no sea qui´en dice ser ya que el certificado no est´a firmado por una CA de confianza que verifique su identidad. Tras realizar la confirmaci´on, se a˜nade la excepci´on en ambos navegadores para acceder pese a las advertencias.
Al ver los detalles del certificado en la figura 5.15 aparecen los datos con los que se hab´ıa generado. Adem´as tambi´en se puede apreciar que al tener el mismo CN (Common Name) tanto para el sujeto como para el emisor se trata de un certificado autofirmado.