A defence customer objects that Sigstore's public Rekor log exposes internal repository and staff names — how do you answer?
answer
- concede the leak, then price it
- identity, digest, time — forever
- hashes, not source or binaries
- private log, but you own the keys
- transparency is worth its audience
basics
~20 sConcede the leak: identities, artifact digests and timing are published permanently, enough to map repositories and release cadence. Then price the alternative — a private log keeps that internal but loses the outside scrutiny that gives transparency its value.
solid answer
~50 sI would not argue the leak away, because it is real. Every entry publishes the signing identity — for CI signing effectively a repository and workflow path, for human signing an email — plus the artifact digest and the exact time, forever. An outside observer can derive internal project names, team structure and release cadence. What is not published is source or artifact content; only hashes. From there it is a scoping decision: sign publicly distributed artifacts in the public log, where external verifiability is the whole point, and run a private Sigstore deployment for internal-only artifacts. That option is not free — you own the log's availability and keys, you must distribute your trust root to every verifier, and a log only you watch has lost most of its transparency value. I would also stop signing under personal identities.
go deeper
Know that entries in a public transparency log are permanent and readable by anyone, and that they include the signer's identity and the artifact's hash but not the artifact itself.
Be able to enumerate the exposed fields and what an outsider infers from them — project names, activity, cadence — and to state that append-only means nothing can be withdrawn.
Show you can scope the decision per artifact class rather than per organisation, and that you would move signing to purpose-named workload identities so the public record carries no staff names.
Own the tradeoff explicitly: transparency is worth what its audience is worth, so a private deployment buys confidentiality at the cost of external verifiability and of the scrutiny that made the log credible. Be able to defend that to a customer without overselling either option.
## Take the objection seriously first The wrong answer is to tell a security-conscious customer that a public append-only log of your signing activity leaks nothing. It leaks, permanently, and by design. What is published in each entry: - **The signing identity.** For workload signing this typically identifies the repository and the specific workflow that ran. For human signing it is an account identifier such as an email address. Either way, internal names become external names. - **The artifact digest.** A hash, not content — but a hash is a durable correlator. Anyone who ever obtains a copy of that artifact can prove you signed it. - **The time.** Precise, log-signed, and therefore reliable enough to chart cadence. What an analyst builds from that, with no privileged access at all: your internal project inventory, which projects are active and which have gone quiet, when releases happen and therefore when your engineers work, roughly how many distinct people or systems sign, and when a new product line started. For a defence supplier, the existence and codename of a project can itself be the sensitive fact. This is reconnaissance material about organisational structure and intellectual property, gathered by an anonymous observer at zero cost and zero risk. What is **not** published is equally worth stating plainly: no source, no binaries, no build logs, no dependency lists. The log holds hashes and signatures. ## The private-deployment option and its true cost Sigstore's components can be run privately: your own certificate authority issuing against your own identity provider, your own transparency log, your own trust root distributed to your own verifiers. Internal identities and digests then stay inside your boundary. Be honest about what that costs: - **You now operate the trust infrastructure.** The log's keys, its availability, its backups and its append-only guarantee become your responsibility. If the log is down, signing or verification stalls. If its key is lost, historical proofs lose their anchor. - **You must distribute the trust root.** Every verifier — every cluster, every developer machine, every partner — needs your roots, correctly and freshly. That distribution problem is the one the public good instance solves for free. - **External parties cannot verify.** If you ship anything to customers, they cannot check your signatures without adopting your trust root, which is a much harder sell than a public one. - **Transparency degrades toward an audit log.** The strength of a public log is that strangers, researchers and your own competitors can all watch it, so a fork or an omission is likely to be noticed. A log watched only by the organisation that runs it provides tamper-evidence against outsiders but far weaker assurance against a compromised insider or a compromise of the platform itself. That last point is the strategic one and the one worth making to the customer: **the value of transparency is proportional to the number of independent parties watching.** A private log is a real control, but it is a different, weaker control than a public one, and you should not sell it as equivalent. ## The answer I would actually give Split the estate by audience rather than choosing one policy for everything. - **Artifacts distributed outside the organisation** go to the public log. Their whole purpose is that a stranger can verify them, and the metadata exposed is metadata about products that are already public. The customer demanding verifiable releases is asking for exactly this. - **Internal-only artifacts** — internal services, tooling, anything never shipped — go to a private deployment, or are signed under a policy where the exposed identity is deliberately uninformative. - **Reduce what the identity reveals.** Sign from purpose-named workload identities rather than personal accounts. This removes staff names from the public record, narrows the identity set you have to monitor, and is better practice independently of privacy. - **Treat naming as a security decision.** If a repository name is classified, it must not become a signing identity in a public log. That is a constraint on naming and on where the build runs, decided before the pipeline is built, not a setting to change afterwards. ## What not to promise Do not promise removal. The log is append-only; entries published today are published for good, and a request to delete cannot be honoured without destroying the property that makes the log worth anything. If sensitive names are already in the log, the remedy is forward-looking — rename, re-scope identities, move future signing — plus an honest disclosure of what is already out there. Also do not offer to simply stop signing. Dropping signing to protect metadata trades a strong integrity guarantee for a weak confidentiality one, and it leaves your consumers unable to tell your artifacts from anyone else's. If confidentiality genuinely outranks external verifiability for a given artifact, the private deployment is the answer, not silence.
- What exactly can an outsider learn from your entries in a public log?Internal repository and workflow names, staff account identifiers when humans sign, artifact digests, and precise timing. Together that yields a project inventory, which projects are alive, release cadence and working patterns. Not published: source, binaries, build logs or dependency lists — the log stores hashes and signatures only.
- Why is a privately operated transparency log weaker than a public one?Transparency derives its strength from independent observers. If the only party consuming the log is the organisation that runs it, the log gives tamper-evidence against outsiders but much weaker assurance against an insider or a compromise of the platform hosting it. You also inherit the availability, key management and trust-root distribution burden.
- Can you have sensitive entries removed from the public log?No, and you should not want the capability to exist — a log whose operator can delete entries cannot prove anything about history, because an attacker who compromised it would erase their own tracks first. The remedies are forward-looking: rename identities, move future signing, and disclose honestly what is already public.
saying these in an interview costs you the question
- Claims a public transparency log exposes no useful metadata
- Offers to have embarrassing entries deleted
- Treats a private log as equivalent to a public one
- Says the log publishes source code or artifact contents
- Recommends abandoning signing to protect metadata