Sto sviluppando un'applicazione che si collega a un'API basata su XML. Ho il controllo sia del server che dell'app: c'è un modo per assicurarmi che solo l'app possa accedere all'API?Comunicazione sicura tra iPhone e server?
Non c'è autenticazione utente.
EDIT:
La preoccupazione principale è che i bot rubare i dati attraverso la scansione del XML.
ne dite di questo:
Chiedo una sessione con l'UDID del dispositivo e ottengo una chiave stretta di mano.
<handshake>23354</handshake>
da questa stringa una password viene calcolato sia sul server e il client secondo un algoritmo concordato (si deve solo essere difficile da ricostruire)
Diciamo per ora che aggiungo 1 al tasto handshake
password = 23354
Su tutte le chiamate API, quindi passo questa password con l'UDID. Ciò consentirebbe al server di limitare ogni sessione a un certo numero di chiamate, no?
Cosa ne pensi?
Non credo ci sia alcuna promessa che la sequenza restituita da rand() sia la stessa da piattaforma a piattaforma. POSIX non sembra definire l'algoritmo attuale, ma solo i requisiti minimi. Suppongo in quanto sopra il server sceglie "123". Se il cliente lo sceglie, questo non fornisce alcuna sicurezza (nemmeno una sicurezza insignificante). Se il server invia id, ci sono rotture più veloci del calcolo di tutti i valori per 64k semi. Più ovvio è il MiM della sessione. Posso anche trovare il seme molto più velocemente sfidando il client con id = 1, quindi id = 2 per le poche collisioni. –