Skip to content

Document that fingerprints are not a security check - #27

Merged
tamirms merged 2 commits into
mainfrom
docs/fingerprint-adversarial-queries
Oct 16, 2026
Merged

tamirms merged 2 commits into
mainfrom
docs/fingerprint-adversarial-queries

Conversation

@tamirms

@tamirms tamirms commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

The fingerprint check catches random non-members, but someone who knows one key in the index can make up other keys that pass it. Looking one up returns the real key's rank and payload.

This PR says so in spec §7.2 and §7.7, the Fingerprint and WithFingerprint godocs, and the README security note. The advice to hash keys with a secret now covers lookups as well as builds.

🤖 Generated with Claude Code

The fingerprint check catches random non-members, but someone who
knows one key in the index can make up other keys that pass it.
Looking one up returns the real key's rank and payload.

Say so in spec §7.2 and §7.7, the Fingerprint and WithFingerprint
godocs, and the README security note. The advice to hash keys with a
secret now covers lookups as well as builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 15, 2026 12:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Documentation should clarify the minimum 16-byte output requirement and refine the security explanation.

4 open findings
What changed in this PR

This documentation-only PR clarifies that fingerprints are probabilistic checks, not security controls.

Changes:

  • Updates security guidance in the specification and README.
  • Expands Fingerprint and WithFingerprint documentation.
  • Explains secret-keyed hashing for build and lookup inputs.
File Summary
streamhash-spec.md Expands security guidance and attack explanations.
README.md Updates the security note and keyed-hashing example.
key.go Updates Fingerprint documentation.
builder_options.go Clarifies fingerprint behavior and false positives.

🧠 Review effort: Lite


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread README.md Outdated
Comment thread key.go Outdated
Comment thread streamhash-spec.md Outdated
Comment thread streamhash-spec.md Outdated
Standard SipHash outputs 8 bytes, which streamhash rejects as a key.
Name 128-bit SipHash or HMAC-SHA256 instead, and say plainly what the
lookup attack relies on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 15, 2026 12:09

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

Remaining comments are minor documentation nits and do not block approval.

1 open finding
3 resolved since last review

🧠 Review effort: Lite

@tamirms
tamirms enabled auto-merge (squash) October 16, 2026 06:37
@tamirms
tamirms disabled auto-merge October 16, 2026 06:37
@tamirms
tamirms merged commit 7967876 into main Oct 16, 2026
12 checks passed
@tamirms
tamirms deleted the docs/fingerprint-adversarial-queries branch October 16, 2026 06:37
@tamirms
tamirms restored the docs/fingerprint-adversarial-queries branch October 16, 2026 06:37
@tamirms
tamirms deleted the docs/fingerprint-adversarial-queries branch October 16, 2026 06:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants