Apple hace software y hardware realmente buenos. Por regla general, sus sistemas de una alta calidad, tanto en el acabado de la UI como en las especificaciones internas (APIs), que son la envidia de otros sistemas (véase Android). Pero con iOS 9 han cometido una «pequeña» pifia que está costando que miles de aplicaciones hayan dejado de funcionar debido a un nuevo mecanismo de seguridad: ATS, o App Transport Security.
ATS es un mecanismo incorporado en la última versión de iOS para asegurar que las apps realizan las comunicaciones con servidores externos de forma segura, es decir, usando protocolo HTTPS y TLS 2.0 por defecto (es decir, la versión 1.0 no sería válida en la configuración por defecto de este mecanismo). Dicho de otra forma: cualquier app que no use este mecanismo de acceso al exterior para obtener o enviar datos, literalmente se muere a los ojos de los usuarios. En los foros, los desarrolladores (lo he vivido en mis carnes) están directamente corriendo como pollos sin cabeza (en los foros de desarrollo de Apple, el último post desesperado es del 27 de septiembre, hace «dos días» como quien dice), ya que muchas de sus apps están sin más dejando de funcionar y en muchos casos, la confusión ha llegado a la propia documentación de Apple (que por cierto está siendo traducida a varios idiomas, entre ellos el castellano), que presenta claves erróneas para la configuración, creando aún más lío y problemas a los pobres programadores.
El problema radica en que no se avisó del cambio, excepto por un vídeo del WWDC de junio de este año, donde se hablaba de las modificaciones de seguridad de la API CFNetwork y que es la que permite que las apps puedan llamar hacia fuera a los servidores de Internet. ATS está activado por defecto, lo que hace que cualquier llamada con HTTP estándar falle, ya que no se cumple la normativa de seguridad. La cuestión es que es anulable, es decir, se puede «parchear» la configuración para poder hacer esas llamadas a dominios específicos a todos en general. La mala pata hizo que incluso en ese vídeo del WWDC, las claves se presentaran de forma errónea, con lo que hasta que Steven Peterson presentó un artículo en su blog aclarando el asunto, muchos desarrolladores no supieran que hacer para que sus apps funcionen correctamente en iOS 9. El verdadero problema es que Apple no avisó de este cambio y además, la documentación oficial no refleja completamente el cambio ni como realizar las configuraciones, lo que ha hecho todo esto mucho más caótico.
En resumidas cuentas, tenemos varios problemas aquí. Primero, no era necesario en absoluto que Apple realizara este cambio, que ha provocado muchas molestias a sus principales valedores, los programadores. Ha hecho que muchos usuarios se frustren porque algunas de sus aplicaciones favoritas fallan ahora sin saber porqué, y esto también puede estar provocando que muchos echen hacia atrás la actualización a iOS 9 debido a este «feature» (ah, que también afecta a OS X El Capitan). Pero además, al ser anulable, hace aún menos justificable su aplicación (la seguridad de los datos de los usuarios) y los problemas ocasionados. Como decía al principio, Apple hace grandes productos, pero de vez en cuando mete la pata con cosas como estas, y no es agradable, la verdad. Imaginados todas las apps antiguas que no se han ido actualizando que van a empezar a fallar en cadena gracias a esta decisión, y que por no actualizarse, van a dejar a los usuarios en la estacada. Mal, Apple. Esta vez, ha sido mal.