El pasado sábado Apple liberaba con urgencia una nueva versión de iOS, la 7.0.6, para corregir un fallo grave en la autenticación de las conexiones del protocolo SSL con el que se establecen la inmensa mayoría de comunicaciones seguras. El problema y el escarnio han llegado cuando nos hemos enterado de que el causante ha sido una línea de código de más muy mal situada.

A continuación, el código de la función que verifica una parte del funcionamiento del protocolo.

Screen_Shot_2014-02-24_at_22

El resumen para los que no sabéis de programación es que el problema reside en esos dos "goto fail" seguidos. El primero está ligado a una condición de verificación, pero el segundo se ejecuta siempre, y hace que no se ejecuta otra necesaria verificación de SSL, por lo que siempre es exitosa. Por ejemplo, un sitio hackeado con un certificado falsificado siempre devolvería que el certificado es válido y establecería una conexión "segura". El descubridor: un ingeniero de Google. Escarnio y mofa.

Pero el gran problema ahora mismo es que, si bien iOS ya está protegido (por favor, actualizad vuestros dispositivos ya mismo), OS X también es afectado por este bug y está en proceso de ser parcheado. Será en la actualización 10.9.2, que según Apple Insider está a punto de ser distribuido.

Las malas lenguas dicen que tiene algo que ver la NSA ya que el fallo apareció a la vez que la agencia gubernamental empezó a espiar a los usuarios de Apple en octubre de 2012. Eso es iOS 6.0 y OS X 10.8. Puede ser un simple fallo del que tocara el código, pero a todo el mundo parece extremadamente sospechoso que Apple no disponga de un entorno de pruebas que compruebe la validez de los certificados y del funcionamiento de SSL cada vez que realizan un cambio en esas librerías.

¿Qué hacer mientras aparece la actualización para OS X? Pues dejar de usar Safari y Mail, ya que son a los que afectan mayormente este problema. Chrome, Firefox y el resto de navegadores no se ven afectados. ¿Pifia de Apple? Enorme, y como se suele decir hoy en día: "Epic Fail".