Uso de motores de navegador alternativos en Japón

    En iOS 26.2 y versiones posteriores, los motores de navegador que no sean WebKit se pueden usar en dos tipos de apps para los usuarios de Japón: apps de navegador dedicadas que ofrecen una experiencia de navegación web completa y apps de administradores de motores de navegador que ofrecen experiencias de navegación dentro de la app mediante un motor de navegador integrado.

    Apple proporcionará a los desarrolladores autorizados acceso a tecnologías dentro del sistema que habiliten funcionalidades esenciales y los ayuden a ofrecer motores de navegación modernos de alto rendimiento. Estas tecnologías incluyen la compilación justo a tiempo, compatibilidad con varios procesos y mucho más.

    Sin embargo, dado que los motores de navegación están constantemente expuestos a contenido potencialmente malintencionado y no confiable, y tienen visibilidad de datos confidenciales del usuario, son uno de los vectores de ataque más comunes para los malos actores. Para ayudar a proteger a los usuarios en línea, Apple solo autorizará a los desarrolladores a implementar motores de navegación alternativos una vez que cumplan con criterios específicos y se comprometan con una serie de requisitos de privacidad y seguridad continuos, como actualizaciones de seguridad oportunas para abordar las amenazas y vulnerabilidades emergentes.


    Derecho del motor de navegación web

    Para apps de navegador

    Con el derecho del motor de navegación web, puedes usar un motor de navegación alternativo en la app de navegador. Si te interesa usar un motor de navegación alternativo en la app de navegador, revisa los siguientes requisitos y luego envía tu solicitud para el derecho del motor de navegación web. Para obtener orientación técnica, consulta lo siguiente:

    Requisitos

    Para obtener el derecho, la app debe cumplir con las siguientes condiciones:

    • Distribuirse exclusivamente en iOS en Japón (excepto en cualquier otra jurisdicción o plataforma de Apple expresamente permitida por Apple en virtud del Acuerdo de Apple Developer, incluidas las adendas, para lo cual también se ha obtenido el perfil de derechos correspondiente).
    • Tener el derecho del navegador predeterminado.
    • Cumple con los siguientes requisitos funcionales para asegurarte de que tu app use un motor de navegación web que proporcione una referencia de funcionalidad web:
      • Superar un porcentaje mínimo de las pruebas disponibles en los paquetes de pruebas estándar de la industria:
        • El 90% de las pruebas de Web Platform Tests
          • como porcentaje de la mayor cantidad de subpruebas ejecutadas por cualquier navegador en la página principal de wpt.fyi; y
          • en un sistema operativo con el que el paquete de pruebas sea compatible
        • El 80% de Test262 en un dispositivo iOS, iPadOS o Mac con chip de Apple; y
      • Cumplir con el requisito del paquete de pruebas anterior si la compilación justo a tiempo (JIT) no está disponible (p. ej., si el usuario activa el modo hermético).
    • Tú y tu app deben cumplir con los siguientes requisitos de seguridad:
      • Comprometerse a usar procesos de desarrollo seguros, como la supervisión de la cadena de suministro de software de tu app para detectar vulnerabilidades, y seguir las prácticas recomendadas en torno al desarrollo de software seguro (como realizar modelos de amenazas en nuevas funcionalidades en desarrollo).
      • Proporcionar una URL a una política de divulgación de vulnerabilidades publicada que incluya información de contacto para que terceros (entre los que se puede incluir Apple) te informen vulnerabilidades y problemas de seguridad, qué información proporcionar en un informe y cuándo esperar actualizaciones de estado.
      • Comprometerse a mitigar las vulnerabilidades que se estén explotando dentro de tu app o del motor de navegación web alternativo en uso de forma oportuna (por ejemplo, 30 días para las clases más simples de vulnerabilidades que se estén explotando activamente).
      • Proporcionar una URL a una página web (o páginas) disponible para el público que proporcione información sobre cuáles de las vulnerabilidades reportadas se resolvieron en versiones específicas del motor de navegación y la versión de la app asociada, si es diferente.
      • Si el motor de navegación web alternativo usa un almacén de certificados raíz al que no se accede a través del SDK de iOS, debes hacer que la política de certificados raíz sea accesible públicamente, y el propietario de esa política debe participar como navegador en la Autoridad de certificación/Foro de navegadores.
      • Demostrar compatibilidad con los protocolos modernos de seguridad de la capa de transporte para proteger las comunicaciones de datos en tránsito cuando se use el motor de navegación.
    Requisitos de seguridad del programa

    Debes hacer lo siguiente:

    • Usar lenguajes de programación seguros para la memoria, o funcionalidades que mejoren la seguridad de la memoria dentro de otros lenguajes, en el motor de navegación web alternativo, como mínimo para todo el código que procese contenido web.
    • Adoptar las mitigaciones de seguridad más recientes (por ejemplo, códigos de autenticación de puntero) que eliminen clases de vulnerabilidades o hagan mucho más difícil el desarrollo de una cadena de explotación. Esto incluye la adopción de lo siguiente:
      • Códigos de autenticación de puntero (PAC).
      • Memory Integrity Enforcement (MIE) para cualquier (i) asignador proporcionado por el sistema en cualquier extensión de contenido y (ii) asignador personalizado o proporcionado por el sistema en cualquier proceso y extensión de tu app, incluidas las extensiones de red y de representación gráfica.
    • Seguir prácticas recomendadas de programación y diseño.
    • Usar la separación de procesos para limitar los efectos de la explotación y validar la comunicación entre procesos (IPC) dentro del motor de navegación web alternativo.
    • Monitorear para detectar vulnerabilidades en cualquier dependencia de software de terceros y más en general en la cadena de suministro de software de la app, migrando a versiones más recientes si una vulnerabilidad afecta a la app.
    • No usar frameworks o bibliotecas de software que ya no reciban actualizaciones de seguridad en respuesta a vulnerabilidades.
    • Priorizar la resolución de las vulnerabilidades reportadas con rapidez en lugar del desarrollo de nuevas funcionalidades. Por ejemplo, cuando el motor de navegación web alternativo une las capacidades entre el SDK de la plataforma y el contenido web para habilitar las API web, si se solicita, debes eliminar el soporte para dicha API web si se identifica que presenta una vulnerabilidad. La mayoría de las vulnerabilidades se deben resolver en 30 días, pero algunas pueden ser más complejas y llevar más tiempo.
    Requisitos de privacidad del programa

    Debes hacer lo siguiente:

    • Bloquear las cookies de origen cruzado (es decir, las cookies de terceros) de forma predeterminada, a menos que el usuario opte expresamente por permitir dichas cookies con un consentimiento informado, o según sea necesario para la compatibilidad en el caso de ventanas emergentes que interactúen con marcos en su ventana de apertura.
    • Particionar cualquier almacenamiento o estado que puedan observar los sitios web por sitio web de nivel superior, o bloquear dicho almacenamiento o estado del uso y la observabilidad entre sitios.
    • No sincronizar ningún estado (incluidas las cookies) entre tu app y cualquier otra app, ni siquiera otra app del mismo desarrollador, a menos que el usuario haya dado permiso explícito para que se sincronice el estado, ya sea iniciando sesión tanto en tu app como en la otra app, o mediante otro mecanismo que proporcione permiso explícito.
    • No compartir identificadores de dispositivos con sitios web sin el consentimiento informado y la activación del usuario.
    • Etiquetar las conexiones de red usando las API proporcionadas para generar un informe de privacidad de la app en iOS (es decir, dondequiera que se distribuya la app).
    • Seguir los estándares web comúnmente adoptados sobre cuándo solicitar la activación informada del usuario o el consentimiento del usuario, según corresponda para las API web (p. ej., el portapapeles o el acceso a pantalla completa), incluidas las que brindan acceso a la PII.

    Derecho del motor de navegación integrado

    Para navegación dentro de la app

    Con el derecho del motor de navegación integrado, puedes integrar un motor de navegación alternativo dentro de tu app para proporcionar navegación dentro de la app. La navegación dentro de la app es la visualización dinámica del contenido de Internet al que se puede acceder y que funciona dentro de una app de navegación web. Esto no incluye el contenido integrado dentro de la app o que solo se puede obtener a través de la app.

    El enfoque principal de tu app mientras se proporciona la navegación dentro de la app debe ser proporcionar la funcionalidad de navegación web. Cuando se proporciona la navegación dentro de la app, la interfaz de usuario debe hacer lo siguiente:

    • Tomar el control de la mayoría de la pantalla, además de los controles relevantes que permiten al usuario final controlar la sesión de navegación.
    • Proporcionar un botón o enlace al navegador predeterminado del sistema para permitir al usuario final abrir una app de navegador dedicada y ver el contenido que se muestra actualmente.
    • Mostrar el dominio o la URL cuyo contenido la navegación dentro de la app está renderizando.

    Si te interesa usar un motor de navegación alternativo en tu app para brindar experiencias de navegación dentro de la app, revisa los siguientes requisitos y envía tu solicitud para el derecho del motor de navegación integrado. Deberás proporcionar información sobre el motor que deseas integrar, al igual que información sobre cómo cumple con los requisitos y cómo se puede integrar en una app para brindar la experiencia de navegación dentro de la app. Para obtener orientación técnica, consulta la sección Ejemplos y recursos.

    Requisitos

    Para cumplir los requisitos, la organización debe ser administradora de motores de navegador. Un administrador de motores de navegador es una entidad cuya responsabilidad principal es operar un motor de navegador web específico.

    • La responsabilidad principal significa que tienes el control operativo y eres el máximo responsable de coordinar la respuesta cuando se detecta una vulnerabilidad de seguridad o privacidad en el motor del navegador web, así como de resolverla.
    • Un motor de navegador web específico está mantenido por una entidad u organización diferente a cualquier otro motor de navegador web, y tiene una arquitectura y compatibilidad con API web que son sustancialmente diferentes a las de cualquier otro motor. El motor no se actualiza generalmente para reflejar los cambios realizados en sus bifurcaciones, sino que impulsa los cambios en sus bifurcaciones.
    Requisitos de la app

    La app debe cumplir los siguientes requisitos:

    • Distribuirse exclusivamente en iOS en Japón (excepto en cualquier otra jurisdicción o plataforma de Apple expresamente permitida por Apple en virtud del Acuerdo de Apple Developer, incluidas las adendas, para lo cual también se ha obtenido el perfil de derechos correspondiente).
    • Usar el derecho únicamente para navegar dentro de la app.
    • No tener el derecho del navegador predeterminado.
    • Cumple con los siguientes requisitos funcionales para asegurarte de que tu app use un motor de navegación web que proporcione una referencia de funcionalidad web:
      • Superar un porcentaje mínimo de las pruebas disponibles en los paquetes de pruebas estándar de la industria:
        • El 90% de las pruebas de Web Platform Tests
          • como porcentaje de la mayor cantidad de subpruebas ejecutadas por cualquier navegador en la página principal de wpt.fyi; y
          • en un sistema operativo con el que el paquete de pruebas sea compatible
        • El 80% de Test262 en un dispositivo iOS, iPadOS o Mac con chip de Apple; y
      • Cumplir con el requisito del paquete de pruebas anterior si la compilación justo a tiempo (JIT) no está disponible (p. ej., si el usuario activa el modo hermético).
    • Cumplir con los siguientes requisitos de seguridad:
      • Comprometerse con procesos de desarrollo seguros, como la supervisión de la cadena de suministro de software de tu app para detectar vulnerabilidades, y seguir las prácticas recomendadas en torno al desarrollo de software seguro (como modelar amenazas en nuevas funcionalidades en desarrollo).
      • Proporcionar una URL a una política de divulgación de vulnerabilidades publicada que incluya información de contacto para que terceros (entre los que se puede incluir Apple) te informen vulnerabilidades y problemas de seguridad, qué información proporcionar en un informe y cuándo esperar actualizaciones de estado.
      • Comprometerse a mitigar las vulnerabilidades que se estén explotando dentro de tu app o del motor de navegación web alternativo de forma oportuna (por ejemplo, 30 días para las clases más simples de vulnerabilidades que se estén explotando activamente).
      • Proporcionar una URL a una página web (o páginas) disponible para el público que proporcione información sobre cuáles de las vulnerabilidades reportadas se resolvieron en versiones específicas del motor de navegación y la versión de la app asociada, si es diferente.
      • Si el motor de navegación web alternativo que eliges usa un almacén de certificados raíz al que no se accede a través del SDK de iOS, debes hacer que la política de certificados raíz sea accesible públicamente, y el propietario de esa política debe participar como Consumidor de certificados en la Autoridad de certificación/Foro de navegadores.
      • Demostrar compatibilidad con los protocolos modernos de seguridad de la capa de transporte para proteger las comunicaciones de datos en tránsito cuando se use el motor de navegación.
    Requisitos de seguridad del programa

    Debes hacer lo siguiente:

    • Usar lenguajes de programación seguros para la memoria, o funcionalidades que mejoren la seguridad de la memoria dentro de otros lenguajes, en el motor de navegación web alternativo, como mínimo para todo el código que procese contenido web.
    • Adoptar las mitigaciones de seguridad más recientes que eliminan clases de vulnerabilidades o dificultan mucho el desarrollo de una cadena de explotación.
    • Seguir prácticas recomendadas seguras de programación y diseño.
    • Monitorear para detectar vulnerabilidades en cualquier dependencia de software de terceros y más en general en la cadena de suministro de software de la app, migrando a versiones más recientes si una vulnerabilidad afecta a la app.
    • No usar frameworks o bibliotecas de software que ya no reciban actualizaciones de seguridad en respuesta a vulnerabilidades.
    • Priorizar la resolución de las vulnerabilidades reportadas con rapidez en lugar del desarrollo de nuevas funcionalidades. Por ejemplo, cuando el motor de navegación alternativo conecte capacidades entre el SDK de la plataforma y el contenido web para habilitar las API web, si se solicita, debes eliminar el soporte para una API web si se identifica que presenta una vulnerabilidad. La mayoría de las vulnerabilidades se deben resolver en 30 días, pero algunas pueden ser más complejas y llevar más tiempo.
    Requisitos de privacidad del programa

    Debes hacer lo siguiente:

    • Bloquear las cookies de origen cruzado (es decir, las cookies de terceros) de forma predeterminada, a menos que el usuario opte expresamente por permitir dichas cookies con un consentimiento informado, o según sea necesario para la compatibilidad en el caso de ventanas emergentes que interactúen con marcos en su ventana de apertura.
    • Particionar cualquier almacenamiento o estado que puedan observar los sitios web por sitio web de nivel superior, o bloquear dicho almacenamiento o estado del uso y la observabilidad entre sitios.
    • No compartir identificadores de dispositivos con sitios web sin el consentimiento informado y la activación del usuario.
    • Etiquetar las conexiones de red usando las API proporcionadas para generar un informe de privacidad de la app en iOS (es decir, dondequiera que se distribuya la app).
    • Seguir los estándares web comúnmente adoptados sobre cuándo solicitar la activación informada del usuario o el consentimiento del usuario, según corresponda para las API web (p. ej., el portapapeles o el acceso a pantalla completa), incluidas las que brindan acceso a la PII.
    Requisitos adicionales
    • Debes incluir con cada envío binario el nombre y la versión del motor de navegación web alternativo integrado en tu app.
    • Una vez disponible una nueva versión del motor de navegación web alternativo integrado en tu app, debes enviar una actualización de app con esa nueva versión en un plazo de quince (15) días calendario.

    Ejemplos y recursos

    En esta sección, se incluyen recursos y ejemplos adicionales que te ayudarán a cumplir con los requisitos que te permiten usar un motor de navegación alternativo.

    SDLC (ciclo de vida del desarrollo de software) seguro

    Muchos de los requisitos que debes cumplir dependen del desarrollo de un enfoque de prioridad en seguridad y privacidad para introducir nuevas funcionalidades en tu app. Cuando comiences a desarrollar una nueva funcionalidad, primero debes desarrollar un modelo de amenazas y un plan sobre cómo obtendrás la seguridad de que tu arquitectura y la versión lanzada de tu app mitigan los riesgos que identificaste. Hay varias técnicas para obtener seguridad, por ejemplo, auditoría de código, pruebas de fuzz y pruebas de escritura para verificar las propiedades de seguridad que pretendes aplicar. Debes considerar que todo el contenido web no es de confianza y es potencialmente malicioso.

    Recursos

    Mitigaciones de seguridad y seguridad de la memoria

    También debes tener en cuenta las medidas de seguridad que ofrecen actualmente iOS o iPadOS, como los códigos de autenticación de puntero y la Memory Integrity Enforcement, y qué lenguajes de programación (o funcionalidades de lenguajes y compiladores, y otras herramientas) están disponibles para mitigar cada amenaza que identifiques. Por ejemplo, Swift es un lenguaje seguro para la memoria de forma predeterminada y puede ayudarte a evitar una serie de fuentes comunes de vulnerabilidades, así como otros errores de software relacionados con la memoria. Sin embargo, los lenguajes no seguros de la memoria, como C++, sí brindan funcionalidades que ofrecen beneficios de seguridad de la memoria, como std::span. Además, se pueden usar opciones y herramientas del compilador, por ejemplo, -fbounds-safety con C, que permite anotar el código existente para mitigar el acceso a la memoria fuera de límites sin necesidad de reescribir siempre la funcionalidad en un lenguaje que sea seguro para la memoria por defecto.

    Recursos

    Administración de vulnerabilidades

    Debes asumir que las vulnerabilidades no descubiertas siempre estarán presentes en un motor de navegación o que cualquier funcionalidad nueva podría presentar riesgos no deseados. Por lo tanto, es fundamental que tengas los procesos establecidos para poder responder cuando se descubre una vulnerabilidad internamente a través de pruebas y esfuerzos de seguridad y privacidad, dentro de tu cadena de suministro de software, o aquellas vulnerabilidades que otra parte te revele.

    Cuando brindes una vía para que un tercero (por ejemplo, un investigador de seguridad) te informe una vulnerabilidad, debes considerar qué información necesitarás de ellos para poder determinar rápidamente la validez y la causa del problema. También debes asegurarte de tener procesos implementados para priorizar una solución para la vulnerabilidad y luego publicar una actualización que podría estar fuera de tu horario normal.

    También es importante que los usuarios puedan determinar rápidamente qué vulnerabilidades públicas que tienen un CVE-ID asociado se resuelven en qué versión de tu app (o motor de navegación alternativo).

    Recursos

    Seguridad de la red

    Al usar el SDK de iOS, específicamente el framework Network o las API de SecTrust, reduces la necesidad de asumir la responsabilidad de evaluar la confianza de los certificados web y mantener o usar un almacén de confianza raíz correspondiente y un programa para el motor de navegación alternativo que usas. Si administras un programa, ese programa debe proporcionar información sobre cómo una autoridad de certificación raíz (CA) puede solicitar formar parte del programa, y también cómo se pueden informar los incidentes (por ejemplo, la exposición del material de clave privada de una autoridad de certificación raíz) para que puedas tomar medidas.

    Los protocolos que se usan en la web evolucionan constantemente para responder a las amenazas emergentes y proteger mejor la privacidad y la seguridad de los usuarios. Las versiones modernas de TLS actuales que deberían ser compatibles con tu motor de navegación alternativo que no sean obsoletas son TLS 1.2 y 1.3. Sin embargo, estas versiones pueden cambiar con el tiempo. Puedes admitir protocolos obsoletos en tu motor de navegación alternativo, pero debes informar a los usuarios cuando naveguen a un sitio que solo admita dichos protocolos.

    Recursos

    Acuerdos