Skip to content

El DNIe firma en macOS #2012

Closed as not planned
Closed as not planned

Description

@sgomez

Parent

#2000

What to build

Quien tiene su DNIe y OpenSC o el módulo de la DGP firma con él en su Mac, desde la ventana y desde una sede, con el diálogo nativo del PIN. Si el DNIe llega por dos vías, gana la que la sonda confirmó que firma, y si dos vías a la vez rompen el canal seguro, solo se carga una.

Acceptance criteria

  • La excepción del DNIe en la deduplicación sigue la ficha de docs/research/dnie-en-macos.md, probada con dobles.
  • Verificación manual del titular, una firma (ID-539): un PDF firmado con su DNIe desde rFirma sale válido; en el ticket se anota solo «firma válida, sí o no».
  • Ninguna prueba ni el CI usan el DNIe del titular.

Blocked by

Spec extract

Implementation Decisions (from #2000):

  • ID-538: Un certificado que llega por el Almacén de macOS y por PKCS#11 se muestra una vez. Por defecto gana la copia del Almacén de macOS (como CNG frente a PKCS#11 en Windows), salvo para el DNIe, donde gana la vía que las sondas confirmen que firma. Si las sondas muestran que dos vías a la vez rompen el canal seguro del DNIe (la hipótesis H2 de ID-478), el adaptador de PKCS#11 no carga OpenSC mientras el controlador del sistema de OpenSC esté presente, o al revés; la decisión queda en la ficha de las sondas.
  • ID-539: El DNIe en macOS se mide con el DNIe del titular en sondas manuales que ejecuta él, en docs/research/dnie-en-macos.md, con las reglas de ID-485: como mucho un intento de PIN por sonda, siempre el correcto; como mucho tres firmas en total; salida anonimizada. Miden: qué instala el paquete de la DGP en un Mac con Apple Silicon (módulo, ruta, arquitectura, si añade un controlador del sistema); si el DNIe aparece por OpenSC, por la DGP o por el controlador del sistema de OpenSC; qué ve PC/SC al meter y sacar la tarjeta; una firma de punta a punta desde rFirma.

Testing Decisions (from #2000):

  • TD-131: Una buena prueba mira el comportamiento visible desde fuera: la lista que recibe la ventana con sus chips y su orden, el estado del lector, lo que se firma y si verifica, el estado de la CA y del manejador. No mira llamadas a Security.framework ni a LaunchServices.
  • TD-132: El Almacén de macOS en el caso de uso de listado de identity, con un doble del adaptador en el puerto Token que entrega certificados con clave de software y con clave en un token: los primeros salen como «Almacén de macOS», los segundos con chip «DNIe» o «Tarjeta», y la deduplicación frente a una copia por PKCS#11 elige la que dice ID-538. Precedente: TD-126 y TD-117/118.

Complexity

complex — depende del diagnóstico de la sonda y cierra la vía PKCS#11 con la deduplicación. Estimación: unos 100k tokens.

Activity

  1. sgomez commented on Oct 19, 2026

    @sgomez
    OwnerAuthor

    ID-532 cae (#2002) y el #2008 hace que el Almacén de macOS no liste identidades con la clave en un token. El DNIe ya no puede llegar por las dos vías, así que el criterio «La excepción del DNIe en la deduplicación sigue la ficha» queda sin objeto: el DNIe sale siempre por PKCS#11.

    La otra mitad de ID-538 sigue siendo de este ticket. Si el #2003 mide que OpenSCToken y OpenSC por PKCS#11 a la vez rompen el canal seguro del DNIe (H2), la decisión sobre qué no se carga sigue la ficha, aunque rFirma ya ignore la copia del llavero.

  2. sgomez commented on Oct 19, 2026

    @sgomez
    OwnerAuthor

    Las tarjetas y el DNIe en macOS salen de #2000 a #2043, que está en needs-triage. Si sigue adelante, este ticket se recupera desde allí.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, an agent can pick it up

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions