implementing-dmarc-dkim-spf-email-security
SPF、DKIM、DMARCはメール認証の3つの重要な要素です。これらを組み合わせることで、ドメイン詐称を防止し、メッセージの完全性を検証し、認証されていないメールの処理ポリシーを定義できます。これらを正しく導入することで、組織のドメイン名を装ったフィッシング攻撃を大幅に削減できます。
description の原文を見る
SPF、DKIM 和 DMARC 是邮件认证的三大支柱,共同防止域名伪造、验证消息完整性并定义处理未认证邮件的策略。正确实施可显著减少冒充组织域名的钓鱼攻击。
SKILL.md 本文
DMARC、DKIM、SPF メールセキュリティの実装
概要
SPF、DKIM、DMARC はメール認証の三大要素です。これら三つは協力して、ドメイン詐称を防止し、メッセージの完全性を検証し、未認証メールの処理ポリシーを定義します。正しく実装することで、組織のドメインになりすまそうとするフィッシング攻撃を大幅に削減できます。
前提条件
- ドメインの DNS 管理アクセス権限
- メールサーバー/MTA 設定アクセス権限(Postfix、Exchange、Google Workspace、Microsoft 365)
- DNS TXT レコードの基本的な理解
- 検証スクリプト用の Python 3.8 以上
コア概念
SPF(Sender Policy Framework)
DNS TXT レコードを公開し、あなたのドメインの代わりにメール送信を認可された IP アドレスとメールサーバーをリストアップします。受信サーバーはこのリストに基づいてエンベロープ送信者の IP を確認します。
DKIM(DomainKeys Identified Mail)
秘密鍵を使用して送信メールに暗号署名を追加します。対応する公開鍵は DNS で公開されます。受信者は署名を検証して、転送中にメッセージが改ざんされていないことを確認します。
DMARC(Domain-based Message Authentication, Reporting and Conformance)
SPF と DKIM に基づいており、認証に失敗したメッセージのポリシー(none/quarantine/reject)を指定し、詐称の試みを監視するためのレポート機構を提供します。
実装手順
ステップ 1:現在の状態を監査
# 既存の SPF レコードを確認
dig TXT example.com | grep spf
# 既存の DKIM セレクターを確認
dig TXT selector1._domainkey.example.com
# 既存の DMARC レコードを確認
dig TXT _dmarc.example.com
ステップ 2:SPF を実装
# example.com の DNS TXT レコード
v=spf1 ip4:203.0.113.0/24 include:_spf.google.com include:spf.protection.outlook.com -all
SPF の重要なメカニズム:
ip4:/ip6:— 特定の IP 範囲を認可include:— 別のドメインの SPF レコードを含めるa— ドメインの A レコード IP を認可mx— ドメインの MX レコード IP を認可-all— その他すべてをハード拒否(推奨)~all— ソフト拒否(監視段階)
ステップ 3:DKIM を実装
# DKIM キーペアを生成(2048 ビット RSA)
openssl genrsa -out dkim_private.pem 2048
openssl rsa -in dkim_private.pem -pubout -out dkim_public.pem
# DNS 用に公開鍵をフォーマット(ヘッダー削除、行を統合)
grep -v "PUBLIC KEY" dkim_public.pem | tr -d '\n'
selector1._domainkey.example.com の DNS TXT レコード:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhki...
ステップ 4:DMARC を実装
# _dmarc.example.com の DNS TXT レコード
# フェーズ 1(監視):
v=DMARC1; p=none; rua=mailto:dmarc-aggregate@example.com; ruf=mailto:dmarc-forensic@example.com; pct=100
# フェーズ 2(隔離):
v=DMARC1; p=quarantine; rua=mailto:dmarc-aggregate@example.com; pct=25
# フェーズ 3(拒否):
v=DMARC1; p=reject; rua=mailto:dmarc-aggregate@example.com; pct=100
ステップ 5:DMARC レポートを監視・分析
scripts/process.py を使用して DMARC 集計 XML レポートを解析し、認証失敗、未認可の送信者、および詐称の試みを特定します。
ツールとリソース
- 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/
検証
- SPF レコードが mxtoolbox.com で検証に合格
- DKIM 署名がテストメールで検証される
- DMARC レコードが正しくフォーマットされ、レポート機能が有効
- テストメールが受信者の Authentication-Results ヘッダーで3つすべての検査に合格
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- killvxk
- ライセンス
- Apache-2.0
- 最終更新
- 2026/4/28
Source: https://github.com/killvxk/cybersecurity-skills-zh / ライセンス: Apache-2.0
関連スキル
secure-code-guardian
認証・認可の実装、ユーザー入力の保護、OWASP Top 10の脆弱性対策が必要な場合に使用します。bcrypt/argon2によるパスワードハッシング、パラメータ化ステートメントによるSQLインジェクション対策、CORS/CSPヘッダーの設定、Zodによる入力検証、JWTトークンの構築などのカスタムセキュリティ実装に対応します。認証、認可、入力検証、暗号化、OWASP Top 10対策、セッション管理、セキュリティ強化全般で活用できます。ただし、構築済みのOAuth/SSO統合や単独のセキュリティ監査が必要な場合は、より特化したスキルの検討をお勧めします。
claude-authenticity
APIエンドポイントが本物のClaudeによって支えられているか(ラッパーやプロキシ、偽装ではないか)を、claude-verifyプロジェクトを模した9つの重み付きルールベースチェックで検証できます。また、Claudeの正体を上書きしているプロバイダーから注入されたシステムプロンプトも抽出します。完全に自己完結しており、httpx以外の追加パッケージは不要です。Claude APIキーまたはエンドポイントを検証したい場合、サードパーティのClaudeサービスが本物か確認したい場合、APIプロバイダーのClaude正当性を監査したい場合、複数モデルを並行してテストしたい場合、またはプロバイダーが注入したシステムプロンプトを特定したい場合に使用できます。
anth-security-basics
Anthropic Claude APIのセキュリティベストプラクティスを適用し、キー管理、入力値の検証、プロンプトインジェクション対策を実施します。APIキーの保護、Claudeに送信する前のユーザー入力検証、コンテンツセーフティガードレールの実装が必要な場合に活用できます。「anthropic security」「claude api key security」「secure anthropic」「prompt injection defense」といったフレーズでトリガーされます。
x-ray
x-ray.mdプレ監査レポートを生成します。概要、強化された脅威モデル(プロトコルタイプのプロファイリング、Gitの重み付け攻撃面分析、時間軸リスク分析、コンポーザビリティ依存関係マッピング)、不変条件、統合、ドキュメント品質、テスト分析、開発者・Gitの履歴をカバーしています。「x-ray」「audit readiness」「readiness report」「pre-audit report」「prep this protocol」「protocol prep」「summarize this protocol」のキーワードで実行されます。
semgrep
Semgrepスタティック分析スキャンを実行し、カスタム検出ルールを作成します。Semgrepでのコードスキャン、セキュリティ脆弱性の検出、カスタムYAMLルールの作成、または特定のバグパターンの検出が必要な場合に使用します。重要:ユーザーが「バグをスキャンしたい」「コード品質を確認したい」「脆弱性を見つけたい」「スタティック分析」「セキュリティlint」「コード監査」または「コーディング標準を適用したい」と尋ねた場合も、Semgrepという名称を明記していなくても、このスキルを使用してください。Semgrepは30以上の言語に対応したパターンベースのコードスキャンに最適なツールです。
ghost-bits-cast-attack
Java「ゴーストビッツ」/キャストアタック プレイブック(Black Hat Asia 2026)。16ビット文字が8ビットバイトに暗黙的に縮小されるJavaサービスへの攻撃時に使用します。WAF/IDSを回避して、SQLインジェクション、デシリアライゼーション型RCE、ファイルアップロード(Webシェル)、パストトラバーサル、CRLF インジェクション、リクエストスマグリング、SMTPインジェクションを実行できます。Tomcat、Spring、Jetty、Undertow、Vert.x、Jackson、Fastjson、Apache Commons BCEL、Apache HttpClient、Angus Mail、JDK HttpServer、Lettuce、Jodd、XMLWriterに影響し、WAFバイパスにより多くの「パッチ済み」CVEを再度有効化します。