Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Validating an iOS app

We have an iOS app which interacts with various webservices at the backend. The backend however wants to validate that the request coming to it is from our valid iOS app and not from a replay attack or a "man in the middle" attack. We are eventually going to have all our calls changed to https. However, is there any way the backend can validate the request is coming from our legitimate app? We were thinking of using cryptographic nonce with every request, but it would still be prone to "man in the middle" attack. Is there any certificate exchange that can be used between the iOS app and the server?

like image 326
Hetal Vora Avatar asked May 17 '11 15:05

Hetal Vora


1 Answers

TLS and SSL support client authentication using certificates. NSStream might support client side authentication, but I have not been able to find a way to do it without dropping down to using OpenSSL for the actual implementation.

Addition:
ASIHTTPRequest supports client certificates since version 1.8, so no fuss in implementing it.

like image 147
paxswill Avatar answered Nov 06 '22 18:11

paxswill