Image Verification
Tetrate signs TID images using cosign, which is a sigstore project aiming to improve supply chain security. Image signing is the process of adding a signature to a docker image to check its authenticity and integrity. This signature can be verified by using cosign to verify that the image is not tampered with or modified in any way after releasing the build.
The images published to the destination repository are signed using the trustee’s identity: trustee@tetrate-istio-subscription.iam.gserviceaccount.com.
Tetrate have established https://tis.tetrate.io/trustee as a helper to get the correct parameters for the cosign-verify command.
Verification
- Install cosign- Install cosign from sigstore 
- Run cosign- Verify Certificate signature using cosign CLI. You will need credentials from Tetrate to access Tetrate's private repository. - export REGISTRY="<TIS registry>"
 export TIS_PASS="<tis-password>"
 echo $TIS_PASS | docker login $REGISTRY -u token --password-stdin
 cosign verify $(curl -fsSL https://tis.tetrate.io/trustee) <IMAGE>- For example - cosign verify $(curl -fsSL https://tis.tetrate.io/trustee) $REGISTRY/proxyv2:1.22.2-tetratefips0
- Check cosign output- Successful verification will result in following output in stdout screen - The following checks were performed on each of these signatures:
 - The cosign claims were validated
 - Existence of the claims in the transparency log was verified offline
 - The code-signing certificate was verified using trusted certificate authority certificates- Example output - $ cosign verify $(curl -fsSL https://tis.tetrate.io/trustee) $REGISTRY/proxyv2:1.22.2-tetratefips0
 Verification for <registry>/proxyv2:1.22.2-tetratefips0 --
 The following checks were performed on each of these signatures:
 - The cosign claims were validated
 - Existence of the claims in the transparency log was verified offline
 - The code-signing certificate was verified using trusted certificate authority certificates
 [{"critical":{"identity":{"docker-reference":"<registry>/proxyv2"},"image":{"docker-manifest-digest":"sha256:cb113b4815a1f85c48a676167d9d12842ae85f3f11d03f367852c40075741bf5"},"type":"cosign container image signature"},"optional":{"1.3.6.1.4.1.57264.1.1":"https://accounts.google.com","Bundle":{"SignedEntryTimestamp":"MEYCIQC2i7U2Jzt+wJKROFfHPF+h7qPkYKtZjly+Z2WUWALKegIhAI+iCHjrwzThf3Y5MyMO896jbzQibvtTcFBASFkfRnpC","Payload":{"body":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJhZDZhOGY2NzdiNjQ4MjZlYWZmMmVjOWQ3YWI5Njc0MjFiYjAzNjVhOTJhNjdkMTE2MjRjNDAxMTEzMGIwMzliIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJRnZ1RWdJa053RlpNL2Q1YUg5Z2VnMUlDQ3JLNElxTTBCM1hGVzR1TnVyZ0FpQmNCWFdRdnNDN1pHUTFFdHMrZGpkY1lKTEJ6Y0luUjh0a0M5bWtrS01QaUE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTTRla05EUVc1cFowRjNTVUpCWjBsVlRsVlNSRzVsVURRM2RrTmFNbEpYV21wT1UxSkpTbFJUVEUwd2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcE5lRTFxUlhoTlJGVjZUV3BKZUZkb1kwNU5hazE0VFdwRmVFMUVWVEJOYWtsNFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZRYUVVNGVXTTRVRkprWkVONWJ6TTVRek42TVdWWGQwZ3ZaVUU1VG1wc2RsWnBNMWdLVkRSdWRXWXJUMVUyU1d0eVEzSm9aMDlPUlZBMlJsbENNbE1yV2xjMFpuWmxTRzh2Tld4MGFYQklTR2htUWxkMFpqWlBRMEZhWTNkblowZFVUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZZZVdsVkNsaHViVzVGTVZwS1EzSlRiVzlXTUZaQ2JrVmpTM0J2ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDFOQldVUldVakJTUVZGSUwwSkVOSGRRU1VVMlpFaEtNV016VW14YVZVSXdXbGhTZVZsWVVteE1WMng2WkVkc2RreFlUakZaYms1cVkyMXNkd3BrUjJ4MlltazFjRmxYTUhWYU0wNXNZMjVhY0ZreVZtaFpNazUyWkZjMU1FeHRUblppVkVGd1FtZHZja0puUlVWQldVOHZUVUZGUWtKQ2RHOWtTRkozQ21ONmIzWk1Na1pxV1RJNU1XSnVVbnBNYldSMllqSmtjMXBUTldwaU1qQjNTM2RaUzB0M1dVSkNRVWRFZG5wQlFrTkJVV1JFUW5SdlpFaFNkMk42YjNZS1RESkdhbGt5T1RGaWJsSjZURzFrZG1JeVpITmFVelZxWWpJd2QyZFphMGREYVhOSFFWRlJRakZ1YTBOQ1FVbEZaWGRTTlVGSVkwRmtVVVJrVUZSQ2NRcDRjMk5TVFcxTldraG9lVnBhZW1ORGIydHdaWFZPTkRoeVppdElhVzVMUVV4NWJuVnFaMEZCUVZsNFdGaExPSGhCUVVGRlFYZENSMDFGVVVOSlIzSTNDbmxaVFM4MFdEaDJVMDVaWkROWVYzQjFXWGh2YTFKaFltdGlkWGxKVUZORlRFVjFUbE5xYkRaQmFVRTVTWE52ZDAxeU5UZHlTWGx1VDA5b1IzSlJVRTRLTlZoSlpUTmthVVpSU2psS1EyZGpiblZMY2trMWVrRkxRbWRuY1docmFrOVFVVkZFUVhkT2NFRkVRbTFCYWtWQmIydFBiQzgzZGtScmJtaHhlbUpET0FwWlIyUTRhR1pwYlRaRlJUTkdhR0ZzZHpaYVFtUmFlVVpyZVdOR05qUnlZMGw2ZGpVMGFGQnJjMVpvZWtOWGJtWkJha1ZCWjNaVlVqRmtZMEpVZURsTUNuRjNRV3MxWTI0eFpsQXZVMWRaWVZwNWRqTjBkMk15UlVGVkwySndXR3c1Tm5WTmEwUjZhRFpMZVVoNVNWSlVNVTV0Vkc4S0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19","integratedTime":1702272741,"logIndex":55782018,"logID":"c0d23d6ad406973f9559f3ba2d1ca01f84147d8ffc5b8445c224f98b9591801d"}},"Issuer":"https://accounts.google.com","Subject":"trustee@tetrate-istio-subscription.iam.gserviceaccount.com"}}]- To check the Subject - $ cosign verify $(curl -fsSL https://tis.tetrate.io/trustee) $REGISTRY/proxyv2:1.22.2-tetratefips0 | jq -r '.[].optional.Subject'
 Verification for <registry>.tetrate.io/proxyv2:1.22.2-tetratefips0 --
 The following checks were performed on each of these signatures:
 - The cosign claims were validated
 - Existence of the claims in the transparency log was verified offline
 - The code-signing certificate was verified using trusted certificate authority certificates
 trustee@tetrate-istio-subscription.iam.gserviceaccount.com
Conclusion
By using cosign to verify Tetrate's images, you can confidently ascertain that the integrity of the image is maintained, reflecting Tetrate's commitment to secure and reliable software distribution.