Nota rapida: le versioni più recenti di Android (o quella in arrivo?) ora includono la protezione del jailbreak integrata, e puoi specificare che non vuoi che la tua app sia installata su dispositivi jailbreak.
Questo è un po 'al di fuori della mia area di competenza immediata, ma penso di avere comunque una buona risposta per te. Come qualsiasi altra cosa, riguarda esclusivamente l'analisi costi / benefici, e sfortunatamente solo tu puoi farlo. Possiamo correre in fretta, ma tieni presente che in realtà non ti sto chiedendo di rispondere a queste domande qui. Sei il benvenuto, ma sto solo cercando di guidarti attraverso il tipo di domande che mi chiederei di rispondere alla tua domanda.
- Stai tentando di rilevare il jailbreak per una ragione. Perché? Quale perdita stai cercando di impedire bloccando l'esecuzione della tua app su dispositivi jailbroken? Stai perdendo entrate da un singolo cliente? O stai potenzialmente perdendo documenti riservati o informazioni protette?
- Quale percentuale dei tuoi utenti ti aspetti di avere la capacità tecnica e la motivazione per eseguire il reverse-engineering della tua app in modo che possano sconfiggere il rilevamento dei jailbreaking e avviare la tua app su un dispositivo jailbreak?
Per dare due esempi estremi: se la tua app è un gioco e la potenziale perdita per la tua azienda è il fatturato pubblicitario o le vendite in valuta del gioco perché la persona che esegue il reverse engineering della tua app può ottenere tutto gratuitamente, allora questo è probabilmente non vale più di 5 minuti per assicurarti la tua fine. Il motivo è perché così poche persone hanno il know-how tecnico per realizzare queste cose, e la perdita per persona è così piccola, anche il tempo che hai impiegato per scrivere questa domanda ti costa già più della potenziale perdita.
D'altra parte, se la tua app è un lettore di documenti per i documenti classificati come il più alto livello di segretezza da parte dell'NSA, e i governi stranieri stanno cercando di violarlo per rubare i nostri più preziosi segreti (non che il La NSA ha più segreti), quindi l'offuscamento del codice non è abbastanza sicuro.
La risposta dipende dal proprio equilibrio di costi / benefici. Il tuo rischio è probabilmente nel mezzo di questi due casi estremi. In definitiva, penso che solo tu possa rispondere alla tua domanda.
Tempo per una valutazione del rischio
Penso che prima che tu arrivi a "Dovremmo nascondere il nostro codice per impedire ai concorrenti di decodificare il nostro software?" sei passato il punto di aver bisogno di un test di penetrazione. Invece, ciò di cui hai bisogno è una valutazione del rischio. Penso che questa sia una questione commerciale, non una domanda di sicurezza, perché ora stai entrando nel territorio legale. I concorrenti che cercano di prendere parte ai vostri sistemi è un tipo diverso di problema. Prendere alcuni provvedimenti dal punto di vista tecnico per scoraggiare questo comportamento è probabilmente ragionevole, ma alla fine si potrebbe essere meglio serviti con qualche rilevamento di intrusioni e una buona serie di avvocati. Sembra che questo sforzo possa dimenticare il lato negativo della sicurezza: alcune misure di sicurezza non sono legittimamente degne di essere valutate, e tutte le misure di sicurezza devono essere di peso rispetto al costo per il business. La tua azienda deve decidere dove quel saldo tra sicurezza e costi di manutenzione è nel tuo caso particolare.