miércoles, 3 de junio de 2015

Compilar e Instalar Node.js y npm en Ubuntu 14.04

Probando con unos video-tutoriales de Laravel 5 (un framework en php muy elegante) me encontré con la necesidad de instalar node js en una maquina virtual que corre Ubuntu 14.04.

Si bien hay formas de instalar node.js como utilizando repositorios, no hay garantía de que sea la ultima versión porque node.js es bastante fresco y es actualizado muy rápido.

Primero descargamos las fuentes de la ultima versión estable (v0.12.4 a la hora de este escrito) desde el sitio de node.js esta ya incluye el gestor de paquetes npm
Creamos el directorio de instalacion
mkdir ~/src
cd ~/src


wget http://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz

Luego descomprimimos el paquete

tar -zxvf node-v0.12.4.tar.gz



Cambiamos al directorio de instalación y podremos ver los archivos de instalación con ls

cd node-v0.12.4
ls



Antes de compilar lo mas probable es que se necesiten las dependencias  nos ponemos como root:

sudo su
#apt-get update
#sudo apt-get install git-core curl build-essential openssl libssl-dev




Lo siguiente es compilar (va a tomar un par de minutos dependiendo de tu equipo):

# ./configure

# make



Al terminar se podrá ver algo similar a lo siguiente



# make install


Y si todo salio bien no mostrará ningún error


Podemos probar que node funciona tecleando node y luego escribiendo un poco de javascript.

node 
function pruebaNode(){
 console.log("Node funciona");
}
pruebaNode();


Y probar npm basta con (o simplemente npm)

sudo npm install -g javascripting


Y listo ya puedes trabajar con nodejs.

lunes, 1 de junio de 2015

Tecnologías de autenticación

Uno de los elementos mas importantes de la información (de las empresas y particulares) es la confidencialidad, es decir solo las personas autorizadas deben de tener acceso a la información necesaria.

Para esto es necesario autenticarse (o autentificarse, en inglés solo es "authenticate")

De manera sencilla podemos decir que autenticarse (para una persona) es probar de manera razonable que uno es quien dice ser.

Cuando entras a un edificio (donde tenes permiso de estar) y te piden tu identificación si no te conocen comprueban tu foto con tu cara y si se te pareces lo suficiente al que está en la foto te dejan pasar la mayoría de veces, o si les caes bien ;-).

En el caso de los sitios web también funcionan de una forma similar -de acuerdo es un poquito mas técnico y complicado- tu usuario es para saber quien sos y tu contraseña para poder comprobar de forma razonable que sos quien decís ser luego de dar tu usuario.

Luego de dar tu usuario y contraseña el sitio te deja acceder al contenido que tu usuario tiene permiso.

Los passwords/contraseñas por ejemplo son una tecnología muy antigua y mucho antes de que existieran computadoras y siempre han habido razones para que terceras personas no sepan un mensaje, desde preparar sorpresas, mantener romances prohibidos, ocultar planes de guerra.

Pero lo cierto es que utilizas tecnologías de autenticación mas de lo que se te podría ocurrir y de hecho muchas de estas tecnologías de autenticación están allí protegiéndote a cada momento, protegiendo tu privacidad creadas por gente muy ingeniosa.

Desde los sistemas de firma de documentos (probablemente una tecnología de autenticación muy obsoleta -dicen dale la vuelta a una firma y es mas fácil falsificarla, pero uno que sabe), pasando por los cajeros automáticos, las llaves y cerraduras de las casas de las personas, cifrados SSL con criptografía de curvas elípticas donde admito ya no es mi dominio

Y así pasamos a las tecnologías utilizadas para autenticación

Las formas de autenticarse consideran una o varias de las siguientes cosas: algo que sabes, algo que tenes y algo que sos.

Contraseñas:
La contraseña que te piden para entrar en un club, el pin de tu tarjeta de crédito, de tu correo, de tu facebook estas entran en la categoría de algo que sabes (o deberías saber, a veces uno pone las contraseñas y luego se te olvidan :-( )

Tu Documento de Identidad (algo que tenes): 
DNI, DUI, Licencia de Conducir, Pasaporte entre otros tienen un montón de datos personales que pueden ser comprobados en bases de datos gubernamentales y como sabemos es mala idea perderlos.

Firmas (algo que sabes -hacer?):
En teoría solo una persona es capaz de hacer su firma aunque ya mencionamos que siempre existe la posibilidad de falsificarla utilizada para dar validez a documentos legales (y probablemente arbitraria, hoy en día al dar clic en aceptar en términos y condiciones de usuarios también te ata legalmente según el país en el que te encontrés).

Biometrica (algo que sos) :
Utilizas uno o varios de tus rasgos físicos para comprobar tu identidad como huellas digitales, reconocimiento facial, reconocimiento de iris. Es probable que el smartphone, pc o laptop desde donde estés leyendo este articulo utilice algunas de estas tecnologías

Autenticación un solo factor: Solo considera uno de los 3 factores, solo ingresas tu usuario y contraseña para acceder a una red social (solo utilizas algo que sabes) o a tu correo y los passwords son algo debil y dificil de asegurar también recomendaría un gestor de contraseñas como lastpass, mucho mas practico que recordar todas las contraseñas.
 
Autenticación de múltiples factores: combinan 2 o mas de las 3 consideraciones:
  • Un cajero automático requiere que sepas el pin de tu tarjeta, pero también requiere tengas la tarjeta en tu mano para poder acceder a los fondos e información de tu cuenta.
  • Una red social que solicita un sms cuando ingresas tu contraseña, si no has habilitado autenticación de multiples factores e inicias sesión desde lugares desconocido o poco confiables es una buena idea activarla.
Como siempre acepto correcciones (gran admirador) y aclaraciones en los comentarios (y si hay tecnologías de autenticación interesantes también compartirlas con nosotros).

Photo credit: Dev.Arka / Foter / CC BY-ND