Parte del proyecto Sigstore y consiste en mantener un registro público, inmutable y verificable de artefactos de software firmados con una identidad criptográfica. Rekor divide el log en fragmentos [shards] porque contiene más de mil millones de entradas.
$ rekor-cli search --sha 3a7bd3e2360a...
$ rekor-cli loginfo
$ rekor-cli loginfo --config ~/.rekor.yaml
Nota.- "inactive shards" son fragmentos antiguos [cerrados] que ya no cambian y se validan para asegurar que no han sido alterados
$ rekor-cli get --uuid 108e9186e8c5677a11d612...
$ rekor-cli get --log-index 1280065902 | sed -n '1,4p'
$ cosign sign-blob --key cosign.key fichero.txt > fichero.txt.sig
$ cosign sign fichero.txt
$ rekor-cli upload --artifact fichero.txt --signature fichero.txt.sig --public-key cosign.pub
1.-
Flujo completo
$ echo "Linux es un sistema genial" > fichero.txt
$ cosign generate-key-pair
$ cosign sign-blob --key cosign.key fichero.txt > fichero.txt.sig
...
tlog entry created with index: 1280065902
$ cosign verify-blob --key cosign.pub --signature fichero.txt.sig fichero.txt
$ rekor-cli search --sha $(sha256sum fichero.txt | cut -d ' ' -f1)
Nota.- Cuando se sube un archivo a rekor no se puede borrar jamas ya que es "append-only [solo añade]". Al estar basado en el arbol de Merkle si se borrase una entrada, cambiaría el hash del nodo, todos los hashes superiores y el Root Hash y se detectaría inmediatamente.