ADB – Android Debug Bridge

Es una herramienta puente que permite manejar el estado de nuestro smartphone Android conectándolo a nuestro ordenador con un cable. Con él podemos actualizar el sistema,  acceder en modo recovery, ejecutar comandos shell, copiar arhivos o borrar, administrar el direccionamiento de puertos.. Sólo se necesita que tengamos instalados en nuestro ordenador los drivers correctos para que se comuniquen entre ellos y exiten drivers ADB universales que se pueden instalar muy fácilmente y son compatibles con la mayoría de smartphones Android y versiones de Windows.

Lista de comandos básicos

Genymotion – Rápido simulador para Android

Es un rápido emulador de Android que permite ejecutar distintos dispositivos Android. Podemos ejecutar cualquier aplicación en Windows, Linux o Mac.

Utiliza máquinas virtuales x86 sobre Virtualbox con una interfaz sencilla para que el usuario pueda crear diferentes dispositivos y ejecutar así una app sobre ellos.

Se integra sin problemas con el ADB (Android Debug Bridge) y permite emular aplicaciones desarrolladas bajo Eclipse o Android Studio.

Para usarlo deberás registrarte y descargar genymotion-x.x.x-vbox

https://www.genymotion.com/

Seguridad a tu aplicación web – Certificado digital

Para poder dar mayor seguridad a tu aplicación web la idea es que todos los datos que se envíen vayan cifrados. Para ello vamos a configurar el protocolo SSL con apache que usa certificados digitales para establecer comunicaciones seguras a través de Internet. Permite confiar información personal a sitios web, porque los datos se ocultan a través de métodos criptográficos mientras navegas. Se suele usar en tiendas online, pasarelas bancarias y cualquier tipo de servicio web donde se envíen datos personales o contraseñas.

Al cifrar los datos se transforma la información para que sólo el poseedor de la clave pueda entenderla. Existen un dos “llaves” pública y privada y están asociadas a una persona o entidad y generadas mediante métodos criptográficos. La llave pública es usada para cifrar la información y la llave privada se usa para descifrar y sólo la posee la persona autorizada.

Lo que vamos a hacer es crear un certificado digital SSL autofirmado, el cual, el navegador no reconocerá mostrando una advertencia al usuario y este certificado es enviado a el cliente por el servidor con quien vamos a establecer una conexión segura vía HTTPS.

El certificado digital garantiza la vinculación entre una persona o entidad con su llave pública. Contiene el nombre de su propietario, dirección, correo electrónico, organización a la que pertenece y su llave pública, e información del certificado: periodo de validez, número de serie único, nombre de la AC que emitió, firma digital de la AC cifrada con su llave privada..

Lo normal es que este certificado lo genere una Autoridad Certificadora (Verisign, Thawte, Comodo, etc…) que es una entidad confiable que se encarga de garantizar que el poseedor de un certificado digital sea quien dice ser, bridando confianza a ambas partes de una comunicación segura SSL/TLS.

IDEA:

1) El navegador solicida al servidor que se identifique
2) El servidor presenta un certificado digital para identificarse
3) Para que el navegador confíe en el servidor realiza unas pruebas verificando la validez del certificado
4) Un vez que comprueba que es válido establece la comunicación cifrada.

CONFIGURACIÓN:

1) Instalar OpenSSL

apt-get install openssl

2) Generar una clave privada

La clave o llave privada es útil para generar el certificado. Una vez creado, el certificado SSL dependerá de esta clave para la implementación del mismo en cualquier servicio que requiera una conexión segura. Vamos a crear una clave privada RSA de 1024 bits usando triple DES:

opnessl genrsa -des3 -out servidor.key 1024

Quitamos la contraseña para que no la pida por si reiniciamos apache.

mv servidor.key servidor.key.old
openssl rsa -in servidor.key.old -out servidor.key

Enter pass phrase for servidor.old.key:
writing RSA key

3) Crear un CSR (Certificate Signing Request)

Un CSR es la base para un certificado SSL, en el se definen datos como el dominio, organización, ubicación, información de contacto, entre otros.

openssl req -new -key servidor.key -out servidor.csr

Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) AU:ES
State or Province Name (full name) Some-State:Madrid
Locality Name (eg, city) []:Madrid
Organization Name (eg, company) Internet Widgits Pty Ltd:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:
#No pongas nada en lo siguiente
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []:
An optional company name []:

4) Generar el certificado SSL:

Para generar el certificado SSL vamos a necesitar tanto la llave privada como el CSR que acabamos de crear.

openssl x509 -req -days 365 -in servidor.csr -signkey servidor.key -out servidor.crt

Creamos la carpeta /etc/apache2/ssl y copiamos los ficheros allí.

Copiamos los archivos a la carpeta en /etc/apache2/ssl o en /etc/ssl/certs (aquí están todos los certificados).

cp servidor.crt /etc/apache2/ssl/servidor.crt
cp servidor.key /etc/apache2/ssl/servidor.key

5) Configurar el certificado SSL en Apache:

Habilitamos el módulo de SSL en Apache:

a2enmod ssl

Revisar que este descomentado la entrada que hace referencia el puerto 443 en el fichero “/etc/apache2/ports.conf”

Editar el fichero “/etc/apache2/sites-available/default-ssl” , y configurar según tu instalación y añades el apartado “configuración ssl”:

# Configuracion SSL
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/servidor.crt
SSLCertificateKeyFile /etc/apache2/ssl/servidor.key
#Fin configuracion SSL

(No olvides sustituir www.example.com por tu dominio.)

Una vez configurado el certificado lo habilitamos:

a2ensite default-ssl

Para que la configuración surja efecto reiniciamos el servicio:

service apache2 reload

Ya debería estar el certificado SSL configurado y funcionando.

Si hay algún error de puede ver en /var/log/apache2/error.log.

Espero que os haya ayudado… 😉