L'uso di openssl potrebbe essere un punto debole in un'app Android?

2

Sto rivedendo un'app per Android (costituita da Java e C source).

Ci sono passaggi complicati di occultamento nel processo di creazione (per la protezione del contenuto).
Ma utilizza la libreria openssl collegata staticamente per la crittografia / decrittografia AES.

Non sono un hacker binario ma mi sembra ironico.
Perché usare (quasi) la libreria binaria open source pubblica quando è richiesta l'offuscamento?

La libreria Linkedsl collegata può portare a dei compromessi?

È razionale se suggerisco come sotto?
1) sbarazzarsi di moduli binari di openssl
2) trova altre implementazioni AES open source
3) costruire la sorgente AES con offuscamento

    
posta 9dan 14.01.2014 - 09:13
fonte

1 risposta

1

L'offuscamento è "obbligatorio" quando si verifica una delle seguenti tre situazioni:

  1. L'applicazione fa qualcosa di intrinsecamente debole come l'incorporamento di un valore segreto nel codice sorgente.
  2. Il progettista dell'applicazione vuole "sentirsi sicuro" ed è sufficientemente incompetente in crittografia in modo che l'offuscamento fornisca quel sentimento (l'ignoranza è beatitudine).
  3. Il fornitore dell'applicazione vuole proteggere la sua "proprietà intellettuale". L'offuscamento del codice non impedirà infine alle fotocopiatrici di capire come funziona il codice, ma potrebbe ritardare i loro sforzi di reverse engineering di pochi giorni (non molto più di questo); ancora più importante, l'offuscamento è un modo per rendere ovvio che i contenuti del codice non sono pensati per l'ispezione esterna, il che aiuta ad ottenere la qualificazione legale del reverse engineering vietato in alcune giurisdizioni.

Rimuovere e / o offuscare OpenSSL non è di grande aiuto se l'applicazione incorpora i segreti o tenta di fare "protezione del contenuto"; lo sforzo è comunque senza speranza (è il caso 1). Per quanto riguarda il caso 3, non c'è alcuna proprietà intellettuale da proteggere in AES perché AES è già pubblico, e non è la proprietà del venditore per cominciare. Tuttavia, offuscare OpenSSL (o rimuoverlo e rimpiazzarlo con un'implementazione fatta in casa, o qualsiasi altro incantesimo rituale) può aiutare molto il progettista a dormire la notte; se è quello che serve per renderlo felice ...

L'idea alla base è che, nonostante ciò che alcune persone credono fermamente o affermano, l'offuscamento non funziona. Beh, non interrompe il codice, il software funziona ancora dopo l'offuscamento; ma non aumenta la sicurezza tecnica contro il reverse-engineering e non migliora la protezione del contenuto. L'unico punto che può rendere l'offuscamento una decisione razionale è qualificazione legale ; e quello non si applica a OpenSSL, che è già open-source.

    
risposta data 14.01.2014 - 15:30
fonte

Leggi altre domande sui tag