Afineu la configuració de seguretat del transport de l’aplicació: detecteu

Símbol de cadenat marcat amb un símbol de globus

A Apple creiem que la confidencialitat és un dret humà fonamental. Quan la gent es connecta a un punt Wi-Fi públic, espera utilitzar la vostra aplicació per enviar i rebre dades sense preocupar-vos que algú proper pugui interceptar la seva connexió i accedir a dades sense xifrar. Permetre que fins i tot les dades aparentment inofensives es mantinguin sense xifrar pot exposar la gent al seguiment i a la empremta digital de qualsevol persona al web.

Transport Layer Security (TLS) utilitza el xifratge per protegir les connexions dels ulls indiscrets i URLSession proporciona connexions TLS fortes per defecte amb App Transport Security (ATS).

Tot i això, si heu de connectar-vos a servidors antics que no admeten TLS, ara podeu afegir excepcions ATS a la vostra aplicació. Idealment, les excepcions només haurien d’eliminar dominis o marcs específics que facin enllaços insegurs i heu de limitar les excepcions que vulgueu. Eviteu enviar dades en forma no xifrada, excepte quan sigui absolutament necessari perquè la vostra aplicació funcioni.

Identifiqueu les excepcions ATS necessàries

Per assegurar-vos que la vostra aplicació i les dades que s’hi utilitzen siguin el més segures possibles, és important determinar si actualment l’aplicació estableix connexions insegures.

Per comprovar-ho, desactiveu totes les excepcions ATS actives establint els valors de la vostra llista d’informacions a “NO”. Des d’allà, obriu l’aplicació o executeu les proves del mòdul. Si la vostra aplicació estableix una connexió insegura, Xcode generarà errors en temps d’execució per a cadascun.

Si la vostra aplicació genera connexions insegures, podeu fer diversos passos per eliminar-les.

Protegiu els vostres servidors

Si la vostra aplicació es connecta a servidors que controleu, assegureu-vos que mantenen connexions segures. Això requereix un certificat TLS. Si utilitzeu un servei d’allotjament, comproveu que ofereixen certificats i assegureu-vos que compleixin els requisits descrits a Prevenció de connexions de xarxa no segures.

Eviteu les connexions de xarxa insegures

Utilitzeu HTTPS

Si la vostra aplicació es connecta a servidors que no controleu, sempre heu d’intentar connectar-vos a aquests servidors mitjançant HTTPS en lloc d’HTTP. Podeu determinar si el servidor admet HTTPS simplement canviant “http: //” a “https: //” a la vostra URL i intentant carregar dades d’aquest lloc web. Podeu comprovar-ho manualment en un navegador o executar el codi de la manera següent:

let request = URLRequest(url: URL(string: “https:

Molts llocs web redirigeixen les connexions HTTP a HTTPS. La primera connexió mitjançant HTTPS sovint pot millorar el rendiment de la vostra aplicació. Tot i això, tingueu en compte que, tot i que un lloc web pot utilitzar HTTPS, això no vol dir que compleixi els requisits ATS. Per exemple, pot utilitzar una versió obsoleta de TLS que mostri un avís “Aquesta connexió no és privada” a Safari.

Elimineu les excepcions innecessàries
Podeu eliminar aquestes excepcions als llocs web en què deixeu de rebre errors ATS. Cerqueu “Configuració de seguretat del transport d’aplicacions” a la llista Info.plic i feu clic a la icona “-” per eliminar les excepcions en qüestió.

Configureu els dominis per a excepcions

Si l’aplicació encara necessita establir connexions insegures a determinats dominis, podeu configurar excepcions ATS només per a aquests dominis.

  • Afegiu dominis exclusius directament a Info.plist de l’aplicació o a l’editor del projecte. Aneu a “Signatura i oportunitats” i seleccioneu l’opció “+ Capacitat”.
  • Seleccioneu “Excepció de protecció del transport d’aplicacions” a la llista.
  • Això afegirà una secció “Excepció de protecció del transport d’aplicacions” a les vostres opcions:
  • Feu clic a la icona “+” per afegir dominis als quals la vostra aplicació necessita connectar-se de manera insegura.
  • Introduïu un domini aquí per connectar-vos mitjançant HTTP a aquest domini i als seus subdominis. Si heu de canviar aquesta configuració, podeu fer canvis directament a la vostra llista d’informacions.

Configureu un marc i excepcions per a la classe

En casos rars, és possible que hàgiu de fer una connexió insegura amb un domini desconegut. En aquest cas, hi ha dues excepcions més àmplies que podeu considerar oferir.

  • Si la vostra aplicació ha de fer connexions insegures mitjançant WKWebView, afegiu “Permet la càrrega aleatòria de contingut web” al vostre Info.plist:
  • Si l’aplicació necessita establir connexions insegures mitjançant AVFoundation, afegiu l’opció “Permet descàrregues multimèdia aleatòries”:

Aquestes excepcions asseguraran que la vostra aplicació realitzi connexions insegures només mitjançant AVFoundation o WKWebView, deixant la resta de la vostra aplicació protegida per ATS. Tanmateix, com que són excepcions relativament àmplies, permetran que qualsevol part de la vostra aplicació que utilitzi AVFoundation o WKWebView faci connexions insegures que es puguin interceptar i comprovar.

Mantingueu la vostra aplicació segura

Les persones volen confiar en la vostra aplicació i ATS us pot ajudar a generar aquesta confiança processant les vostres dades de manera responsable mentre sigueu on sigueu. Per treure el màxim partit a ATS:

  • Assegureu-vos que l’aplicació es connecti als servidors mitjançant HTTPS en lloc d’HTTP.
  • Adapteu les excepcions ATS a la vostra aplicació de la manera més precisa possible.
  • Reviseu periòdicament les vostres excepcions per veure si els servidors han començat a admetre HTTPS o si la vostra aplicació ja no necessita connectar-se a aquests servidors per establir connexions insegures.

Recursos




Xarxa amb NSURLSession

NSAppTransportSecurity

Eviteu les connexions de xarxa insegures

NSExceptionDomains

NSAllowsArbitraryLoadsForMedia

NSAllowsArbitraryLoadsInWebContent

WKWebView

Obteniu més informació sobre la seguretat del transport d’aplicacions als fòrums de desenvolupadors

Add a Comment

Your email address will not be published. Required fields are marked *