Probar Verify

Míralo funcionar. Nada que instalar, nada sale de tu navegador.

En esta página ocurren tres cosas distintas, y importa cuál es cuál.

  1. Calculado aquí, ahora

    La huella de tu fichero

    Tu navegador calcula un SHA-256 real del fichero que elijas. Eso es una identidad: dice exactamente qué bytes tienes. No es una inspección del fichero y no dice nada sobre si es seguro.

  2. Una respuesta guardada

    Leer un ejemplo grabado

    Quince situaciones pasaron una vez por el kernel de referencia real, y sus respuestas exactas quedaron escritas. Leer una no es lo mismo que ejecutarla ahora. Cada una lleva el digest de la entrada de la que salió y el comando que la vuelve a ejecutar.

  3. Ejecuta el kernel

    Evaluar un expediente en tu terminal

    Sólo el CLI ejecuta de verdad el kernel de aseguramiento. Toma un expediente y sus pins, y los evalúa en tu máquina. El navegador no puede hacerlo, y esta página no finge lo contrario.

    Cómo ejecutarlo →

¿Qué es un “expediente” y qué son los “pins”?

Un expediente (un bundle) es un único fichero JSON que reúne todo sobre una afirmación: el artefacto, la evidencia producida sobre él, qué ejecución produjo esa evidencia, la política que se aplica y la autoridad bajo la que se aplica.

Los pins son cuatro digests que se entregan aparte, desde fuera: qué debería ser el expediente, la política, la autoridad y el artefacto. Son quien llama comprometiéndose por adelantado con lo que espera, para que el expediente no pueda afirmar su propia identidad sin más.

No necesitas construir uno para seguir esta página. El repositorio incluye ejemplos listos en content/kernel-fixtures/inputs/, y la página de Terminal muestra cómo evaluarlos.

Cómo funciona esta página, paso a paso
E El mecanismo

Qué ocurre cuando eliges un fichero.

Cómo funciona esto

  1. 01

    Tu navegador lee los bytes

    La página que ya tienes abre el fichero en memoria. No se hace copia ni se prepara ninguna petición.

  2. 02

    Web Crypto calcula SHA-256 en tu dispositivo

    La criptografía del propio navegador, la misma que usa para TLS, reduce esos bytes a un único valor de 64 caracteres.

  3. 03

    Aparece el digest; el fichero no se mueve

    Este sitio son ficheros estáticos sin servidor detrás. No hay endpoint que pudiera recibir una subida aunque el código lo intentara.

F Paso a paso

Cómo usar esta página, desde cero.

Paso a paso

No necesitas instalar nada ni entender criptografía para seguir esta página. Cuatro acciones, en orden.

  1. Pulsa "Elige un fichero" y escoge cualquier cosa de este dispositivo: una foto, un PDF, un documento.

    Verás el nombre del fichero, su tamaño, y una línea larga de 64 letras y números.

    Eso significa esa línea larga es la huella del fichero. Dos ficheros con la misma huella son el mismo fichero. Dos con huellas distintas son ficheros distintos, aunque parezcan idénticos.

  2. Mira la segunda demo, donde hay dos frases casi idénticas una al lado de la otra.

    Verás que se diferencian en un solo carácter, y que sus dos huellas no se parecen en nada.

    Eso significa un cambio demasiado pequeño para que lo note una persona cambia la huella por completo. Nadie puede alterar un fichero en silencio y conservar su identidad.

  3. Abre la lista de quince situaciones y pulsa cualquiera.

    Verás un resultado — PASS, FAIL o NO_CONSTA — con la explicación de qué se preguntaba y qué se encontró.

    Eso significa son respuestas que dio el motor real, anotadas antes. El panel nombra la entrada exacta de la que salió cada una.

  4. Dentro de cualquier situación, abre "De dónde sale esta respuesta".

    Verás los digests de la entrada, y un comando que puedes ejecutar tú.

    Eso significa aquí nada te pide que te lo creas. Puedes reproducir cualquiera de estas respuestas en tu propia máquina.

Si no funciona Si no aparece ninguna huella, puede que tu navegador sea antiguo y no tenga la criptografía que esto usa. No se envió nada a ninguna parte; prueba con un Chrome, Safari, Firefox o Edge actual.

A Huella de un fichero local

¿Qué es esto, exactamente?

Esta demo no sube tu fichero. El digest se calcula en este dispositivo con la implementación de Web Crypto de tu navegador, y este sitio no tiene servidor que pudiera recibirlo.

Cualquier fichero. Nada sale de tu navegador.

Aún no has elegido ningún fichero.

D Llévatelo

Descarga un informe de esta sesión

Todo lo que has calculado o comparado en esta página puede exportarse como un fichero JSON, construido por completo en tu navegador. Ningún servidor participa.

B Un byte

¿Cuánto cambia la identidad?

Original

SHA-256 Calculando…

Cambiado en un carácter

SHA-256 Calculando…

La diferencia

Un carácter: 4021 pasó a 4022. Un revisor humano lo pasa por alto. Los digests no tienen nada en común.

Caracteres hexadecimales iniciales que comparten los dos digests: —

Verify los trata como dos artefactos sin relación, porque es lo que son. Una aprobación registrada para uno no dice nada del otro.

C Biblioteca de escenarios

¿Qué dice de verdad el kernel de referencia?

Salida grabada del kernel No es una simulación · no es una ejecución en vivo

Quince situaciones pasaron por el kernel de aseguramiento de referencia real de Master Front NextGen, y estas son sus respuestas exactas, registradas con el digest de cada entrada. Leer una grabación no es lo mismo que evaluar ahora: el comando junto a cada una vuelve a ejecutar el kernel sobre los inputs versionados de ese escenario en tu propia máquina. Y ejecutar el kernel no es lo mismo que estar certificado de forma independiente, cosa que no ocurre.

Situaciones

VALID

Todo encaja

Los bytes coinciden con su pin, la evidencia está vigente, completa y sin disputa, y la regla que pedía la política se cumple.

Expediente interpretable sí
Evaluación de seguridad PASS — Pass: la evidencia responde a la pregunta afirmativamente
Autoridad de ejecución nunca concedida
Códigos de diagnóstico devueltos por el núcleo

ninguno

De dónde sale esta respuesta
Candidata fuente
R2.6.0-AC7
Content root del snapshot
55187fd81c8351bba35d9a22e05ed3fa97a37d325ace75a3afe58632aef25e44
Bundle SHA-256
17120f16dbb28c3735618b024add127b08e897fc899c8fcb7e583ad2ab2e68e9
Tamaño del núcleo que decide
1060 líneas sin blancos ni comentarios
Refleja el test de la fuente
07_TESTS/test_kernel.py::test_001

Exact output of the AC7 reference kernel at recording time. Not a simulation, and not an independent certification. Replaying this file is not the same as evaluating now: use `verify kernel-evaluate --scenario <id>` to re-run the kernel against the versioned inputs beside it.

Vuelve a ejecutarlo tú, en vivo
node cli/bin/verify.mjs kernel-evaluate --scenario VALID --json

Ese comando evalúa los inputs versionados de este escenario con el kernel en tu máquina y reporta execution_mode=LIVE_REFERENCE_KERNEL. Lo que lees arriba es la grabación hecha antes, que `verify demo` reporta como RECORDED_REPLAY.

Resultado completo del kernel
{
  "authority_sha256": "48151d5d76902eac6ee32c605da1b9b29c079ee391200182b82b0285a4b9b556",
  "bundle_sha256": "17120f16dbb28c3735618b024add127b08e897fc899c8fcb7e583ad2ab2e68e9",
  "causally_assessed_run_ids": [
    "RUN-1"
  ],
  "claims": [
    {
      "claim_id": "CLAIM-SAFE",
      "evidence_ids": [
        "E-RUNTIME"
      ],
      "findings": [],
      "status": "PASS"
    }
  ],
  "errors": [],
  "notes": [
    "REFERENCE_KERNEL_ONLY",
    "EVALUATOR_EVALUATES_EXTERNAL_AUTHORITY_AUTHORIZES",
    "NO_SECURE_RUNNER",
    "NO_OPERATIONAL_EFFECT_CLAIM"
  ],
  "policy_sha256": "3729ec67b21a5bd31e23409d8bb4603336fc1dde27871c2f9c50a20269872838",
  "properties": [
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P001-BUNDLE-PINNED",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P002-AUTHORITY-PINNED",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P003-POLICY-PINNED",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P004-SUBJECT-PINNED",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P005-EVIDENCE-CONTENT-INTEGRITY",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P006-EVIDENCE-SUBJECT-BINDING",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P007-RUN-BINDING",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P008-STALENESS-CHECKED",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P009-TIME-BOUNDARIES",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P010-EVIDENCE-COMPLETENESS",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P011-CONFLICT-FREE",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P012-ONE-USE-CONSISTENCY",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [
        {
          "code": "CAUSAL_PREAUTH_NOT_IMPLEMENTED",
          "evidence_ids": [],
          "message": "Offline evaluation cannot prove consume -> capability -> effect ordering",
          "object_id": "MF-P013-CAUSAL-PREAUTH"
        }
      ],
      "property_id": "MF-P013-CAUSAL-PREAUTH",
      "status": "NO_CONSTA"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P014-STRUCTURAL-INDEPENDENCE",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P015-SELF-AUTHORIZATION-DISABLED",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P016-POLICY-CONSUMED-IS-PINNED-POLICY",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P017-UNKNOWN-IS-NOT-PASS",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P018-VERIFIED-EVIDENCE-IS-CONSUMED-EVIDENCE",
      "status": "PASS"
    },
    {
      "evidence_ids": [],
      "findings": [],
      "property_id": "MF-P019-CHANGE-IMPACT-CHECKED",
      "status": "PASS"
    }
  ],
  "record_valid": true,
  "release_authority": false,
  "schema": "MFAK-RESULT-2.3",
  "security_assessment_status": "PASS",
  "subject_sha256": "5a30ea7597d1c5a244200812200e9a309dd6e53c1bc21733c3ec0024060a991e"
}