Sicurezza a livello di applicazione

1

Originariamente richiesto su link , ma è stato suggerito di chiedere qui invece.

Ho visto molte domande in merito alla crittografia su http, ad esempio questo . La maggior parte delle risposte che ho visto ha detto che non c'è modo di verificare l'identità del server così vulnerabile all'attacco MitM.

La mia domanda di seguito sarà leggermente diversa, perché si tratta di un ambiente mobile, in cui presumo che l'app sia scaricata da AppStore o PlayStore. In questo modo, posso presupporre che il codice sia verificato e non modificato dall'hacker e che la chiave pubblica del server in bundle con l'app non venga modificata in modo che possa verificare l'identità del server.

Date queste garanzie, è possibile eseguire la crittografia a livello di applicazione e ci sono eventuali librerie esistenti per farlo?

Più in particolare, sto scrivendo alcune app che parlano al server HTTP. Il server è ospitato su alcuni piani economici in cui non è disponibile HTTPS. Supponendo che il server gestisca le richieste HTTP usando PHP o Python, è possibile implementare il client e il server, in modo che facciano un po 'di handshake all'inizio della sessione su HTTP, per concordare alcune chiavi di crittografia; in seguito, tutti i messaggi vengono crittografati utilizzando i tasti. Quindi dal punto di vista degli hacker, vedono il traffico HTTP tra client e server e vedono alcuni campi base nelle intestazioni HTTP, ad es. host e endpoint, come testo normale, ma tutto il resto è crittografato come corpo HTTP o argomento dell'URL.

È possibile e ci sono biblioteche che lo fanno facilmente? Intuitivamente, è solo l'implementazione di TLS a livello di applicazione, quindi in teoria è totalmente possibile e ha la stessa forza di sicurezza di TLS. Mi mancano i buchi di sicurezza qui?

    
posta icando 17.03.2015 - 09:31
fonte

1 risposta

2

il primo buco di sicurezza è il tuo server "el-cheapo" condiviso. se non ti fidi della tua macchina, non ti puoi fidare delle tue applicazioni.

significa che se non si ha un controllo sulla macchina stessa, aggiungere sicurezza è inutile, un attaccante attaccherà semplicemente il proprio server web invece della propria connessione e si assicurerà che possa fare qualsiasi cosa lui / lei voglia fare e "Ruba tutti i dati!"

dai un'occhiata alle pagine OWASP . offrono molte informazioni su come proteggere qualsiasi programma (web-).

Se alla fine tutto ciò che si vuole fare è avere un gruppo limitato di client che usano la tua "app" e farlo in sicurezza, si può guardare all'implementazione di un'architettura client / server SSH (sostanzialmente facendo SSH fare tutta la sicurezza e la connessione e basta usarlo come tunnel per il tuo scopo)

buona fortuna

    
risposta data 17.03.2015 - 11:51
fonte

Leggi altre domande sui tag