¿Qué tan seguro es XMPP con certificados SSL autofirmados?

1

Estoy buscando una manera fácil de configurar una infraestructura de mensajería instantánea simple que proteja los mensajes en tránsito y que evite tener registros en lugares que ni yo ni alguien en quien confío controlamos. Tengo mi sede en Alemania y, según el Sr. Snowden, mi tráfico realmente se analiza y analiza, y no me siento cómodo con eso en absoluto. IM es algo que me molesta mucho en ese sentido.

Estoy pensando en tener un servidor XMPP aislado con cuentas para todos en el grupo de personas que lo necesitan, y para requerir SSL con certificados autofirmados. De todos modos, estoy ejecutando un servidor XMPP en mi Raspberry pi, así que, ¿por qué no lo implemento con seguridad SSL? Está configurado para no escribir ningún registro a excepción de los errores y diagnósticos, por lo que el problema de registro ya está solucionado allí. Las personas en cuestión saben usar Pidgin, pero cualquier cosa demasiado molesta no volaría con ninguno de ellos. El móvil también sería un requisito, Facebook es demasiado conveniente. Creo que XMPP tiene eso cubierto.

No soy muy aficionado a OTR, ya que el complemento Pidgin requiere un poco de conocimiento técnico, bloquea a Pidgin de vez en cuando y tarda más de 10 segundos en iniciar una conversación (para mí) durante la cual Pidgin se congela por completo. Además, que yo sepa, solo existe el complemento de IM + para plataformas móviles y es bastante caro. Confiar en un servidor auto hospedado y los certificados SSL deberían funcionar para todas las plataformas concebibles (¿supongo?), Ser relativamente fáciles de configurar en el lado del cliente y proporcionar una mejora decente en la seguridad.

La pregunta es, ¿sería eso lo suficientemente seguro? Por lo menos, mi objetivo es mantener mi comunicación sobre esta infraestructura fuera de las bases de datos de la NSA. No pretendo resistir ningún ataque dirigido por expertos entrenados o similares, solo me gustaría tener conversaciones privadas que en realidad son tan privadas como una vez fue una llamada telefónica, y no se archivan ni analizan en ningún otro lugar como una cuestión de rutina. .

Si es, en otra pregunta complementaria, alguna recomendación sobre cómo generar exactamente los certificados para hacerlos seguros. Leí que algunos algoritmos pueden haber sido comprometidos, me gustaría evitarlos si es posible. He visto algunos hilos aquí sobre eso, pero ninguno (que entendí poco) con ese giro de prueba de la NSA.

    
pregunta Stegosaurus 16.12.2013 - 15:55
fuente

3 respuestas

4

Los certificados autofirmados son tan buenos como los certificados firmados por otra entidad. Lo único que no están es en la Infraestructura de clave pública . Todas las computadoras modernas vienen con una lista de certificados raíz de confianza conocidos . Cualquier certificado firmado por una de estas raíces de confianza es de confianza automática para su computadora. Sus certificados autofirmados no forman parte de esta cadena de confianza, por lo que depende de usted confiar en estos certificados. Por lo general, los clientes le avisarán cuando encuentren un certificado que no se pueda rastrear hasta una raíz conocida, por lo que depende de usted confirmar ese aviso.

El problema en esto es que si confirma este aviso cada vez a mano, es muy fácil que un hombre del medio se comprometa, ya que la verificación humana de un certificado es muy propensa a errores. Por lo tanto, tendrá que establecer confianza en su certificado autofirmado una vez inicialmente y luego dejar que su cliente lo maneje. La forma de hacerlo depende del cliente y la plataforma, pero la mayoría / todas las plataformas tienen alguna forma de agregar certificados arbitrarios al almacén de certificados de confianza.

    
respondido por el deceze 16.12.2013 - 16:06
fuente
0

OK, las llamadas telefónicas fueron nunca privadas. La compañía telefónica siempre ha tenido la capacidad de tocar y grabar sus llamadas. El sistema fue diseñado de tal manera que ayude a los agentes de la ley y al gobierno a espiar desde el principio. La idea de que las llamadas telefónicas son personales y no pueden ser violadas es una falacia.

Parece que está tratando de armar un sistema que es fácil de usar para personas analfabetas, en cuyo caso sugeriría usar herramientas existentes en lugar de usar las suyas. Quiero decir, ¿realmente crees que tus comunicaciones personales son realmente de interés para las agencias de espionaje que vale la pena reinventar la rueda, especialmente cuando hace que el sistema sea más difícil de usar?

Los certificados firmados por Delf no son una gran opción porque no ofrecen ninguna garantía de la identidad del titular del certificado a menos que configure específicamente sus propias asociaciones de clave de usuario de grupo, que es una carga de gastos administrativos. Si un usuario desea iniciar sesión en la herramienta desde varios sistemas, debe asociar cada clave privada de cada sistema con su identidad, o exportar-transferir-importar la misma clave autofirmada a cada máquina. La mayoría de los usuarios de computadoras que no saben leer y escribir no querrían molestarse con eso, pedirle a un novato que haga esas cosas solo haría que su herramienta sea inutilizable. Así que solo dificulta las cosas sin ningún beneficio de seguridad.

    
respondido por el GdD 16.12.2013 - 16:19
fuente
0

Con respecto a lo seguro que es ... Es como se dijo anteriormente, casi tan seguro como cualquier otro certificado, a menos que use software o un SO con vulnerabilidades. TBH, utilizo una CA propia y ruedo mis certificados para varias cosas por mi cuenta y están bien hasta ahora (por ejemplo, certificados de servidor, certificados de usuario, certificado de RADIUS, SQUID MITM CA).

Probablemente te sugiero que consideres crear una CA y firmar cada certificado de usuario usando la CA o sus CA intermedias, ya que esto garantizaría que el usuario sea realmente el usuario en el que ha confiado y no alguien en el medio en quien confíe cada vez que se establezca una conexión. Y otra ventaja: solo tienes que confiar en el certificado raíz y todos los usuarios serán de confianza.

No sé mucho de XAMPP, pero también deberías buscar formas de implementar un Secreto Directo. En las conexiones TLS, esto se reparte usando claves DH (al menos 2048 bits para estar seguro, usualmente obtengo 4096 dhparam , pero en un RasPi, le aconsejo que use dsaparam porque es más rápido y se dice que es tan seguro como dhparam ). De esa manera, con cada sesión, se genera un nuevo secreto por saludo y, incluso si más adelante se comprometieran sus certificados, sería casi imposible descifrar los mensajes anteriores. También puede consultar qué trajes y curvas utilizar para mantener las cosas seguras en cipherli.st , ya que hay cifrados seguros que se actualizan periódicamente,

También tenga en cuenta que generar claves de 8k bits no significa que realmente tendrá la fuerza de 8k, así que no pase el horizonte solo para hacer las cosas "más seguras". Siempre depende de la entropía del dispositivo y, por ejemplo, en una versión anterior de Debian, había una especie de "vulnerabilidad de clave débil de Debian", por lo que no importa cuántos bits establezca, las claves siempre fueron débiles, así que también mantenga su sistema actualizado y utilice un sistema operativo seguro personalmente confiar (Personalmente uso BSD para generar claves hoy en día desde que NSA cometió un compromiso en el Kernel de Linux por lo que sé y se dice que este compromiso afecta a varios puntos de seguridad en cualquier Linux Distro. Por razones obvias, no confío en la NSA incluso en las confirmaciones de código abierto, pero no juzgará la decisión de Linus en ese sentido)

Entre, no es necesario administrar una PKI propia solo para unos pocos usuarios, solo la CA openSSL de creación propia sería suficiente. Pero si desea ir limpio, EJBCA no es tan malo para administrar CAs y certificados enrollados, así como las listas de revocación.

    
respondido por el christopher westburry 03.04.2017 - 04:56
fuente

Lea otras preguntas en las etiquetas