Implementing Dmarc Dkim Spf Email Security
SPF, DKIM, and DMARC form the three pillars of email authentication. Together they prevent domain spoofing, validate message integrity, and define policies for handling unauthenticated mail. Proper im
MCP get_skill({ skillId: "implementing-dmarc-dkim-and-spf-email-security-ae07c4ca" })Use this skill with your agent
Create a free account and connect via MCP
# Implementing DMARC, DKIM, and SPF Email Security ## Overview SPF, DKIM, and DMARC form the three pillars of email authentication. Together they prevent domain spoofing, validate message integrity, and define policies for handling unauthenticated mail. Proper implementation drastically reduces phishing attacks that impersonate your organization's domain. ## When to Use - When deploying or configuring implementing dmarc dkim spf email security capabilities in your environment - When establishing security controls aligned to compliance requirements - When building or improving security architecture for this domain - When conducting security assessments that require this implementation ## Prerequisites - DNS management access for your domain - Access to email server/MTA configuration (Postfix, Exchange, Google Workspace, Microsoft 365) - Basic understanding of DNS TXT records - Python 3.8+ for validation scripts ## Key Concepts ### SPF (Sender Policy Framework) Publishes a DNS TXT record listing authorized IP addresses and mail servers that can send email on behalf of your domain. Receiving servers check the envelope sender's IP against this list. ### DKIM (DomainKeys Identified Mail) Adds a cryptographic signature to outgoing emails using a private key. The corresponding public key is published in DNS. Receivers verify the signature to ensure the message was not altered in transit. ### DMARC (Domain-based Message Authentication, Reporting and Conformance) Builds on SPF and DKIM by specifying a policy (none/quarantine/reject) for messages that fail authentication, and provides a reporting mechanism to monitor spoofing attempts. ## Workflow ### Step 1: Audit Current State ```bash # Check existing SPF record dig TXT example.com | grep spf # Check existing DKIM selector dig TXT selector1._domainkey.example.com # Check existing DMARC record dig TXT _dmarc.example.com ``` ### Step 2: Implement SPF ``` # DNS TXT record for example.com v=spf1 ip4:203.0.113.0/24 include:_spf.google.com include:spf.protection.outlook.com -all ``` Key SPF mechanisms: - `ip4:` / `ip6:` - Authorize specific IP ranges - `include:` - Include another domain's SPF record - `a` - Authorize domain's A record IPs - `mx` - Authorize domain's MX record IPs - `-all` - Hard fail all others (recommended) - `~all` - Soft fail (monitoring phase) ### Step 3: Implement DKIM ```bash # Generate DKIM key pair (2048-bit RSA) openssl genrsa -out dkim_private.pem 2048 openssl rsa -in dkim_private.pem -pubout -out dkim_public.pem # Format public key for DNS (remove headers, join lines) grep -v "PUBLIC KEY" dkim_public.pem | tr -d '\n' ``` DNS TXT record at `selector1._domainkey.example.com`: ``` v=DKIM1; k=rsa; p=MIIBIjANBgkqhki... ``` ### Step 4: Implement DMARC ``` # DNS TXT record at _dmarc.example.com # Phase 1 (Monitor): v=DMARC1; p=none; rua=mailto:dmarc-aggregate@example.com; ruf=mailto:dmarc-forensic@example.com; pct=100 # Phase 2 (Quarantine): v=DMARC1; p=quarantine; rua=mailto:dmarc-aggregate@example.com; pct=25 # Phase 3 (Reject): v=DMARC1; p=reject; rua=mailto:dmarc-aggregate@example.com; pct=100 ``` ### Step 5: Monitor and Analyze DMARC Reports Use the `scripts/process.py` to parse DMARC aggregate XML reports and identify authentication failures, unauthorized senders, and spoofing attempts. ## Tools & Resources - **MXToolbox**: https://mxtoolbox.com/SuperTool.aspx - **DMARC Analyzer (dmarcian)**: https://dmarcian.com/ - **Google Postmaster Tools**: https://postmaster.google.com/ - **Valimail DMARC Monitor**: https://www.valimail.com/ - **DMARC Report Analyzer**: https://dmarc.postmarkapp.com/ ## Validation - SPF record passes validation at mxtoolbox.com - DKIM signature verified on test emails - DMARC record properly formatted and reporting enabled - Test emails pass all three checks in recipient's Authentication-Results header
Related Skills
More skills in Security & Compliance
1password
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in, and reading/injecting secrets for commands.
1password
Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.
Accessibility Lead
Accessibility team lead and orchestrator. Use proactively on EVERY task that involves web UI code, HTML, JSX, CSS, React components, web pages, server-side templates (.leaf, .ejs, .erb, .hbs), or any user-facing web content. This agent coordinates the accessibility specialist team and ensures no accessibility requirement is missed. Runs the final review before any UI code is considered complete. Applies to any web framework, server-side templating framework (Vapor/Leaf, Rails/ERB, Django/Jinja, Express/EJS), or vanilla HTML/CSS/JS. Works alongside other team leads (e.g., swift-lead) in multi-language projects.
Accessibility Regression Detector
Detects accessibility regressions by comparing audit results across commits/branches. Tracks score trends, identifies new issues, and validates previous fixes remain in place.
Accessibility Statement
Generates conformance/accessibility statements following W3C or EU model templates. Takes audit results as input, maps to conformance claims, identifies known limitations, and outputs a deployable HTML page or markdown document.
Accessibility Tool Builder
Expert in building accessibility scanning tools, rule engines, document parsers, report generators, and audit automation. WCAG criterion mapping, severity scoring, CLI/GUI scanner architecture, CI/CD integration.
Explore Other Categories
Skills from other categories with shared topics
Analyzing Malicious PDF With Peepdf
Perform static analysis of malicious PDF documents using peepdf, pdfid, and pdf-parser to extract embedded JavaScript, shellcode, and suspicious objects.
Analyzing PDF Malware With Pdfid
Analyzes malicious PDF files using PDFiD, pdf-parser, and peepdf to identify embedded JavaScript, shellcode, exploits, and suspicious objects without opening the document. Determines the attack vector and extracts embedded payloads for further analysis. Activates for requests involving PDF malware analysis, malicious document analysis, PDF exploit investigation, or suspicious attachment triage.
Building Devsecops Pipeline With GitLab CI
Design and implement a comprehensive DevSecOps pipeline in GitLab CI/CD integrating SAST, DAST, container scanning, dependency scanning, and secret detection.