Transmisión segura de datos de la aplicación a través del canal SMS

7

Hay aplicaciones de banca móvil que utilizan el canal SMS para comunicarse con su servidor. Algunos de ellos ofrecen canales de internet y sms entre los que el cliente puede elegir.

Si bien hay mucha información sobre la comunicación segura a través de Internet (cómo implementar TLS, la fijación de certificados, etc.) por parte de OWASP, Enisa, Gartner y otras organizaciones, parece que faltan guías y tutoriales sobre cómo transmitir los datos de forma segura a través de SMS canal.

Varias opciones me vienen a la mente acerca de la arquitectura segura para la transmisión de datos SMS:

  • PGP como sistema donde la clave pública del servidor se incluye con la aplicación y reside en los teléfonos de los clientes. La aplicación utiliza esta clave y una clave simétrica para cifrar sus datos.

  • Sistema similar a HTTPS en el que cada vez que el cliente y el servidor se comunican, acuerdan una clave de sesión y los datos se cifran con eso.

Otras soluciones donde la clave simétrica se almacena o genera en el lado del cliente y no se usa criptografía de clave pública son generalmente inseguras.

El SMS tiene una duración limitada, por lo que uno de nuestros objetivos en este sistema es mantener los mensajes lo más cortos posible, cuáles son algunas de las formas en que podemos lograr este objetivo sin perder la seguridad del sistema. (¿Hace que la primera opción propuesta (PGP como) sea más adecuada?)

En este escenario, los datos están cifrados tanto por el servidor como por los clientes, la integridad también es nuestra preocupación aquí y queremos mantener el número / longitud de los mensajes transmitidos lo más corto posible para minimizar el tiempo de ida y vuelta y la cantidad de mensajes de texto enviado.

    
pregunta Silverfox 15.04.2016 - 07:25
fuente

5 respuestas

4

El TextSecure Messenger (ahora llamado Signal) proporcionó SMS cifrados basados en un esquema de cifrado de clave pública. Sin embargo, eliminaron la función hace un año . Según el blogpost, las razones para abandonar el soporte eran la imposibilidad de hacerlo correctamente con iPhones y la mala seguridad de los SMS en general.

Por supuesto, esto es solo un ejemplo, pero muestra un posible enfoque para cifrar el contenido y proteger la integridad de los mensajes SMS.

No puedo ayudarlo con los detalles de la criptografía involucrada, pero tal vez valga la pena ver la documentación y el código fuente de Textsecure / Signal / Silencio ( Tenedor de Textsecure) .

    
respondido por el Lukas 25.04.2016 - 11:38
fuente
2

No hay transmisión segura de datos a través de SMS. Los datos están expuestos a una gran variedad de amenazas de divulgación de información desde ya través de la empresa de telecomunicaciones, desde herramientas que sincronizan sus SMS a correos electrónicos (como Exchange y Google Voice).

Como dice Lukas, es muy difícil cifrar sus datos y luego enviarlos por SMS. Si va a crear una aplicación, ¿por qué usar SMS como capa de transferencia? Si no vas a construir una aplicación, entonces SMS es inseguro.

    
respondido por el Adam Shostack 26.04.2016 - 21:16
fuente
1

No tengo conocimiento de ninguna tecnología existente que haga esto. Me parece que cualquier tipo de PKI implicaría el envío de datos a través de portadores que no son de confianza y, en general, parece estar lleno de peligros. Además, es posible que las longitudes de clave que desea utilizar para su clave pública no se ajusten a un solo SMS debido a la longitud y los diferentes protocolos de codificación de caracteres posibles.

La única solución que me viene a la mente es usar algo como Diffe-Hellman para generar una clave compartida y luego usar cifrado simétrico a través de SMS, que, de nuevo, puede tener problemas con la codificación de caracteres. Como mencionó, esta clave se almacenaría en el dispositivo como una clave por conversación (SIM-SIM), que podría extraerse del dispositivo y usarse para descifrar una conversación.

SMS se ha utilizado durante casi 30 años en este momento y simplemente no se diseñó teniendo en cuenta la seguridad. La mayoría de los otros protocolos que enfrentan este problema han tenido que ser reemplazados por una versión más segura o envueltos por alguna otra seguridad. es posible que la seguridad MMS sea más probable, pero no sé mucho sobre eso.

    
respondido por el beatsbears 26.04.2016 - 20:28
fuente
1

Larga historia corta: Por razones heredadas, no hay forma de cifrar SMS como un todo. Pero ¿qué pasa con el mensaje en sí?

Ahora no estoy diciendo que debas hacer esto, pero puedes usar fácilmente una clave para cifrar el mensaje que deseas enviar, y luego enviar el mensaje codificado en unos pocos textos con metainformación para vincularlos. Entonces solo necesita otra forma de enviar la clave de forma segura y privada a la otra persona. Esa es la verdadera pregunta.

Por supuesto, esto muestra la verdadera pregunta en la que deberías pensar: ¿Por qué debo usar SMS para enviar datos seguros? Y la respuesta es que no deberías .

    
respondido por el Robert Mennell 27.04.2016 - 00:59
fuente
0

Puede que parezca bastante paranoico y decepcionante, pero SI sus clientes están en stock firmwares / spywares / crapwares o, lo que es peor, en iOS, entonces no tiene otra opción que no sea un descifrador / firmante de mensajes externo, uno fuera de línea basado en sistema sellado con clave preclasificada o, al menos, un token OTP basado en el tiempo. PGP, RSA, SSL, e.t.c. son buenos a menos que estén comprometidos por el firmware . No hay más comentarios que añadir, por desgracia.

    
respondido por el Alexey Vesnin 27.04.2016 - 02:10
fuente

Lea otras preguntas en las etiquetas