En ajoutant au dictionnaire kCFStreamPropertySSLSettings les habituels kCFStreamSSLValidatesCertificateChain, kCFStreamSSLAllowsAnyRoot, etc. - Je peux faire fonctionner l'authentification client du serveur &.iOS - gestion des racines approuvées sur une connexion SSL
Cependant, je ne vois pas comment je peux obtenir ce grain plus fin; à savoir
- détecter un cert de serveur/CA jamais vu - et d'intensifier l'acceptation à l'utilisateur.
- valider un certificat du serveur auquel je suis connecté par rapport à une liste de confiance étroite (par exemple, le certificat appris lors d'une connexion précédente).
I.e. ce que je cherche est 1) quelque chose comme SSLSetTrustedRoots() sur MacOSX et 2) quelque chose comme les callbacks d'erreur/domaine dans kCFStreamErrorDomainSSL (par exemple errSSLPeerCertUnknown) - aucun qui semble défini/accessible sur l'ipad/iphone 4.2.1.
Ou est-ce qu'il me manque quelque chose? Ou dois-je faire quelque chose d'explicite sur le rappel? Exemples appréciés (l'exemple AdvancedURLConnections n'est pas tout à fait applicable - j'ai une socket raw (IRC)).
Merci,
Dw.
Heath - avez-vous un code d'échantillon? Les fonctions mentionnées n'ont pas d'échantillon Apple associé (sur leur site), et Graham Lee ne couvre pas Coca Application Security. J'ai l'impression qu'Alice dégringole dans un trou de lapin. – jww
Consultez mon blog sur le sujet. Il couvre certaines de ces questions. https://blog.asolutions.com/2011/02/using-tls-with-self-signed-certificates-or-custom-root-certificates-in-ios/ –
Exemple de code pour cela sur https: // github .com/dirkx/Sécurité-Pinning-by-CA –