Metodo per integrare Touch ID nelle app iOS

7

Con il recente annuncio di API Touch ID per app di terze parti, mi chiedo come possiamo sfruttare questa funzionalità per eseguire transazioni sicure? Sto cercando un metodo per utilizzare Touch ID nella mia applicazione di pagamento. Un'opzione è quella di memorizzare la password nel portachiavi e aggiungere criteri di accesso per richiamare Touch ID durante il pagamento, ma il problema è se la password del dispositivo è compromessa, l'utente può tornare alla password del dispositivo per accedere alla password memorizzata nel portachiavi. Qualcuno conosce un meccanismo migliore per gestire password e amp; rendere la transazione più fluida & sicuro usando Touch ID?

    
posta Bharath 13.07.2014 - 10:05
fonte

4 risposte

1

Accesso al portachiavi di autenticazione utilizzando le impostazioni di scansione biometrica come codice di sicurezza del dispositivo come backup quando l'autenticazione fallisce. Ma si può usare l'API LAContext per invocare direttamente l'autenticazione biometrica e creare azioni basate sul risultato.

LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
NSString *myLocalizedReasonString = <#String explaining why app needs authentication#>;

if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
    [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                  localizedReason:myLocalizedReasonString
                            reply:^(BOOL success, NSError *error) {
            if (success) {
                // User authenticated successfully, take appropriate action
            } else {
                // User did not authenticate successfully, look at error and take appropriate action
            }
        }];
} else {
    // Could not evaluate policy; look at authError and present an appropriate message to user
}
    
risposta data 16.09.2014 - 19:26
fonte
1

Non utilizzare Touch ID per nulla oltre la schermata di blocco di Apple. In altre parole, non utilizzarlo nelle app, né memorizzare / leggere alcun dettaglio correlato a Touch ID nel portachiavi iOS.

Motivo n. 1: link

Touch ID può essere sovvertito completamente semplicemente allegando una hooker (come cycript) e dicendo all'API LocalAuthentication che l'impronta digitale è valida. Esistono anche app Cydia come SuccessID per semplificare eccessivamente il compito di bypassare Touch ID.

Alcuni potrebbero dire che ciò richiede un dispositivo Jailbroken, ma questo non è vero - si può anche riconfezionare un'app su un dispositivo jailed. Bishop Fox dimostra questo processo qui - link

Motivo n. 2: link

"I dispositivi Apple hanno un processo di iscrizione casuale - se conosci il codice di accesso di un dispositivo, puoi registrare uno o più impronte digitali: non esiste alcun vincolo tra l'uomo che presenta un dito e l'identità digitale rappresentata dal dispositivo. quando si autorizza lo sblocco di un telefono, ma diventa problematico quando potrebbe autorizzare pagamenti o altre azioni altamente sensibili. "

Motivo 3: solo il fattore stupido. Se vai in un bar con un amico che ti ama scazzarti, che cosa può impedirgli di ingannarti a digiunare (o se passi fuori dal bere troppo!)? Dopo aver scoperto di essere stato compromesso, puoi modificare il PIN o il codice di accesso, ma non puoi cambiare l'impronta digitale.

    
risposta data 15.05.2015 - 17:23
fonte
0

Una possibilità qui sarebbe di non avere l'utente effettivamente in grado di generare una password, si potrebbe fare in modo che l'app generi una stringa casuale quando l'autenticazione biometrica locale ha esito positivo sulla creazione dell'account. Questa stringa generata casualmente potrebbe essere utilizzata come password per generare il segreto condiviso tra il client e il server. Memorizza questo segreto condiviso nel portachiavi.

Quando è necessario eseguire una transazione, l'utente può validare con il pollice o qualsiasi altra caratteristica biometrica utilizzata in futuro per accedere al segreto all'interno del portachiavi. Questo potrebbe quindi essere utilizzato per abilitare la transazione.

    
risposta data 16.08.2014 - 02:41
fonte
0

Touch ID è facilmente rotto se qualcuno può sollevare la tua impronta digitale (che è più facile di quanto la maggior parte della gente pensi). Pertanto, non devi fare affidamento su Touch ID per sicurezza.

    
risposta data 17.08.2014 - 20:33
fonte

Leggi altre domande sui tag