Perfil
lunes, 18 de marzo de 2013
domingo, 17 de marzo de 2013
Mejora la fortaleza de tu contraseña
Contraseñas débiles y contraseñas fuertes
Una contraseña es una combinación de caracteres que nos sirve para acceder a un determinado servicio y verificar nuestra identidad puesto que, teóricamente, la contraseña es algo de carácter personal e intransferible. Si a la mala práctica de compartir nuestra contraseña, apuntarla en la última página de nuestro cuaderno o, directamente, escribirla en el post-it que tenemos pegado en la pantalla de nuestro ordenador, le sumamos la elección de una contraseña simple, corta o formada con palabras fáciles de averiguar, nuestra cuenta estará a merced de cualquiera con no muy buenas intenciones.
¿QuĂ© es una contraseña dĂ©bil? Podemos considerar una contraseña dĂ©bil a cualquiera que es vulnerable y, por tanto, susceptible de ser averiguada sin un esfuerzo muy grande. En este grupo podrĂamos incluir las contraseñas generadas por defecto (root/root, usuario/usuario, admin/123456, etc), contraseñas excesivamente frecuentes a pesar de su debilidad y que, por tanto, forman parte de listados y bibliotecas o contraseñas formadas con datos personales (fechas de nacimiento, nombres de familiares, mascotas, etc).
Por el contrario, una contraseña fuerte es una cadena larga de caracteres que o bien se han generado al azar o solamente el usuario es capaz de averiguar y, por tanto, intentar averiguarlas requiere mucho tiempo y carga computacional (poniĂ©ndoselo algo más difĂcil a un atacante).
Es sorprendente que, a pesar de los casos de robos de cuentas que han surgido en los últimos meses, exista gente que utilice contraseñas tan débiles como "123456", "qwerty" o "superman" (que por cierto tienen el dudoso honor de formar parte de las 25 peores contraseñas del año 2011).
La información de carácter personal
¿Por quĂ© no es recomendable utilizar informaciĂłn de carácter personal? Hoy en dĂa existen datos nuestros en mĂşltiples sitios web y, por ejemplo, en redes sociales como Facebook nuestra fecha de nacimiento o nuestras familiares (hermanos, pareja, etc) son algo visible en nuestro perfil si no hemos tomado las medidas oportunas para configurar correctamente nuestra cuenta. Si a esto le sumamos que pueden darse casos de que personas dentro de nuestro cĂrculo podrĂan querer acceder a nuestras cuentas, usar en nuestra contraseña datos que estĂ©n a su alcance puede ser contraproducente.
De todas formas, el peligro no está Ăşnicamente en la red o en nuestro cĂrculo de conocidos, a travĂ©s de la ingenierĂa social, alguien habilidoso que se hiciera pasar por un encuestador podrĂa sonsacarnos informaciĂłn que podrĂa ser utilizada para intentar averiguar las contraseñas que utilizamos.
Como comentaba no hace mucho un compañero de trabajo que, precisamente, trabaja en el campo de la seguridad de la información, hay que intentar evitar llegar a situaciones como ésta:
He perdido mi contraseña, tengo que cambiarle el nombre a mi perro
Los cimientos: caracteres, sĂmbolos y nĂşmeros
Para montar nuestra contraseña, como es lĂłgico, contamos con unos cimientos comunes: letras, sĂmbolos y nĂşmeros que debemos combinar adecuadamente y guardando un equilibrio entre fortaleza y capacidad de memorizar (porque si tenemos que apuntarla en un papel que podemos perder o nos pueden sustraer, todo el esfuerzo no servirá de nada).
Dependiendo del servicio en el que nos queramos registrar o cambiar la contraseña, seguramente encontraremos distintos criterios a la hora de ofrecer los tipos de caracteres que consideran admisibles y que, además, no tienen por qué coincidir con otros servicios. En términos generales contaremos con:
- Letras, tanto mayĂşsculas como minĂşsculas
- NĂşmeros
- SĂmbolos y caracteres especiales (aunque no todos los servicios los admiten): { } ( ) [ ] < > | \ / _ - + = ~ " ' ` * ^ ¿ ? ! @ % & # $
- Signos de puntuaciĂłn (, . : ;)
Combinaciones seguras
¿CĂłmo combinamos los caracteres disponibles para montar una contraseña segura? Para esto no hay una regla fija, puesto que las contraseñas son algo personal, aunque sĂ que podemos seguir una serie de pautas para generar una contraseña fuerte sin morir en el intento.
Para empezar, deberĂamos tener en cuenta una serie de máximas a la hora de formar nuestra contraseña:
- Mezclar como mĂnimo 3 grupos de caracteres o más, es decir, combinar mayĂşsculas, minĂşsculas, nĂşmeros y caracteres especiales.
- La longitud de la contraseña, como mĂnimo, deberĂa ser de 8 caracteres (aunque no excesivamente larga para no provocar rechazo en el uso)
- Minimizar el nĂşmero de repeticiones de caracteres o patrones o secuencias obvias (abcd, qazwsx, 23456, etc)
- Para facilitar el recordatorio podemos usar los nĂşmeros para sustituir letras y, por ejemplo, sustituir la letra 'o' por el '0' o la 'e' por el '3'
Una forma de generar nuestra contraseña podrĂa ser recurrir a algĂşn servicio web de generaciĂłn de contraseñas de manera aleatoria (Clave Segura, Contraseña.com, Generate Password, etc) pero puede que encontremos problemas a la hora de memorizar la secuencia por lo que tendremos que pensar en algo que podamos recordar.
Podemos empezar pensando en varias palabras que nos sean fáciles de recordar o en una frase completa, eliminar los espacios entre las palabras, insertar sĂmbolos como abreviaturas de palabras ('+' por 'mas'), introducir mayĂşsculas, sustituir algunas letras por nĂşmeros o insertar dĂgitos en mitad de la frase o al final. Otra posibilidad es pensar en una frase que sea fácil de recordar, quedarnos con las iniciales de cada palabra y usarla como raĂz de nuestra contraseña puesto que la completaremos cambiando algunas letras por mayĂşsculas y anexando caracteres especiales y dĂgitos.
Métodos de verificación
Muchos servicios y aplicaciones nos suelen indicar la fortaleza de nuestra contraseña cuando la estamos introduciendo (por ejemplo en Drupal) pero tambiĂ©n podemos medir la fortaleza de nuestras contraseñas con algunos servicios disponibles en la red y nos pueden servir de guĂa para mejorar nuestra combinaciĂłn de caracteres (como How Secure is my password? o el Password Strength Checker de Microsoft)
No hay que temer a estos servicios porque no almacenan la contraseña, calculan la fortaleza mientras la escribimos (gracias a un javascript) y, además, sin acompañarla de un nombre de usuario o un correo electrónico no sirven de mucho.
Pautas a tener en cuenta
Una vez nos acostumbremos utilizar contraseñas algo más fuertes, el siguiente paso es instaurar dentro de nuestra dinámica esta disciplina y, además, tener en cuenta lo siguiente:
- Nuestra contraseña es un bien muy preciado y abre la puerta a nuestro correo electrónico, nuestra cuenta bancaria, nuestro perfil en Facebook o Twitter; es decir, debemos mantenerla a buen recaudo.
- Es importante mantener una contraseña distinta para cada servicio que utilicemos o, como mĂnimo, añadir un sufijo que las diferencie (eso sĂ, que no sea demasiado evidente porque entonces quedaremos expuestos)
- Debemos cambiar nuestra contraseña con regularidad, por ejemplo, cada dos meses como muy tarde
- No reciclar en demasĂa las contraseñas, es decir, evitar su reutilizaciĂłn y siempre introducir alguna variaciĂłn se queremos volver a usarlas (nuevos dĂgitos, por ejemplo, pero sin llegar a usar una secuencia incremental "xxxx1" "xxxx2")
sábado, 16 de marzo de 2013
Calidad del Software (Niveles de Calidad)
Niveles de calidad
La calidad del software puede gestionarse a distintos niveles:
- A nivel de producto: cuando nos centramos en el proceso de desarrollo de software y hacemos una serie de pruebas en paralelo con cada etapa, para detectar y corregir los posibles defectos que puedan surgir.
- A nivel de proyecto: cuando nos centramos en controlar todas las fases y áreas de gestiĂłn de proyecto, implantando metodologĂas y mejores prácticas que aseguren la correcta gestiĂłn de las mismas.
- A nivel de proceso: cuando nos centramos en gestionar todas las áreas de proceso de una organizaciĂłn, mediante la implantaciĂłn de una metodologĂa. De esta forma se consigue tener mayor informaciĂłn de los procesos de modo que puedan controlarse y mejorarse, y produzcan asĂ, un aumento de la calidad de los productos y servicios relacionados con ellos.
Mejorar en algunos de los niveles implica la mejora en el resto, dado que en la realidad los niveles de producto, proyecto y proceso están interrelacionados, no siendo posible la mejora independiente de uno de ellos.
viernes, 15 de marzo de 2013
Empaquetar una aplicaciĂłn Java para distribuir, desde NetBeans
Uno de los tantos motivos por lo que utilizo NetBeans en lugar de otro IDE, es que utiliza la Apache Ant para compilar, crear .jar .war .ear, javadoc, etc.. prácticamente para todo, y solo usando un archivo .xml. Y lo mejor es que se puede personalizar el .xml a nuestro antojo.
En este post se va a explicar cĂłmo empaquetar una aplicaciĂłn Swing en un archivo .zip para ser distribuido a los usuarios finales.
¿QuĂ© hace NetBeans?
Si al hacer una aplicaciĂłn Swing con NetBeans utilizamos diversas bibliotecas adicionales, el IDE nos puede crear una carpeta lista para distribuir a los usuarios incluyendo todas los .jars necesarios. Para ello hacemos clic derecho sobre el Ăcono del proyecto y seleccionamos "Build" (o Clean and Build)
Al hacer esto, el NetBeans compila, y construye la carpeta "dist" para distribuir. Esta carpeta se encuentra en la misma carpeta del proyecto. Podemos verla en el panel "Files" del NetBeans (Teclas Ctrl+2)
Ahora bien ¿quĂ© hacemos con ese .jar? En el README.TXT lo explica. Pero NetBeans tambiĂ©n lo dice en el panel "Output" (Ctrl+4) despuĂ©s de construir la aplicaciĂłn.
"Para ejecutar esta aplicaciĂłn desde la lĂnea de comandos sin usar Ant, intente:..." y luego dice cuál es el comando que se tiene que hacer.
Si copiamos esa lĂnea, abrimos la ventana del SĂmbolo del Sistema, y pegamos esa instrucciĂłn para ejecutarlo, pues nos ejecutará la aplicaciĂłn sin problemas. Es más, se podrĂa copiar a los usuarios finales este directorio "dist" y decirles que si quieren ejecutarlo hagan esto: abrir una ventana del SĂmbolo del Sistema, escribir esa instrucciĂłn y listo.........creo que al usuario no le va a gustar hacer esto ¿Por quĂ© no mejor hacer un programa que al hacer doble clic ya se ejecutĂ©? Buena idea.
Creando un .bat
De por sĂ, se puede hacer doble clic al archivo .jar para ejecutar la aplicaciĂłn, pero funciona si es que en el computador del usuario no tiene algĂşn descompresor de archivos asociado a los archivos .jar. Por ejemplo, si se tiene instalado el WinRAR, al hacer doble clic sobre el archivo .jar, en lugar de que se ejecute, se abrirá el WinRAR y mostrará el contenido del .jar... esto no es lo que queremos. La mejor manera es crear un archivo .bat que haga la llamada al comando java -jar bla bla
Esto le podemos decir al NetBeans que lo haga. Para ello, entramos al panel "Files" (Ctrl+2) y buscamos el archivo
build.xml. Este es una extensiĂłn al .xml que utiliza el NetBeans para construir la aplicaciĂłn.
Abrimos este archivo, lo revisamos un poco (todo está comentado y hay algunas instrucciones) y pondremos el tag
<target name='-post-jar'/> que nos permitirá realizar una tarea después de que el NetBeans haya creado el .jar <target name="-post-jar"> <echo file="${dist.dir}/run.bat">java -jar ${application.title}.jar</echo> </target>
El tag de la tarea
<echo /> crea una salida a la consola, pero con el atributo file le estamos diciendo que la salida lo haga a un archivo. Para saber cuáles son los valores de las variables utilizadas en la construcción del proyecto, podemos revisar el archivo nbproject/project.properties.
Por ello utilicé las variables
dist.dir, application.title.
Ahora bien, hagamos un "Build" al proyecto y veamos lo que hizo en la carpeta
dist.
Y si vemos el contenido será justamente lo que hemos pensado. Abrimos una ventana del explorador de windows, y le damos doble clic al .bat. Listo, usuario satisfecho.
Pero.. sale una ventana negra fea con el comando de ejecuciĂłn de la aplicaciĂłn. Bueno, esto se puede solucionar. Podemos reemplazar la instrucciĂłn
<echo file="${dist.dir}/run.bat">java -jar ${application.title}.jar</echo>
Por
<echo file="${dist.dir}/run.bat">start javaw -jar ${application.title}.jar</echo>
El comando de Windows
start permite ejecutar una aplicaciĂłn y "soltarlo" para que se ejecute como un proceso más del Sistema Operativo. Y el comando javaw es un comando adicional al JRE que permite ejecutar una aplicaciĂłn java sin mostrar una ventana del SĂmbolo del Sistema.
Bien, ahora solo nos bastarĂa con copiar a los usuarios finales el .bat, el .jar y las bibliotecas adicionales so hubiera. Lo empaquetamos y se lo enviamos.
¿Hay un poco de flojera para comprimir los archivos? ¿y si me falta uno?
Creando un .zip
El Ant también permite comprimir archivos usando la tarea
<zip />. Es realmente fácil.
Creamos el siguiente tag después del
<echo />. <zip destfile="${dist.dir}/${application.title}.zip" basedir="${dist.dir}" />
Hagamos "Clean and Build" al proyecto, y listo, ya tenemos nuestro archivo .zip para enviar a los usuarios finales.
Y les decimos "Estimados bla bla bla, descompriman el achivo .zip para ejecutar la aplicaciĂłn".
¿TambiĂ©n tenemos flojera de enviar el mail a los usuarios?
:)DocumentaciĂłn
Si deseas conocer más tareas que vienen incluidas en el ANT, revisa la siguiente página.
- Apache Ant User Manual: http://ant.apache.org/manual/index.html
Ahà está la tarea
mailProyecto
Y como de costumbre, aquà está el proyecto utilizado en este ejemplo:
jueves, 14 de marzo de 2013
¿Por quĂ© no debemos usar la misma contraseña en todos los servicios que usamos?
El pasado fin de semana, Evernote vio comprometida la seguridad del servicio tras detectar una intrusiĂłn que habrĂa tenido acceso a nuestros nombres de usuario, correos electrĂłnicos y tambiĂ©n a las contraseñas aunque, afortunadamente, Ă©stas estaban cifradas. Como medida cautelar, Evernote decidiĂł forzar el reseteo de las contraseñas de todos los usuarios del servicio y, entre las recomendaciones que hicieron, comentaron la importancia de no usar la misma clave en todos los servicios en los que nos registremos. Para muchos usuarios, no tener que recordar un amplio nĂşmero de contraseñas es importante, máxime cuando cada vez son más los servicios disponibles en la red; sin embargo, a pesar de que nos facilitarĂa mucho las cosas ¿por quĂ© no debemos usar la misma contraseña en todos los servicios que usamos?
Para muchos usuarios, seguramente, la respuesta a esta pregunta es más que evidente y no necesiten ningĂşn tipo de explicaciĂłn; sin embargo, existe un buen nĂşmero de usuarios que repiten y repiten la misma contraseña en Facebook, Twitter, Evernote, Gmail y cualquier servicio disponible en la red que se nos ocurra. De hecho, para complicar aĂşn más el escenario, tampoco es raro que la misma direcciĂłn de correo personal que usamos sea el login para muchos de estos servicios; un panorama que es mucho más habitual que lo que podrĂamos llegar a imaginar y que nos pone en riesgo, por ejemplo, ante un posible robo de identidad o la usurpaciĂłn de nuestra cuenta.
No es la primera vez que hablamos de seguridad en Bitelia y, en alguna que otra ocasiĂłn, hemos hablado de consejos para generar contraseñas seguras o, directamente, crearlas a partir de servicios disponibles en la red. Sin embargo, de poco nos sirve una contraseña segura si es la misma que usamos en todos los servicios en los que estamos registrados porque la probabilidad de ser vĂctimas de cualquier tipo de ataque es mucho mayor.
Quizás pueda parece que estoy exagerando pero, si tomamos como referencia el caso de Evernote, en el hipotĂ©tico caso que alguien lograse descifrar las contraseñas tendrĂa un listado de pares cuenta de correo-contraseña con la que probar, por ejemplo, en Facebook, Twitter, LinkedIn, Gmail y cualquier servicio que se nos ocurra. Si la contraseña es la misma en todos ellos, un atacante con no muy buenas intenciones tendrĂa "barra libre" para acceder a toda nuestra informaciĂłn personal o realizar publicaciones en nuestro nombre.
A lo mejor el caso de Evernote es demasiado rebuscado pero hace algo más de seis meses que robaron un buen nĂşmero de contraseñas de LinkedIn y, de camino, tambiĂ©n podrĂan haber tenido acceso a las cuentas de otros servicios. Otro escenario que podemos encontrar es el uso de aplicaciones que usan conexiones no cifradas (el correo, por ejemplo) en redes Wi-Fi abiertas y enviar, por dicho canal, nuestro usuario y contraseña para que un tercero con malas intenciones lo intercepte e intente usarlo en otros servicios o, incluso, que alguien intercepte lo que escribimos en un ordenador de uso pĂşblico (con un keylogger) y pruebe la contraseña interceptada en otros servicios.
Como podemos observar, los escenarios en los que nuestros datos se pueden ver comprometidos están ahĂ y en nuestra mano está evitar que se hagan una realidad que nos haga pasar un mal rato. ¿Y quĂ© debemos hacer? ¿CĂłmo podemos adoptar prácticas seguras sin tener que recurrir a una libreta en la que apuntar todas las contraseñas? ¿Tenemos que depender de nuestra memoria?
Lo ideal serĂa recordar las contraseñas, no tenerlas que apuntar en ninguna parte y que siguieran patrones seguros pero, si no tenemos buena memoria, siempre podemos recurrir a algunas reglas que nos ayuden a llegar a un equilibrio entre nuestra memoria y algo seguro; por ejemplo, podemos usar patrĂłn y, sobre Ă©ste, introducir variaciones.
Cada vez son más habituales los intentos de robo de información y suplantación de identidad, un hecho para el que la mejor defensa somos nosotros mismos y la adopción de buenas prácticas de uso.
Suscribirse a:
Entradas (Atom)














