Signature plan and handoff: the author's four decisions are in the draft

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
main
dev 6 days ago
parent 3846fd62b3
commit b346bfc938

@ -28,7 +28,7 @@ Estado al parar la sesión del 26 por el límite semanal de uso. Se actualizó e
**Siguiente:**
1. Hecho: la propuesta de Fable y Astra está en [spec_v0.11/revision_fable_astra.md](spec_v0.11/revision_fable_astra.md). El autor cerró con ella el área fija de 32 KiB provisionales y el sello obligatorio con certificado. El [plan](PLAN_firma_go.md#propuesta-de-fable-y-astra-01-10) recoge siete comprobaciones contra la spec, y el autor confirmó las tres primeras.
2. Medir una firma CAdES real: firmar con AutoFirma un fichero de 98 bytes y anotar cuánto ocupa con la cadena y con sello.
3. El borrador del spec v0.11, paso 0 del plan, está en la rama `v0.11` de `datekeys-go`, en `e224119`, sin subir. Falta una revisión adversarial y que el autor lo apruebe. Después, los pasos de Go del plan.
3. El borrador del spec v0.11, paso 0 del plan, está en la rama `v0.11` de `datekeys-go`, sin subir: `e224119` lo redacta y `5a0b95b` aplica la revisión adversarial ([spec_v0.11/revision_borrador.md](spec_v0.11/revision_borrador.md)) y las cuatro decisiones del autor (autoridades reconocidas, `capsule_id` en la sal de la llave de palabras, sobre opaco y `AUTHOR_MESSAGE` en texto). Falta que el autor apruebe el texto. Después, el código pendiente que lista el plan y los pasos de Go.
4. Pendiente en `datekeys-ts`:
- en `/inspect`, el resultado delante y los pasos 1 a 18 plegados;
- el texto del paso 17 cuando la cápsula se corta tras un chunk completo;

@ -93,13 +93,13 @@ El autor confirmó los tres el 01-10. El paso 0, el borrador del spec v0.11, est
Tres revisores adversariales (criptografía, interoperabilidad y privacidad) revisaron el borrador `e224119`: [spec_v0.11/revision_borrador.md](spec_v0.11/revision_borrador.md). Coinciden en un bloqueante: el sello y los nombres de los certificados no se anclan en nada.
**Decisiones del autor, pendientes:**
**Decisiones del autor**, tomadas el 01-10 con la recomendación y aplicadas, con los arreglos de abajo, en `5a0b95b` de `datekeys-go`:
1. **Autoridades de confianza.** Fijar en el SDK las autoridades de los certificados de los firmantes (FNMT, DNIe) y las TSA admitidas, y comprobar la cadena hasta ellas en el instante del sello, sin revocación; o no comprobar nada y rebajar los textos de F6 y S4.
2. **`capsule_id` en la sal de la llave de palabras,** para que una ronda popular no permita atacar todas sus cápsulas a la vez.
3. **Sobre opaco** para guardar la cápsula fuera: se sube el `.dkc` cifrado con una clave aleatoria que va en el localizador.
4. **`AUTHOR_MESSAGE` legible,** como texto con el hash en hexadecimal y un código corto para comparar.
**Arreglos sin decisión**, que se aplican al borrador:
**Arreglos sin decisión**, aplicados al borrador:
- `SIG_PART` sobre el contenido exacto de la clave 2, sea cual sea su `alg`.
- §29.10: un procedimiento por firmante. F1 solo para la forma de lo presente; F5 para un firmante ausente, sin sello, no verificable o con el certificado fuera de validez en t; los firmantes ajenos, aparte; un `SignerInfo` por certificado.
- Perfil CMS y del token: DER de X.690 con los SET OF ordenados; una tabla cerrada de OID; el hash de la firma igual a `digestAlgorithm`; el content-type y el message-digest del token; ESSCertID o ESSCertIDv2 de la TSA; un solo `signature-time-stamp`; otros atributos no firmados, ignorados; RSA de 2048 a 4096 bits; imprint SHA-256 en `seal_type` 2; S4 solo con genTime + accuracy < round_time.
@ -114,3 +114,8 @@ Tres revisores adversariales (criptografía, interoperabilidad y privacidad) rev
- Flujos: la regla 17 sobre lo definitivo; `capsule_digest` omitido con localizador; §29.2 y la regla 13 alineadas; ni `I_PAYLOAD` ni el contenido en disco mientras se espera una firma; quitar `eContent` y podar la cadena (MAY).
- Las cifras de §76, la redacción de los prefijos, el mensaje de la firma de prueba, los vectores de lo firmado sobre `format3_single` y una tabla de minúsculas de Unicode 18 para Go y TypeScript.
**Código pendiente por la revisión**, antes de los pasos de Go:
- La llave de palabras con la sal v2 (`capsule_id`), en `wordkey` y la CLI de Go y en la página, con el vector nuevo de §38.1. La identity se deriva después de generar `capsule_id`, así que `encryptFiles` y `EncryptFiles` reciben las palabras.
- Una tabla de minúsculas de Unicode 18.0.0, generada con `pathrule/gen`, para Go y TypeScript; y el rechazo de controles, Default_Ignorable y Cn al escribir.
- La lista de autoridades reconocidas (§29.13), con su contenido inicial, al medir firmas y sellos reales.

Loading…
Cancel
Save

Powered by TurnKey Linux.