Nax

Contenido archivado

El contenido de la web se encuentra archivado y no se podrá crear nuevo contenido. Más información.

Pues eso, nax.
Así se llama la utilidad que estoy desarrollando para Jabber.

Es una utilidad para linea de comandos que (por ahora) te permite enviar mensajes a [JID]s, grupos, etc...
Algunos de aqui que useis linux, quizá os suene el comando "mailx" o "mail" a secas, que sirve para enviar un mail a lo rapido, pues nax pretende ser algo asi.
Nax lee de la entrada estandar y envia a donde se le indique, algo así:

$ cat carta_de_amor | nax.pl minovia@jabberes.org
$ echo quedamos a ls 5 donde siempre | nax.pl -n amigo

No, el JID de mi novia no es ese XD
Bueno, para mas información visitar su pagina http://nax.jabberstudio.org.

Espero os sea util. saludos.

Comentarios

Sugerencia

Me parece muy útil tu programa, sobre todo para los que estamos acostumbrados a usar la consola como vía rápida para hacer las cosas.

Una mejora que estaría bien que hicieses es que el password (y el login opcionalmente) se guarden encriptados en ~/.naxrc Aunque para eso lo primero es hacer un script que pida los datos necesarios y cree dicho archivo.

Saludos.

Enfoque _a la_ fetchmail

En el programa fetchmail, las contraseñas a las diversas cuentas están en un fichero en claro (~/.fetchmailrc) que tiene como permiso de acceso 600. En caso de que este fichero no tenga ese permiso, el programa no se ejecuta.

Con este sistema se consiguen 2 cosas:

  • Que nadie salvo el usuario de la cuenta tiene acceso a las claves
  • Que el usuario no puede dejarse inadvertidamente el fichero con otros permisos porque el programa no funcionaría.

Buena idea

Es ésto lo que yo implementaría, porque es un esquema bastante sencillo y seguro. Encriptar la clave no es viable, porque de alguna manera se tiene que desencriptar, puesto que la necesitas en claro. Y si la puede desencriptar nax, pues la desencripta cualquiera.

La otra solución que se propone, la de no almacenarla nunca, pues es un poco tediosa, pero se podía soportar: si no hay clave en el fichero de configuración, pues entonces la pides. En caso contrario, se usa la del fichero.

encriptado? y como envio el

encriptado?
y como envio el password al servidor?
uhmmm es buena idea pero hay q pensarla pk no se me okurre la forma :(
gracias por usarlo :P

Nacho Morell - Helios developer ikossi.org
mail:morell@aditel.org || jid:natxo@ikossi.org
Libertade ezatik
Natxo Morell - Helios developer ikossi.org
mail: yo@natxo.net || jid: natxo@ikossi.org
Libertade ezatik

Mmmmm

Uhm. No había caído en el "detallito" ese. A mi no se me ocurre como hacerlo. Lo que sí he visto que, por ejemplo, el psi sí guarda la contraseña encriptada. Así que una solución ha de haber. Si alguien sabe como lo hacen este tipo de clientes que te eche una mano. Imagino que usarán un algoritmo propio de tipo biyectivo o algo así, pero al ser programas libres la función inversa se podría sacar... No sé la verdad es que no tengo ni idea :^)

Una posibilidad para ir tirando es que crees tú un algoritmo sencillito para que se guarde encriptado (aunque sea mínimamente). Para mandar el password lo desencriptas con su función inversa. Así al menos ya no guardas la contraseña en texto plano. Aunque el problema está ahora en que como el programa es libre cualquiera puede ver esa función inversa y aplicarla sobre la contraseña encriptada. Pero al menos ya hemos avanzado un paso.

Saludos.
Diego.

Más facil que todo eso

La solución más fácil es, simplemente, no guardando la contraseña. Si el objetivo del programa es hacer un envío de forma rápida, que pida la contraseña cuando tenga que hacerlo sacando los asteriscos correspondientes.

Esto es un incordio si se quieren mandar muchos mensajes seguidos, pero esa no parece que sea la finalidad del programa, así que no habría problema.

Aquí tienes otra idea.

mmmm

gracias caos y gush, se me ocurre algo asi para mas o menos "adelantar algo", aunque aun no sea la opcion definitiva:
yo configuro el ~/.naxrc con la informacion, SIN la password.
si el programa ve que has puesto usuario, pero NO contraseña, éste te pregunta por una, sino, usa la que hay.
no sé porqué, el tipo de autenticación en la libreria Net::Jabber no me lo pilla bien, y pasa del "digest" :(
miré de mandar el XML en bruto, pero vi q algunas veces era "hash" y otras "digest" la etiqueta a mandar, por lo tanto no he podido adaptarlo bien.
tambien pondré lo que se ha comentado sobre los permisos; no permitir la ejecución del programa si el archivo no tiene 600.

gracias por las ideas ! :P

Nacho Morell - Helios developer ikossi.org
mail:morell@aditel.org || jid:natxo@ikossi.org
Libertade ezatik
Natxo Morell - Helios developer ikossi.org
mail: yo@natxo.net || jid: natxo@ikossi.org
Libertade ezatik

Evidentemente cualquier tipo

Evidentemente cualquier tipo de algoritmo de encriptación que implementes tiene que ser como muy bien dice Diego, es una función biyectiva, de forma que puedas extraer la clave original para poder mandarsela al servidor jabber y autentificarte. Y siendo asi, y pudiendo mirar las fuentes del programa, es evidente que tu contraseña va a poder ser desencriptada, aunque la persona interesada en optener tu contraseña se tendria que molestar un poco más en averiguar cual es el algoritmo de encriptación que usas mirandolo en el codigo fuente del programa, y no ponerle las cosas tan fáciles como ver:

password = VivaJabberes


Ya que cualquiera abriendo el archivo de texto podria saberlo sin tener que molestarse mucho más.


Pero es una buena idea el tener la posibilidad de dejar clave "encriptada" guardada en algun archivo de configuración, sobretodo en para entornos "de confianza", como podria ser el ordenador que tienes en tu casa, donde el uso es exclusivamente familiar, y el hecho de que tu clave esté ahi bajo una tan infima protección de seguridad seguramente no pone el riesgo tu privacidad y es mucho más beneficioso la comodidad que esto te proporciona al evitarte tener que escribir un parametro más a pasarle al programa (que es lo que harias en un entorno donde la seguridad se ve más comprometida, como podria ser una cuenta en una máquina de la universidad, donde acceden más usuarios y seguramente sea objeto mas prioritario de ataques que la maquina que está en tu casa).

Formas de encripatar la pass

podemos guardar una contraseña master en algun archivo y usarla para encriptar las contraseñas de las cuantas con por ejemplo DES y leugo desencriptarlas. podemos hacer una codificacion barata y indegura por ejemplo MIME-BASE64. Podemos cifrarlas con PGP/GPG y guardar las claves publica y privada etc... y lo mas importante, los servidores jabber acceptan u Digest de la contraseña en forma de MD5 creo, podemos usar eso, aunque siempre podrian extraer dicho cifrado y enviarselo al servidor, por lo que es un metodo bastante malo. pero les joderia porque tendrian que a lo minimo modificar un cliente jabber para que les permitiera meter cifrados directamente y no la contraseña sin cifrar.


estas son solo algunas ideas. Mozilla etc tambien encriptan contraseñas con una pass etc... Hay muchas formas.