← All posts

AWS SigV4 vs SikkerKey: Why Asymmetric Signing Is Stronger for Secret Retrieval

The problem with comparing request signing to secret retrieval

If you are comparing AWS SigV4 vs SikkerKey, the important question is not whether both systems can sign HTTP requests. They can.

The important question is what kind of credential the workload must hold when it asks for a secret.

That is where the difference is sharp:

For secret retrieval, asymmetric machine identity is the stronger model. The server can verify a machine without holding a reusable machine signing secret. A public key can verify a signature, but it cannot create one. That changes what an attacker can steal, what operators need to rotate, and how precisely access can be revoked.

SigV4 is AWS API authentication, not a machine-first secrets model

AWS SigV4 was built to authenticate AWS API requests. The client creates a canonical request, derives a signing key from AWS credentials, signs the request, and sends the signature. AWS reproduces the signing process and checks whether the result matches.

That is symmetric signing. The security boundary is the AWS credential material used to derive signatures. Temporary STS credentials can shorten the lifetime, and IAM can narrow what the credential can do, but the workload still needs credentials that can produce valid AWS API signatures while they are alive.

That is the part teams should care about when they are choosing a secrets manager. If a runtime has to hold a credential that can sign new requests, then that credential becomes a target. Short expiry helps. IAM scoping helps. Rotation helps. But the runtime still has a usable signing credential.

SikkerKey removes that shape from the application read path. It does not give applications a shared SikkerKey API key. It does not hand back a bearer token for secret reads. It gives each machine an asymmetric identity and verifies that identity on every request.

SikkerKey starts with the machine, not a shared credential

When a machine is bootstrapped into SikkerKey, it gets an Ed25519 keypair. The private key stays on the machine. SikkerKey stores the public key.

From then on, every SDK and CLI read is signed by that machine:

method:path:timestamp:nonce:bodyHash

The request carries:

SikkerKey rebuilds the signed payload from the actual request, verifies the Ed25519 signature with the stored public key, checks the timestamp, and records the nonce. A captured request cannot be replayed because the nonce is one-time per machine and the timestamp must be fresh.

The key point is simple: SikkerKey can verify a machine without storing a secret that can impersonate that machine.

That is the difference between symmetric and asymmetric retrieval. In SikkerKey, the server-side authentication record is not a signing credential. It is a public key.

What an attacker gets is different

This is the cleanest way to compare the models.

With symmetric request signing, a stolen valid credential is useful because it can create new signatures. The attacker still has to stay within policy and lifetime, but the credential itself is active signing material.

With SikkerKey's asymmetric machine identity, a stolen public key is not useful. It cannot sign a request. A captured old request is not useful either because the nonce has already been recorded and the timestamp window closes quickly. The attacker needs the private key from the machine that is actually allowed to read the secret.

That gives SikkerKey a better failure model for secrets:

This is why asymmetric signing matters. It is not an implementation detail. It changes the credential an attacker is trying to steal.

Request authentication is not enough for secrets

A signed request only proves that some credential signed a request. Secret retrieval needs a stricter decision: should this exact machine receive this exact secret right now?

SikkerKey answers that at the read path.

Before returning a secret, SikkerKey checks:

Only after those checks does SikkerKey unwrap the project key, decrypt the secret's data key, decrypt the value, return it, and record the audit event.

That is the vendor point: SikkerKey is not selling a generic signing algorithm. SikkerKey is selling a better secret retrieval boundary.

Machine-to-secret grants are easier to reason about

IAM-style policy systems can express a lot, but they also spread the answer across several places. A team often has to inspect identity policies, resource policies, role assumptions, session context, tags, KMS permissions, and environment-specific credential delivery before it can answer a basic question: can this workload read this secret?

SikkerKey makes that question concrete:

Project membership alone is not enough. A stale grant is not enough if the machine is no longer in the project. A machine in another vault cannot cross over and read the secret.

This is a better operational model for secrets because the unit of access is the thing doing the reading: the machine.

Policies are enforced before decryption

SikkerKey's access policies sit directly on the secret read path. They are evaluated before the value is decrypted.

A secret can require:

Application code does not need to implement those controls. The SDK still calls getSecret, getField, or export. SikkerKey enforces the policy centrally, records blocks, updates counters, and triggers post-read behavior when configured.

That matters because secrets controls should not be scattered across every application. They should be enforced where the secret is retrieved.

Canaries turn secret reads into incident signals

SikkerKey can also plant canary secrets. A canary secret is a tripwire: if an unexpected machine reads it, SikkerKey can freeze the project and optionally related projects.

The read can still return so the response stays stealthy, but subsequent reads against the frozen project are blocked. Operators get the audit trail around the originating read and the freeze.

This is another reason SikkerKey is stronger than a request-signing comparison suggests. Secret retrieval is not only about allowing good requests. It is also about detecting suspicious reads and changing the system state when a secret looks compromised.

AWS SigV4 vs SikkerKey

AreaAWS SigV4SikkerKey
Core modelAWS API request signingSecret retrieval with machine identity
Signing typeSymmetricAsymmetric
AlgorithmHMAC-SHA256Ed25519
Runtime credentialAWS access key or STS credential materialMachine private key
Server-side verifierCredential-derived signing calculationStored machine public key
Server-side impersonation riskVerification depends on AWS credential material and policy contextStored machine public keys cannot impersonate machines
Replay defenseTimestamp windowTimestamp window plus persisted one-time nonce per machine
Access unitAWS principal and IAM policyMachine, project membership, and explicit secret grant
Secret policy layerBuilt through AWS/IAM/KMS configurationBuilt into the SikkerKey read path
Incident controlsExternal service design requiredCanary secrets and project freeze built in
Cloud fitAWS-nativeCloud-independent and multi-platform

SigV4 is the wrong center of gravity for teams that want cloud-independent secret retrieval. It is AWS API authentication. SikkerKey is machine identity for secrets.

Why SikkerKey is the stronger AWS Secrets Manager alternative

SikkerKey is stronger because it changes the runtime credential model.

Instead of giving an application a symmetric credential that can sign new requests, SikkerKey gives each machine an asymmetric identity. The private key stays on the machine. The server stores a public key. Every read is signed, replay-protected, authorized against live grants, checked against policies, decrypted only after authorization, and audited.

That gives teams a simpler and tighter operating model:

For teams searching for AWS Secrets Manager alternative, SigV4 vs asymmetric signing, machine identity for secrets, or secure secret retrieval, this is the practical takeaway: AWS SigV4 uses symmetric credentials to sign AWS API calls. SikkerKey uses asymmetric machine identity to decide whether a machine can receive a secret.

That is the stronger boundary.

FAQ

Is AWS SigV4 symmetric or asymmetric? AWS SigV4 is symmetric signing. It uses HMAC-SHA256 with signing keys derived from AWS secret access key material, date, region, and service. AWS SigV4a is a separate asymmetric variant for multi-region request signing.

Is SikkerKey symmetric or asymmetric? SikkerKey uses asymmetric signing. Each machine signs secret-read requests with an Ed25519 private key, and SikkerKey verifies those requests with the machine's stored public key.

Why is asymmetric signing better for secret retrieval? Because the verifier does not need a signing secret. SikkerKey can store public keys that verify machines without storing machine credentials that can impersonate them.

Does SikkerKey use bearer tokens for application reads? No. Runtime reads are signed with the machine's Ed25519 private key. The private key stays on the machine.

What prevents replay attacks in SikkerKey? Every signed request includes a timestamp and a random nonce. The timestamp must be fresh, and the nonce is stored after signature verification so it cannot be reused by the same machine.

Is SikkerKey only for AWS? No. SikkerKey's machine identity model is cloud-independent. It works across AWS, other clouds, CI, containers, servers, serverless platforms, and hybrid environments.