Flujos de revocaci贸n de credenciales
En Issuer (DELETE /:id
)
- Se marca como
deleted
el objeto (certificado) asociado al id recibido - Se traen los jwts asociados y el did del primer participante
- 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
)
- Se verifica contra Mouro el certificado y el did recibidos (si no son v谩lidos se lanza error)
- Se ejecuta una query sobre Mouro, marcando el certificado como revocado (un flag en la DB)
- 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
- https://github.com/uport-project/ethr-status-registry
- https://github.com/uport-project/revocation-registry
- https://github.com/uport-project/credential-status
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
- https://github.com/uport-project/mouro
- Otras est谩ndar ya mencionadas en otros documentos.
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.