あどけない話

インターネットに関する技術的な話など

Receiver Policy Framework

メールアドレスの詐称を判断できるようするドメイン認証には、いくつか種類があり、それぞれに長所短所があります。たとえば、こんな感じです。

DKIM よりも SPF の方が簡単なために、SPF の転送を解決する方法がいくつか提案されてきました。これらはいずれも転送サーバに手を加える必要があり、やはりなかなか普及しません。

また、これらの問題を解決しないことには、受信側のドメイン認証は普及しないでしょう。正しいメールを誤って受信拒否する可能性があるからです。

2005年に SPF の父 Meng Wong 氏が日本を訪れた際に、直接会ってこの問題について尋ねたところ、「複数のドメイン認証の結果から総合判断すればいいのではないか」というアイディアを頂きました。

宿題を片付けるのに長い時間がかかりましたが、そのアイディアを実現するための簡易言語を設計し、テストプログラムを作成しました。簡易言語の名は、RPF (Receiver Policy Framework) です。

詳しい説明は省略しますが、こんなことが書けます。

$ip_white_list = 10.0.0.1, 2001:db8::1;
$dom1 = "example.jp", "example.com";
accept ip $ip_white_list;
reject ip 192.168.10.0/24, 2001:db8:100::/48;
dkim {
    pass: accept;
    fail: {
	accept domain $dom1;
	accept ip 10.0.0.2;
    }
}
spf,sender-id {
    pass: accept;
    hardfail,softfail: drop user unknown;
    softfail: hold;
}
drop;

このテストプログラムであるrpftestをリリースします。RPF で受信のポリシーを記述し、テストデータ(ドメイン認証の結果)と共に rpftest に与えると、受信 MTA がどう振る舞うか表示します。

興味がある人は、ぜひ使って頂いて、自分のポリシーが記述できるかなどの評価や意見を言って頂けると幸いです。

RPF は ENMA に採用されることを目指しています。