Repository navigation
Verify: recognize Google Workspace (gappssmtp) signers, explain Microsoft 365 tenants - #28
Divide-By-0 wants to merge 3 commits into
Conversation
… Microsoft 365 tenants Google Workspace signs mail for domains without their own DKIM key as d=<from-domain-dashed>.<yyyymmdd>.gappssmtp.com. When the tenant label equals the dashed From: domain, the verify page and CLI now treat From: as proven via Google Workspace (green, names Google; CLI exit 0) instead of 'not aligned'. Microsoft 365 (d=<tenant>.onmicrosoft.com) stays unproven because tenant names aren't tied to domains, but the warning now says why. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
11d58da to
ac9feb9
Compare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (5)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughVerification now recognizes Google Workspace and Microsoft 365 signing domains. A matching Google Workspace tenant label can establish From alignment; Microsoft 365 tenant recognition does not. Verification metadata and messages report provider and alignment details. Two skill notes also received wording updates. ChangesSigner provider alignment
Skill note wording updates
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The change recognizes Workspace alignment and explains Microsoft 365 signers while preserving ordinary domain alignment. No merge-blocking failure was established; whether Google relay signing permits a colliding-domain false verification remains unproven. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to Existing cryptographic proof and published-key checks remain in place. The new Google Workspace acceptance rule nevertheless depends on a provider identity guarantee that has not been established for SMTP relay configurations. No exploitable false verification has been demonstrated. Retained concerns
Security review detailsSecurity Blast Radius
Security Findings and Attack Paths
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 60.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 10 functions across 3 files. (2 skipped: 2 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Google writes dots as dashes, so bank.co.uk and bank-co.uk share the label bank-co-uk, and Workspace's SMTP relay can send any From:. Longer From domains stay unproven with a Google-specific explanation (same reasoning as zk-email-verify#324). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Why
#26 made the verify page and CLI
verifyrequire the From: domain to match the DKIM signing domain (d=), which is right for a mailing service signing with its own domain. Two very common platforms sign customer mail with their domain when the customer hasn't set up DKIM:d=<from-domain, dots→dashes>.<yyyymmdd>.gappssmtp.combank.example): the label is the customer's domain. For longer domains it is ambiguous (see below)<tenant>.onmicrosoft.comTypical case: an organisation's mail (From
school.example) is signed byschool-example.20150623.gappssmtp.comand, on other messages, byschool.onmicrosoft.com. Before this PR both showed the amber "From: not proven" banner, and the CLI exited 5.What changes
signerProvider(fromDomain, d), in both the site and the CLI, recognises the two platforms.verifyexits 0 and reportsfromAlignedVia: "google-workspace".bank.co.ukandbank-co.ukboth becomebank-co-uk), and Workspace's SMTP relay can be set to send any From: address. So only one-dot From domains count as proven, since a TLD can't contain a plain hyphen. Longer domains stay amber with an explanation of why. zk-email-verify#324 keeps gappssmtp opt-in for the same reason.Tests
tests/key-binding.test.ts: 3 new tests (with ambiguous-domain cases) coveringsignerProvider(site and CLI), the Google banner (fails on main, which shows a warning) and the Microsoft banner. Full suite: 47/47 under Node 20, the CI version.real proofs … (CLI exit codes)from Security fixes: DKIM key binding on verify, canonical outputs, c=simple redactions, From alignment, no proof overwrite #26 fails locally under Node 22.22 (stubbed DNS returns "no key found") and passes under Node 20. CI uses 20; I'll look at it separately.Not fixable here
gappssmtpsigning keys, which no longer resolve in DNS, and archive.prove.email doesn't trackgappssmtp.comsubdomains.*.gappssmtp.com, which current tenants serve through a DNS wildcard.🤖 Generated with Claude Code