Aunque no se ha definido bien de donde viene el problema, y que el internet ya se resolvió en la oficina, no podemos dejar de lado que las redes Wan son bastante mas inseguras.
Hay dos o tres razones que justifican la inestabilidad anterior:
1 ) Cable troceado
2 ) Intercepción pasiva o Sniffing
3 ) Tampering o Intercepción activa. Paso previo a un ataque de MITM.
Los ataques de MITM Son especialmente problemáticos con la naturaleza del trabajo que realizamos en la empresa, y una red WAN es un problema serio que facilita estos ataques. Pasamos a tener demasiados puntos de falla.
La solución evidente es tener acceso nosotros a una conexión independiente o cableada, así que podríamos estar mas seguros de si hay o no un MITM. La red cableada restringe el campo de posibles MITM, y una conexión tipo BAM o Ego ayudaría.
Pensando en esto, y que el código que enviamos por correo puede ser interceptado, me pareció bueno usar el método de aescrypt.zip, un software de encriptado via AES que usé hace tiempo, que edita archivos de texto con passphrase. El problema fue que no corre en Windows 7 home premium, y cambiar la plataforma de los programadores de aquí no sería opción porque las máquinas virtuales no correrian en windows 7 home, que sería el downgrade a la licencia que tenemos en las laptops.
Así que la alternativa es simple.. y el problema mayor. Independientemente de la posibilidad de MITM la necesidad de un cifrado Rijndael o similar para notas de juntas confidenciales, está presente.
Descargué varios editores con criptografia pero no regresan el texto como debía ser cuando no vienen en UTF-8 (y si la idea implica en cierto nivel manejo de correo, mejor sigo al RFC 1642 para envío seguro por correo, y por lo tanto no es UTF8 sino
UTF7). Por lo mismo, decidí hacer un editor rijndael propio (fueron unas dos horas y 70 SLOC en PHP). Incluso este texto lo estoy capturando en ese editor y luego el texto lo subiré al blog. El lunes edito el mensaje para poner el código.
Básicamente para un editor hecho en casa me quedaban dos alternativas: Twofish o rijndael. Para evitar complicaciones elegí Rijndael.
Que necesita para mi un editor seguro de texto seguro ?
1 ) Evidentemente contraseña reversible
2 ) No necesitar login, pero guardar passphrase en memoria
3 ) No preguntar demasiado la passphrase. Los editores que use en su momento eran molestos en ese aspecto.
4 ) Permitir desconexión rápida para ir al baño, por ejemplo.
5 ) Permitirme abrir tres archivos fijos a la vez. Como pueden ser enviados por correo en scripts, manejaré como archivos editables editor.txt editor2.txt y editor3.txt
Estos objetivos se cumplieron muy rápido con CURL y unos cambios en mcrypt. Como los programadores de php tienen puesto WAMPSERVER, el editor puede ser un solo archivo, y los archivos texto finales pueden copiarse a un USB o enviarse por correo, sin que sean crackeables.
En una etapa posterior, el no usar utf8 permite que este editor evolucione a un editor de código PHP que mande la información a un Sftp seguro o via post CURL. Tiene que ser un FTP con SSL porque a pesar que en el server destino se implemente un ftp, si no tiene SFTP el password del ftp es texto plano y un sniffer o MITM obtiene la credencial, haciendo lo demás inútil. Un post de información via CURL tiene limitaciones prácticas en tamaño a menos uqe revises un crc32 del post, pero es poco fiable, asi que de entrada la solución actual me permite una tercera opción. Enviar por un correo bajo socket seguro, y que el server lo lea del correo. Así el password estaría menos expuesto.
El objetivo previo se cumple: Editor seguro con estándar Rijndael en pocas SLOC de PHP.
Otra función práctica podría ser en la casa como clipboard. Se pone el dato en un sitio sin problemas. No sirve en ese caso como defensa ante MITM, pero es otra posible aplicación.
Edit del 7 de febrero:
Se coloca en http://www.alfonsoorozcoaguilar.com/codigo/rijndael.txt el codigo fuente del editor rijndael, y se deja un ejemplo operativo en
http://www.alfonsoorozcoaguilar.com/codigo/editor.php