The Tech Preview of the Red Hat Trusted Artifact Signer (RHTAS) is now available. This cutting- edge, self-managed software artifact signing solution, part of our Red Hat Trusted Software Supply Chain portfolio , harnesses the power of the open-source Sigstore project to bolster the security of the software supply chain.
Get it here: https://red.ht/signed
What is it and why should I care?
In a nutshell, Red Hat Trusted Artifact Signer provides an easy-to-use, enterprise-ready deployment of the Sigstore project.
But, that does not answer the question.
In today’s world, the ability to sign artifacts in the Software Supply Chain, such as source code commits, binaries, container images, SBOMs (Software Bills of Material), etc - and verify their integrity and provenance throughout the supply chain (from code commit to production deployment) is not only a matter of self-preservation, but is also becoming a regulatory requirement.
There is no doubt that the ability to sign and validate artifacts provides a significant improvement to the security posture in any software development endeavor.
However, managing private keys is difficult, revoking them in a controlled fashion even more and integrating these in Dev(Sec)Ops pipelines and automation can become a pain.
Even more so, we’d like the developers to focus on what they do best - develop amazing new features that thrill your customers. Overcomplicated security tools can negatively impact your application delivery speed, forcing developers to spend valuable time with tooling, instead of innovation.
This is what the Sigstore project and Red Hat Trusted Artifact Signer (RHTAS) is all about:
By using the Rekor transparency log for auditability and non-repudiation, along with Fulcio as a certificate authority to issue short-term signing certificates, RHTAS’s keyless signing and verification helps simplify and secure the process for signing content by allowing signers to issue temporary signing keys that can be discarded rather than setting up a full key management infrastructure. Organizations adopting Sigstore/Red Hat Trusted Artifact Signer can meet signing-related criteria for achieving Supply Chain Levels for Software Artifacts (SLSA) compliance and have greater confidence in the security and trustworthiness of their software supply chains.
Software developers can use Sigstore/RHTAS to sign their software artifacts and verify their authenticity, ensuring that their software has not been tampered with or modified in transit. This helps to protect the integrity of their software and builds trust with their users.
Platform Engineers/DevSecOps can integrate Sigstore/RHTAS to provide a turnkey security optimized Internal Developer Platform service to their application development teams.
InfoSec/Security professionals can use Sigstore/RHTAS to identify compromised components, avoid their deployment and thus prevent attacks on their organization's software systems, providing an additional layer of protection against unauthorized access or data breaches.
Deployment
Setting up the different components and configuring them correctly may have stopped you from evaluating Sigstore in the past, but with Red Hat Trusted Artifact Signer this has become easy:
- In Tech Preview, we provide a simplified install script, with an Operator (for OpenShift) and Ansible Playbooks (for RHEL) coming soon.
- To make it easy to test, the install script installs an instance of Red Hat SSO (Keycloak) with a default user and a new realm called sigstore
You can find the deployment guide here in the Red Hat Customer Portal.
This deployment encapsulates all the components needed to run Sigstore / Red Hat Trusted Artifact Signer on OpenShift (Ansible Playbook for RHEL coming soon):
Figure 1: Deployed Components
As a second step, we have provided a Grafana Dashboard, by which you can monitor your deployment’s service metrics and usage, as well as the number of current log entries in the Rekor Transparency Log and number of Fulcio Certificates issued:
Figure 2: Grafana Dashboard
Installing the dashboard is as simple as running the ./tas-grafana-install.sh
Script, as shown here
Usage
As already mentioned, signing a code commit should be as simple as possible for developers - while verification of a commit in a later build stage should be easily integratable into your toolchain of choice:
Signing a code commit
After initially setting up your git environment with the endpoints of your new signing and verification infrastructure (RHTAS), signing a code commit is as simple as:
$ git commit -S -m “Test of a signed commit”
Yes, really - that’s all there is to it. All the magic happens in the background.
Verifying a code commit
Verifying that a code commit has been signed, that the certificate is valid for that given issuer (the committer) and has been recorded in Rekor:
gitsign verify --certificate-identity=user@example.com --certificate-oidc-issuer=$OIDC_ISSUER_URL HEAD
Where $OIDC_ISSUER_URL is your OIDC endpoint, in our example the Keycloak / Red Hat SSO realm.
Signing a container image
After verification that your code has not been compromised, you probably would like to build a container image, which in turn should also be signed and later verified in following stages of your CI/CD toolchain:
cosign sign -y --fulcio-url=$FULCIO_URL --rekor-url=$REKOR_URL \ --oidc-issuer=$OIDC_ISSUER_URL IMAGE_NAME
Verifying a container image
Before deploying a container image, you probably would want to verify its signature and integrity like so:
cosign verify --rekor-url=$REKOR_URL \
--certificate-identity=SIGNING_EMAIL \
--certificate-oidc-issuer=OIDC_ISSUER \
IMAGE_NAME
For an example of how this can be incorporated into your Tekton Pipelines, take a look at this repository
https://github.com/securesign/pipelines-demo/
https://github.com/securesign/pipelines-demo/tree/main/00_base_pipelines_manifests
https://github.com/securesign/pipelines-demo/tree/main/01_verify_source_code_pipeline
https://github.com/securesign/pipelines-demo/tree/main/02_build_and_sign_image
and watch this accompanying demonstration.
Note: While Tekton (OpenShift Pipelines) has many benefits and provides a Kubernetes-native build and deployment pipeline experience, it is by no means a prerequisite for Red Hat Trusted Artifact Signer. You can integrate RHTAS with your toolchain of choice.
Querying the Transparency Log (Rekor)
To query the transparency log for published signatures and signing events, you can use the rekor-cli or the Rekor UI:
Rekor CLI:
- Query based on log index rekor-cli get --log-index 0 --rekor_server $REKOR_URL --format json | jq
- Query based on email to get the UUID rekor-cli search --email jdoe@example.com --rekor_server $REKOR_URL --format json | jq
- Use the returned UUID to get the transaction details rekor-cli get --uuid xxxx --rekor_server $REKOR_URL --format json | jq
Rekor Search Web UI:
Point your browser to https://search.sigstore.dev/ for the Rekor Web UI.
By default, this searches the public Sigstore transparency log - if you want to search your own Rekor transparency log, just open the cog and add your own Rekor instance endpoint (from your $REKOR_URL environment variable).
Figure 3: Rekor Search WebUI
Figure 4: Add your own Rekor Endpoint here
As a final remark, it should be noted that while code commits and container images are the most obvious use cases for a signing and verification, Sigstore / RHTAS is not limited to those. You can sign (and verify) basically everything, from release files, to maven-generated SBOMs, to binaries, etc.
So, what do you think? Please let us know your thoughts and ideas.
To give feedback or inform our engineering team of any technical issues with Trusted Artifact Signer, email us at rhtas-support@redhat.com.