Proceso para firmar el código de apps en iOS y iPadOS
En iOS y iPadOS, Apple ofrece seguridad para las apps a través de elementos como la firma de código obligatoria, el inicio de sesión del desarrollador requerido y más.
Firma de código obligatoria
Después de que se ha iniciado, el kernel de iOS o iPadOS controla los procesos y apps del usuario que se pueden ejecutar. Para ayudar a garantizar que todas las apps procedan de una fuente conocida y aprobada, y que no se han manipulado, iOS y iPadOS requieren que todo el código ejecutable se firme con un certificado emitido por Apple. Las apps proporcionadas con el dispositivo, como Mail y Safari, están firmadas por Apple. Las apps de terceros también deben estar validadas y firmadas mediante un certificado emitido por Apple. La firma de código obligatoria extiende el concepto de cadena de confianza del sistema operativo a las apps y ayuda a impedir que apps de terceros carguen código sin firmar o utilicen código que se modifique automáticamente.
Cómo firman sus apps los desarrolladores
Los desarrolladores pueden firmar sus apps mediante la validación del certificado (a través del programa para desarrolladores de Apple). También pueden incrustar infraestructuras dentro de sus apps y validar ese código mediante un certificado emitido por Apple (a través de una cadena de identificador de equipo).
Validación del certificado: para poder desarrollar e instalar apps en dispositivos iPhone o iPad, los desarrolladores deben registrarse en Apple y unirse al programa para desarrolladores de Apple. Apple verifica la identidad real de cada desarrollador, ya sea una persona individual o una empresa, antes de emitir su certificado. Este certificado permite a los desarrolladores firmar apps y enviarlas a App Store para su distribución. Así que todas las apps que están en App Store han sido enviadas por personas u organizaciones identificables, lo cual funciona como elemento disuasorio para la creación de apps maliciosas. Además, Apple las ha revisado para ayudar a garantizar que funcionen generalmente según lo esperado y que no contienen errores ni otros problemas evidentes y notorios. Este proceso de revisión, organización y distribución, que se suma a la tecnología ya comentada, da confianza a los usuarios en cuanto a la calidad de las apps que compran.
Validación de la firma del código: los sistemas operativos iOS y iPadOS permiten a los desarrolladores incorporar en sus apps infraestructuras que pueden ser utilizadas por las propias apps o las extensiones incrustadas en ellas. Para proteger el sistema y otras apps frente a la carga de código de terceros en su espacio de direcciones, el sistema valida la firma de código en todas las bibliotecas dinámicas vinculadas a un proceso al iniciarse. Esta verificación se consigue mediante el identificador de equipo (Team ID), que se extrae de un certificado emitido por Apple. Un identificador de equipo es una cadena de 10 caracteres alfanuméricos, como 1A2B3C4D5F. Un programa puede tener un enlace a cualquier biblioteca de plataformas proporcionada con el sistema o a cualquier biblioteca que tenga el mismo identificador de equipo en su firma de código que el ejecutable principal. Como los ejecutables que se envían con el sistema no cuentan con un identificador de equipo, sólo pueden tener enlaces a bibliotecas que se envíen con el propio sistema.
Verificar apps internas y propietarias
Las empresas que cumplan los requisitos pueden crear apps internas y propietarias para utilizarlas dentro de su organización y distribuirlas a sus empleados. Las empresas y organizaciones pueden solicitar el registro en el Apple Developer Enterprise Program (ADEP). Para obtener más información y consultar los requisitos de elegibilidad, consulta el sitio web del Apple Developer Enterprise Program. Después de que una organización se convierte en miembro de ADEP, puede registrarse para obtener un perfil de datos que permita ejecutar apps internas y propietarias en los dispositivos autorizados.
Los usuarios deben tener instalado el perfil de datos para ejecutar estas apps. De este modo se ayuda a garantizar que sólo los usuarios que elija la organización puedan cargar las apps en sus dispositivos iPhone o iPad. Se confía implícitamente en las apps instaladas mediante la administración de dispositivos móviles (MDM), dado que la relación entre la organización y el dispositivo ya está establecida. De lo contrario, los usuarios tienen que aprobar el perfil de datos de la app en Configuración. Las organizaciones también pueden aplicar restricciones a los usuarios para que no puedan aprobar apps de desarrolladores desconocidos. En el primer lanzamiento de cualquier app interna y propietaria, el dispositivo debe recibir la confirmación positiva de que Apple permite ejecutar la app.