Flujos de revocaci贸n de credenciales

En Issuer (DELETE /:id)

  1. Se marca como deleted el objeto (certificado) asociado al id recibido
  2. Se traen los jwts asociados y el did del primer participante
  3. Se recorren los JWT y ejecutando por cada uno el endpoint /issuer/revokeCertificate de la API de DIDI (con el jwt y did en cuesti贸n)

En DIDI (/issuer/revokeCertificate)

  1. Se verifica contra Mouro el certificado y el did recibidos (si no son v谩lidos se lanza error)
  2. Se ejecuta una query sobre Mouro, marcando el certificado como revocado (un flag en la DB)
  3. Se modifica el estado del certificado guardado en la DB de DIDI, marc谩ndolo como REVOKED.

Nota:

  • El flujo no es transaccional

Posible revocaci贸n on-chain (status registry)

Librer铆as de uPort involucradas

Pros de revocaci贸n on-chain

  • Mayor grado de descentralizaci贸n
  • Mayor grado de seguridad e integridad (no es posibile modificar la blockchain).
  • Se soporta multiblockchain (aunque se requiere una config).

Contras de revocaci贸n on-chain

  • Se agrega un paso que puede repercutir en la escabilidad en t茅rminos de performance.
  • De todas formas existir铆a una cach茅 de status en ciertos servicios.
  • Debe revocarse en la blockchain correspondiente (requiere una config).
  • Se modifica la estructura del JWT para incluir status.
  • Van a exitir de todas formas JWTs que no poseen status.
  • Puede no ser trivial volver al estado anterior (ante equivocaciones).
  • La soluci贸n de uPort es un draft (el est谩ndar de revocaci贸n es a煤n un Proposal).
  • Actualmente, la credencial puede revocarse por cualquiera, aunque la conveci贸n es considerar v谩lido s贸lo al issuer.
  • Debe esperarse a que la transacci贸n sea minada.
  • Se utiliza un ethereum addres provisto por el DID document.
  • La librer铆a de uPort devuelve un booleano, pero no es f谩cil saber la fecha de revocaci贸n (se requiere ir a una DB de todas formas).

Actual m茅todo off-chain (Mouro)

Librer铆as de uPort involucradas

Pros de revocaci贸n off-chain

  • Escalabilidad en t茅rminos de performance (es s贸lo leer un campo en una DB).
  • Flexibilidad ante cambios (es modificar la estructura de una DB).
  • Se espera a una soluci贸n acabada en t茅rminos del est谩ndar (que a煤n es draft).
  • No debe esperarse a que la transacci贸n sea minada (la acci贸n demora lo que se demora en actualizar su status en una DB).

Contras de revocaci贸n off-chain

  • Menor descentralizaci贸n (se depende de un servicio que conoce a la DB).
  • Dependencia contra la base de datos.