¿Puede usar ssh para la comunicación segura entre aplicaciones en el mismo dispositivo?

3

Uso ssh para obtener una conexión cifrada entre los servidores y las máquinas locales todo el tiempo. Es rápido, seguro y hay una manera de hacerlo en casi todos los lenguajes de programación del sistema que he usado hasta ahora.

Mi pregunta es, ¿se puede usar esta interfaz simple para la comunicación segura entre aplicaciones en el mismo dispositivo?

No veo ninguna falla en su funcionamiento con Android, Linux u OS X. Supongo que los sistemas operativos como iOS tienen limitaciones de tiempo para la apertura de puertos, pero incluso en ese caso, todo lo que necesitas es una aplicación de fondo. actualización habilitada para abrir los puertos de recepción desde la aplicación a la que se llama.

¿Hay algún problema con mi lógica en este caso? Todo lo que he experimentado con el uso de ssh hasta ahora me dice que funcionaría, pero me encantaría escuchar sus opiniones sobre esto porque realmente me gusta ssh y no me importaría crear una pequeña API que proporcione comunicación segura entre aplicaciones.

    
pregunta codykochmann 26.06.2015 - 10:05
fuente

3 respuestas

3

Dices "SSH es rápido". No es. Es lo suficientemente rápido para su propósito (acceso de shell remoto y transferencia de archivos ocasional / sshfs) pero definitivamente no es lo suficientemente rápido para IPC, y mucho menos eficiente.

En una máquina local nunca hay necesidad de cifrado entre procesos. Si un atacante puede leer lo que estás enviando a localhost, definitivamente puede leer toda la memoria y obtener la clave para cualquier criptografía que estés usando.

También debe considerar la duración de la batería, agregar (innecesario) crypto inducirá una mayor carga de la CPU y por lo tanto un mayor consumo de energía.

    
respondido por el Anonymous 26.07.2015 - 16:53
fuente
3

Nunca habría una razón válida para utilizar SSH para la comunicación entre procesos que se ejecutan en el mismo dispositivo, a menos que ese dispositivo se usara para simular una red, en cuyo caso, de todos modos, actuaría como dispositivos virtuales múltiples, por lo que técnicamente no sería el mismo. dispositivo.

Utilice sockets de dominio Unix en su lugar. Tenga en cuenta que los sockets de dominio no son lo mismo que la capa de sockets seguros (SSL) que se utiliza para la comunicación a través de una red.

Los sockets de dominio Unix omiten la capa de red por completo (lo que de todos modos no es necesario cuando los procesos se encuentran en el mismo host), por lo que los órdenes de magnitud son más rápidos. Dado que los sockets Unix se tratan como archivos, el acceso se puede controlar mediante métodos estándar.

En lo que respecta a la prevención de escuchas ilegales en la comunicación por procesos no autorizados, al igual que con SSH, si alguien ha rooteado su dispositivo, puede capturar los mensajes, pero de todos modos tendrá cosas mucho más importantes de las que preocuparse en ese momento.

    
respondido por el Nibs Niven 09.06.2016 - 19:02
fuente
1

Prueba esto:

ssh cody@localhost

Esto funciona para mí, por lo que debería funcionar para usted con un servidor ssh instalado, a menos que haya bloqueado el puerto.

¿Pero con qué propósito, en el mismo dispositivo? Dudo si eso haría las cosas más seguras.

    
respondido por el SPRBRN 26.06.2015 - 10:16
fuente

Lea otras preguntas en las etiquetas