Sobre la Autenticación
La seguridad de Kamin Ledger se basa en la criptografía asimétrica. Cada registro está protegido por un par de claves pública y privada. Las claves públicas se registran en el ledger y cada operación del libro se verifica comprobando las firmas proporcionadas.
Hay dos tipos principales de solicitudes al ledger: mutaciones y lecturas.
Una mutación representa cualquier tipo de solicitud para almacenar o modificar un registro en el ledger.
Autenticación mediante la firma del cuerpo de una mutación
Las solicitudes de mutación siempre contienen una carga útil diseñada para transmitir toda la información necesaria para realizar la mutación.
Por ello, las mutaciones son más directas y seguras. El principal mecanismo de seguridad para las mutaciones está contenido en el arreglo proofs
que se proporciona en el objeto meta como parte de la carga útil. Por ejemplo, un cuerpo de solicitud para crear una billetera se ve así:
{
"hash": "<hash of the data>",
"data": {
"handle": "wallet-handle"
},
"meta": {
"proofs": [
{
"method": "ed25519-v2",
"public": "<public key>",
"result": "<signature of the hash>",
"digest": "<hash of the data>",
"custom": {
"moment": "2023-02-20T21:42:10.279Z"
}
}
]
}
}Pasos para firmar un objeto como el anterior:
- Serializar los datos
- Hashear los datos serializados
- Firmar el hash con una o más claves privadas
Las claves utilizadas para firmar serán empleadas por el ledger para verificar si está permitido ejecutar la solicitud en cuestión.
Pasos para verificar una mutación entrante:
- Serializar los datos
- Hashear los datos serializados
- Comparar el hash recibido con el hash del payload
- Verificar cada firma recibida utilizando las claves públicas del arreglo de firmas y el hash calculado
Si los pasos anteriores se completan exitosamente, esto significa que el payload recibido es válido y que fue enviado por los propietarios de las claves públicas proporcionadas. Todavía es necesario verificar los permisos de esas claves públicas para asegurarse de que están autorizadas a realizar la operación requerida.
Autenticación con token JWT
Nota
La presencia de un token en el encabezado Authorization no es obligatoria.
Se vuelve obligatoria solo cuando las reglas de autorización están
configuradas para exigirlo. Una vez enviado, el token siempre se valida:
verificando formato, firma y expiración.
El mecanismo de firma anterior no funciona para las solicitudes de lectura, ya que normalmente son solicitudes HTTP GET sin ningún cuerpo.
Para esas solicitudes, la URL, los parámetros de consulta y los encabezados definen lo que será devuelto por la API. Para hacer que la API del ledger sea fácil de usar.
Historial de cambios
- Agregado• Versión inicial