È possibile utilizzare ssh per comunicazioni di app inter sicure sullo stesso dispositivo?

3

Uso ssh per ottenere una connessione crittografata tra server e macchine locali tutto il tempo. È veloce, sicuro, e c'è un modo per farlo in quasi tutti i linguaggi di programmazione del sistema che ho usato finora.

La mia domanda è, può questa semplice interfaccia essere utilizzata per comunicazioni inter-app sicure sullo stesso dispositivo?

Non vedo difetti con il suo funzionamento con Android, Linux o OS X. Suppongo che i sistemi operativi come iOS abbiano dei limiti di tempo per l'apertura delle porte, ma anche in questo caso tutto ciò che si dovrebbe avere è l'app in background aggiornamento abilitato per aprire le porte di ricezione dall'app che viene chiamata.

C'è qualcosa di sbagliato nella mia logica in questo caso? Tutto ciò che ho sperimentato usando ssh finora mi dice che funzionerebbe, ma mi piacerebbe sentire le tue opinioni su questo perché mi piace davvero ssh e non mi dispiacerebbe fare una piccola API che fornisca comunicazioni inter-app sicure.

    
posta codykochmann 26.06.2015 - 10:05
fonte

3 risposte

3

Dici "SSH è veloce". Non è. È abbastanza veloce per lo scopo previsto (accesso alla shell remota e trasferimento di file occasionale / sshfs) ma non è sicuramente abbastanza veloce per IPC, per non parlare di efficienza.

Su una macchina locale non c'è mai bisogno di crittografia tra i processi. Se un utente malintenzionato può leggere ciò che stai inviando a localhost, può sicuramente leggere l'intera memoria e ottenere la chiave per qualsiasi cripto che stai usando.

Devi anche prendere in considerazione la durata della batteria, aggiungendo (inutili) crypto indurrà più carico della CPU e quindi più consumo energetico.

    
risposta data 26.07.2015 - 16:53
fonte
3

Non ci sarebbe mai un motivo valido per usare SSH per la comunicazione tra processi in esecuzione sullo stesso dispositivo, a meno che quel dispositivo non sia stato utilizzato per simulare una rete, nel qual caso agirebbe comunque come più dispositivi virtuali quindi tecnicamente non sarebbe lo stesso dispositivo.

Usa invece i socket di dominio unix. Tieni presente che i socket di dominio non sono gli stessi di Secure Sockets Layer (SSL) utilizzato per le comunicazioni su una rete.

I socket di dominio Unix ignorano del tutto lo strato di rete (che non è comunque necessario quando i processi si trovano sullo stesso host) quindi gli ordini di grandezza sono più veloci. Poiché i socket unix sono trattati come file, l'accesso può essere controllato utilizzando metodi standard.

Per quanto riguarda la prevenzione di intercettazioni sulla comunicazione da parte di processi non autorizzati, proprio come con SSH, se qualcuno ha rootato il tuo dispositivo, possono catturare i messaggi, ma ovviamente avrai cose molto più importanti di cui preoccuparti a quel punto comunque.

    
risposta data 09.06.2016 - 19:02
fonte
1

Prova questo:

ssh cody@localhost

Questo funziona per me, quindi dovrebbe funzionare per te con un ssh-server installato, a meno che tu non abbia bloccato la porta.

Ma per quale scopo - sullo stesso dispositivo? Dubito che renderebbe le cose più sicure.

    
risposta data 26.06.2015 - 10:16
fonte

Leggi altre domande sui tag