2015-02-17 13 views
9

Im un newb qui ma ho un'app soggetta agli attacchi MITM.pinning ssl in Swift AlamoFire

Dopo un po 'di ricerca sembra che devo fare SSL Pining, mantenere una copia della chiave pubblica/certificato del mio server in modo che possa determinare se la risposta proviene da esso.

ho idea come fare questo, sto usando AlamoFire a Swift per gestire la rete.

risposta

-1

Come indicato qui: https://github.com/Alamofire/Alamofire/issues/366

E 'certamente qualcosa che la comunità sta cercando di sostenere, ma non c'è un lasso di tempo solido intorno ancora. Per il momento, vorremmo continuare con AFNetworking e tenere d'occhio il progetto Alamofire per le nuove funzionalità in arrivo.

7

Alamofire ora ha implementato il blocco dei certificati. La documentazione che vi serve è nel Readme.md

https://github.com/Alamofire/Alamofire

Vedere il loro esempio di implementazione:

let serverTrustPolicies: [String: ServerTrustPolicy] = [ 
    "test.example.com": .PinCertificates(
     certificates: ServerTrustPolicy.certificatesInBundle(), 
     validateCertificateChain: true, 
     validateHost: true 
    ), 
    "insecure.expired-apis.com": .DisableEvaluation 
] 

let manager = Manager(
    serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies) 
) 
+0

Enum tipo 'ServerTrustPolicy' ha nessun caso 'PinCertificates'; intendevi "pinCertificates" –