El 1 de enero de 2019 es la fecha límite de Apple para que los desarrolladores adopten las llamadas de red seguras promovidas por App Transport Security. Pero no espere más y comience a usar ATS en el desarrollo de iOS y macOS hoy mismo.
App Transport Security (ATS) de Apple garantiza que las llamadas de red se realicen a través del protocolo HTTP seguro (HTTPS. Desafortunadamente, Apple permitió que se declararan las lagunas en la lista info.pl para las aplicaciones, y muchos desarrolladores que no podían actualizar su infraestructura recurrieron a adoptar estas lagunas para hacer que su pila de redes fuera compatible. Las llamadas a través de HTTP de texto claro son fácilmente fisgoneadas y falsificadas, dejando a los usuarios de la aplicación muy vulnerables a los secuestros de la red. Sin embargo, Apple nunca garantizó que ATS permitiera la existencia de vacíos legales.
En el WWDC 2019, Apple finalmente fijó una fecha en la que se cerrarían estas brechas, y todos los desarrolladores deberán utilizar protocolos de red seguros en sus aplicaciones: 1 de enero de 2019. Adopta el modelo ATS hoy mismo para asegurarte de que cuando Apple comience a aplicar estos cambios, tu aplicación no se quedará en el camino.
VER:WWDC 2019: Apple requerirá cifrado HTTPS en todas las aplicaciones iOS para 2019
Estos cambios son importantes para los usuarios y desarrolladores de aplicaciones: Los usuarios obtendrán una mejor experiencia y una mejor protección de la privacidad, y los desarrolladores pueden descansar tranquilos por la noche sabiendo que los datos de sus clientes están más seguros durante el transporte desde los dispositivos iOS y macOS a sus servidores.
Más información sobre Movilidad
Aunque todavía no está claro cómo Apple manejará las aplicaciones existentes que ya están en la tienda y es probable que no reciban actualizaciones; sin embargo, espero que veamos rechazos de App Store para nuevas aplicaciones y actualizaciones de aplicaciones si no se cumplen las nuevas reglas.
Siga estos pasos para ver lo fácil que puede ser adoptar ATS y mejorar la privacidad de su aplicación para el transporte de datos.
VER:Cómo Apple planea hacer que las funciones sean más inteligentes al tiempo que equilibra la privacidad (CNET)
Ajustes ATS necesarios
ATS es un conjunto de reglas (no sólo una regla que requiere que las peticiones sean a través de HTTPS) que Apple ha puesto en marcha en iOS, watchOS, tvOS y macOS para garantizar la seguridad de las llamadas de red. Las aplicaciones totalmente habilitadas para ATS se conectarán a servidores que tengan las siguientes tecnologías habilitadas:
- TLS versión 1.2
- Criptografía fuerte usando AES-128 y certificados firmados con SHA-2
- Secreto a futuro (ECDHE)
Estas tres tecnologías clave son las que Apple ha determinado que hacen que una solicitud de red sea segura para los usuarios de dispositivos iOS y macOS. Cada vez que su aplicación realiza una solicitud de red, ésta debe realizarse utilizando estas tres tecnologías; de lo contrario, la solicitud será bloqueada por iOS o macOS. Las peticiones bloqueadas se registrarán como un incidente ATS en la consola, para que puedas ver el problema que se está produciendo y el host al que la aplicación intenta conectarse.
Estos ajustes ATS se aplican automáticamente a todas las solicitudes de red salientes que se originan desde su aplicación. Si creas tu aplicación con el SDK de iOS 10, estos son los ajustes que tu aplicación y cualquier servidor backend deben estar configurados para usar.
Configuración del proyecto Xcode
Configurar tu proyecto Xcode para usar ATS es fácil: Asegúrate de que tu proyecto esté construido con el SDK base de iOS 9 o iOS 10 y, a continuación, asegúrate de que no tienes ninguna de las excepciones enumeradas en el info.plist-cualquier elemento exento enumerado en la lista tendrá que ser explicado a Apple durante el proceso de revisión de la aplicación.
Las reglas ATS se aplican automáticamente a los siguientes casos de uso en iOS, macOS, tvOS y watchOS:
- Conexiones de red NSURLSession
- NSURLConnection conexión de red
- Conexiones de red de AVFoundation
- no WKWebViews
Si utiliza WKWebViews, se concederá automáticamente una excepción de NSAllowArbitraryLoads a esa vista para que sus aplicaciones puedan utilizar la vista web sin experimentar problemas con la solicitud de red bloqueada porque no están sobre HTTPS.
SDKs de terceros y excepciones ATS
Cuando se anunció ATS en WWDC 2015, se introdujo la función de excepciones. Las excepciones comenzarán a ignorarse cada vez que envíes tus aplicaciones al App Store con los SDKs de iOS 10 y macOS 10.12.
La mayoría de los desarrolladores, especialmente aquellos cuyos servidores no estaban preparados para los requisitos ATS, probablemente sólo utilizaron NSAllowArbitraryLoads para eximir genéricamente todas las solicitudes de los requisitos ATS. A partir del 1 de enero de 2019, todos los desarrolladores deben ser capaces de justificar hacer esto antes de que la aplicación entre en el proceso de revisión de la aplicación, o de lo contrario la aplicación será rechazada debido al uso de excepciones ATS.
Se requieren justificaciones razonables para las excepciones:
- NSAllowArbitraryLoads
- NSExceptionPermiteCargas insegurasHTTPS
- NSExceptionMínimoTLSVersión
Para agregar una excepción, abra el archivo info.plist para el objetivo que necesita una excepción ATS y, a continuación, cree una entrada que se parezca a la .
Tenga en cuenta que estas excepciones enumeradas en la lista de Info.plist tendrán que ser explicadas a la revisión de la aplicación cada vez que envíe su aplicación para el proceso de revisión. La lista de excepciones será sin duda similar a la forma en que se aclaran las excepciones de la caja de arena de macOS ) dentro de iTunes Connect.
Se están añadiendo nuevas excepciones para el streaming de medios utilizando AVFoundation sin necesidad de conectarse a través de una conexión TLS. Si utiliza WKWebView, se permitirá una conexión arbitraria para los sitios web que no estén habilitados para HTTPS.
El secreto de reenvío es un requisito de ATS, pero Apple sabe que es posible que la mayoría de los servidores no utilicen esta tecnología en la actualidad. Debido a esto, si su servidor no implementa el secreto de reenvío, la excepción para eso se aplicará automáticamente, pero no espere que esta excepción dure para siempre, al igual que los requisitos de ATS, el secreto de reenvío también se requerirá algún día. Los requisitos siguen siendo los mismos para la versión 1.2 de TLS y la criptografía fuerte usando AES-128 y certificados firmados con SHA-2 si su aplicación será totalmente compatible con ATS.
Algunas de las razones por las que puede necesitar solicitar excepciones a los ATS incluyen:
- El servidor en el que se alojan los datos de su aplicación puede no ser totalmente compatible con ATS, ya sea en la versión TLS, en la criptografía o en los métodos de firma.
- Puede utilizar un servicio o SDK de terceros (como Azure, AWS, o Google Cloud, Firebase, etc.) que aún no sea compatible con ATS en su SDK de Swift u Objective-C.
- Es posible que aún no tenga el tiempo o los recursos para justificar la adición de esta funcionalidad.
Aunque estés solicitando la excepción, no debes confiar en que Apple permita excepciones para siempre. A medida que nos adentramos en un mundo en el que los husmeos en la red y los ciberataques van en aumento, es cada vez más importante que los desarrolladores adopten una postura y protejan mejor sus aplicaciones contra estos ataques.