Diferencia entre revisiones de «IT/Sodium»

De SIU
Saltar a: navegación, buscar
(Debian 8 Jessie)
m (Instalación)
 
(No se muestran 10 ediciones intermedias de 2 usuarios)
Línea 54: Línea 54:
  
 
La instalación de todas las librerías requeridas varía de sistema operativo a sistema operativo. A continuación se expone algunos ejemplos habituales de instalación en sistemas Linux reconocidos.
 
La instalación de todas las librerías requeridas varía de sistema operativo a sistema operativo. A continuación se expone algunos ejemplos habituales de instalación en sistemas Linux reconocidos.
 +
* [[IT/Sodium/Debian|Instalando Sodium y PHP en Debian]]
  
=== Debian Linux ===
+
* Instalando en Ubuntu
{| class="wikitable"
 
!
 
!sodium en S.O.
 
!PHP
 
!libsodium en PHP
 
|-
 
|Debian 8
 
|1.0.11
 
|(0)
 
|(0) (1)
 
|-
 
|Debian 9
 
|''1.0.11''
 
|''7.0''
 
|''1.0.6''
 
|-
 
|Debian 10
 
|?
 
|?
 
|?
 
|}
 
Leyendas:
 
  
( x.x.x ) se ha probado su integración en dicha versión con los paquetes nativos
+
* Instalando en CentOS
 +
Toda contribución y/o mejora a la instalación así como versiones de los paquetes intervinientes más adecuadas a tal fin, es bienvenida!
  
( ? )        versión desconocida, no liberado aún
+
== Verificación ==
 +
El proceso de instalación de este soporte Sodium tanto a nivel de Sistema Operativo como a nivel PHP puede ser muy engorroso y propenso a multitud de errores. Debido a ello, a continuación se enumeran una serie de controles que pueden realizarse para verificar que se cuenta con el soporte adecuado.
  
( 0 )      es posible instalarlo vía [https://deb.sury.org/ deb.sury.org], repositorio externo de paquetes PHP  para Debian
+
=== Versión de PHP ===
 +
La forma mas simple de verificar la versión instalada por defecto en el S.O. es la de  utilizar la línea de comandos y ejecutar el comando <code>php -v</code>, que produce una salida similar a:
 +
[[Archivo:Php-version-cli.png|no|miniaturadeimagen|598x598px|Versión de PHP de CLI identificada como '''7.0.30''']]
  
( 1 )       es posible instalarlo vía PEAR, repositorio de extensiones PHP
+
icionalmente, como la versión de PHP que es ejecutada por Apache puede diferir, es necesario verificarla de forma manual. Para ello es posible crear un pequeño script que simplemente contenga <code><?php phpinfo(); ?></code>. Tendremos que colocarlo en el directorio <code>www</code> o similar del servidor Apache, y accederlo con el navegador web vía url, produciendo una salida similar a:
 +
[[Archivo:Version-php-apache.png|no|miniaturadeimagen|810x810px|Versión de PHP usada por Apache identificada como '''7.1.23''']]
  
=== Debian 8 Jessie ===
+
=== Versión de Sodium ===
Para esta versión de ''Debian'', no existen todos los paquetes oficialmente. Se han de recurrir a la configuración de repositorios externos, tales como [https://packages.sury.org/php/README.txt deb.sury.org] y a los [https://backports.debian.org/Instructions/ backports] del mismo Debian.
+
Como se conoce, [https://libsodium.org/ Sodium] es una librería disponible a nivel Sistema Operativo para realizar tareas de encriptación y desencriptación, signaturas, contraseñas, hash y más.  
  
Primero, agregar backports<syntaxhighlight lang="bash" enclose="div">
+
Para verificar su versión, nos referimos a la guía de instalación del S.O. en cuestión. Supongamos que hemos instalado vía apt el paquete libsodium-dev y libsodium18:
echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list.d/backports.list
+
[[Archivo:Sodium-s-o.png|no|miniaturadeimagen|610x610px|Versión 1.0.16 de los headers de libsodium a nivel S.O. (como para compilar extensión desde PECL)]]
  
apt update
+
=== Versión de Extensión Sodium en PHP ===
</syntaxhighlight>
+
La versión de la extensión Sodium para PHP es conocida como [https://pecl.php.net/package/libsodium libsodium] (en nuevas versiones, aparece como sodium directamente). Para verificar que tenemos configurada de forma adecuada la versión que requerimos, podemos verificarlo para PHP que se ejecuta desde CLI con el comando <code>php -i | grep sodium</code> y que produce una salida similar a:
 +
[[Archivo:Sodium-php-cli.png|no|miniaturadeimagen|476x476px|Versión de Sodium del S.O. 1.0.16 y de extensión PHP para CLI '''1.0.6''']]
  
Siguiente, se debe instalar la versión de Sodium del S.O. desde backports:<syntaxhighlight lang="bash" enclose="div">
+
Adicionalmente, es necesario verificar también a nivel Apache que extensión de Sodium para PHP disponemos. Para ello, en la misma página que nos muestra la salida de <code>phpinfo()</code> podremos ver algo similar a:
apt -t jessie-backports install libsodium18
+
[[Archivo:Sodium-php-apache.png|no|miniaturadeimagen|494x494px|Versión de Sodium del S.O. 1.0.16  y extensión PHP libsodium en Apache '''1.0.6''']]
</syntaxhighlight>
 
  
Luego, instalar la extensión para PHP de libsodium desde el repositorio PEAR:<syntaxhighlight lang="bash" enclose="div">
+
=== Verificar funciones de Sodium en PHP ===
pecl install -f libsodium-1.0.6
+
//TODO:
</syntaxhighlight>
 
 
 
Para finalizar, hay que asegurarse de que la extensión libsodium está cargada en PHP (la entrada '''extension=libsodium.so''' debe estar presente en el .ini)
 
 
 
=== Debian 9 Strech ===
 
Para esta versión de ''Debian'', la instalación es directamente de los paquetes oficiales disponibles en su repositorio.<syntaxhighlight lang="bash" enclose="div">
 
apt install libsodium18 php-libsodium
 
</syntaxhighlight><blockquote>Nota: esta versión, es la actualmente recomendada para la instalación de la plataforma '''SIU-Araí''', versión 2.0.</blockquote>
 
 
 
=== Debian 10 Buster ===
 
Esta versión de ''Debian'' es actualmente la versión testing y no soportada oficialmente.
 
  
 
[[IT|< Volver]]
 
[[IT|< Volver]]

Revisión actual del 20:08 29 oct 2018

Siu-arai iso.png


Sodium: librería para encriptación

Sodium es una librería de software moderna, fácil de usar, para la encriptación, desencriptación, signatures, password hashing y más. Al ser una librería estándar que se ha ganado su reconocimiento, se han implementado bindings en múchos lenguajes incluído para PHP.

De esta forma, las soluciones SIU hacen uso de Sodium mediante la librería Paragonie/Halite que facilita llevar adelante la implementación de diversas funciones.

Organización

Hay que comprender de forma precisa la organización de los componentes que nos permiten utilizar dicha librería, pues están muy correlacionados entre sí.

  • Sodium existe a nivel sistema operativo u S.O., es una librería en C que implementa todas las funciones de criptoanálisis
  • Sodium como extensión en PHP, permite acceder a la librería del S.O y hacer uso de las funciones de criptoanálisis
    1. existe una variante como extensión PECL
    2. existe como extensión ya embebida en el core de PHP
  • Paragonie/Halite, la librería hecha en PHP e integrada a los proyectos SIU. Es la que facilita el uso de diversos mecanismos de encriptación y protección, todos basados en Sodium

Versiones

A continuación se detalla la correlación entre las versiones de cada uno de los componentes, tanto con la versión de PHP como con la versión de la plataforma SIU-Araí. Los componentes principales de SIU-Araí lo validan explícitamente.

PHP libsodium en PHP sodium en S.O. SIU-Araí
Paragonie/Halite 1.6 5.6 - 7.0 - 7.1 1.0.6 a 1.0.7 1.0.6 o superior 2.0.0
Paragonie/Halite 3.x 7.0 - 7.1 - 7.2 2.0.4 a 2.0.10 1.0.9 o superior x
Paragonie/Halite 4.x 7.2 - 1.0.13 o superior x

Leyendas:

( x.x.x ) se ha probado su integración en dicha versión

( - ) integrada al core de PHP en la versión 7.2

( x ) no se ha hecho integración con la plataforma

Instalación

La instalación de todas las librerías requeridas varía de sistema operativo a sistema operativo. A continuación se expone algunos ejemplos habituales de instalación en sistemas Linux reconocidos.

  • Instalando en Ubuntu
  • Instalando en CentOS

Toda contribución y/o mejora a la instalación así como versiones de los paquetes intervinientes más adecuadas a tal fin, es bienvenida!

Verificación

El proceso de instalación de este soporte Sodium tanto a nivel de Sistema Operativo como a nivel PHP puede ser muy engorroso y propenso a multitud de errores. Debido a ello, a continuación se enumeran una serie de controles que pueden realizarse para verificar que se cuenta con el soporte adecuado.

Versión de PHP

La forma mas simple de verificar la versión instalada por defecto en el S.O. es la de utilizar la línea de comandos y ejecutar el comando php -v, que produce una salida similar a:

Versión de PHP de CLI identificada como 7.0.30

icionalmente, como la versión de PHP que es ejecutada por Apache puede diferir, es necesario verificarla de forma manual. Para ello es posible crear un pequeño script que simplemente contenga <?php phpinfo(); ?>. Tendremos que colocarlo en el directorio www o similar del servidor Apache, y accederlo con el navegador web vía url, produciendo una salida similar a:

Versión de PHP usada por Apache identificada como 7.1.23

Versión de Sodium

Como se conoce, Sodium es una librería disponible a nivel Sistema Operativo para realizar tareas de encriptación y desencriptación, signaturas, contraseñas, hash y más.

Para verificar su versión, nos referimos a la guía de instalación del S.O. en cuestión. Supongamos que hemos instalado vía apt el paquete libsodium-dev y libsodium18:

Versión 1.0.16 de los headers de libsodium a nivel S.O. (como para compilar extensión desde PECL)

Versión de Extensión Sodium en PHP

La versión de la extensión Sodium para PHP es conocida como libsodium (en nuevas versiones, aparece como sodium directamente). Para verificar que tenemos configurada de forma adecuada la versión que requerimos, podemos verificarlo para PHP que se ejecuta desde CLI con el comando php -i | grep sodium y que produce una salida similar a:

Versión de Sodium del S.O. 1.0.16 y de extensión PHP para CLI 1.0.6

Adicionalmente, es necesario verificar también a nivel Apache que extensión de Sodium para PHP disponemos. Para ello, en la misma página que nos muestra la salida de phpinfo() podremos ver algo similar a:

Versión de Sodium del S.O. 1.0.16 y extensión PHP libsodium en Apache 1.0.6

Verificar funciones de Sodium en PHP

//TODO:

< Volver