メールヘッダの役割
電子メールは大きく分けて「ヘッダ」と「ボディ」という2つの部分に分けることができます。
私たちが普段見ている「メールの本文」は「ボディ」に含まれています。本文以外の、宛先・送信元・件名などの付帯情報が「ヘッダ」に含まれます。
ヘッダに含まれる情報のうち、宛先、送信元、件名などの情報は送信者が作成し付与しますが、その後メールがサーバを経由するたびに、「どのサーバからどのサーバへ、どのような方式で、いつ経由しました」という情報が「Received」という項目に付け足されていきます。
メールヘッダ情報からIPアドレスを分析
メールの送信元のIPアドレスは、メールヘッダの「Received」という項目に含まれます。「Received」は、メールが送信者から受信者まで到達する経路の記録で、以下のような形式で記述されています。
上図では、「mail.geolocation.co.jp」というメールサーバが、「mail.example.com」というメールサーバから、2020年12月16日の12時にメールを受け取ったということが記録されています。(ここでは、受信者がmail.geolocation.co.jpというメールサーバを利用していることを想定しています。)
実際の「Received」はメールをコンピュータが受け渡すたびに記録するため、複数付与されている場合もあります。送信者側のメールサーバのIPアドレスは、Received:from中の[](大かっこ)内に記録されています。
メールヘッダの偽装
メールヘッダの多くは送信者側が自由に付与できます。そのため、スパムメールの送信元のような悪意を持った送信者の場合、メールヘッダを偽装することも考えられます。
「Received」も、これに似せた形式のテキストをあらかじめヘッダに書き込んでおくことで、あたかもサーバを経由した時に書き加えられたかのように見せることができてしまいます。
一方、受信者側が付与した情報は、それに比べて信頼性の高い情報であると言えます。自分が使っているメールサーバが付与した情報(「Received by」の中が、自分が受信に使っているメールサーバのホスト名やIPアドレスになっているもの)は、メールヘッダ内の情報の中でも比較的信頼に足る情報だと考えられます。
送信者側がメールヘッダを偽装していないかどうかを確認する際は、「受信者側のメールサーバが付与した情報と送信者側が付与した情報が矛盾していないか」が手掛かりとなります。
まとめ
・電子メールはヘッダとボディに分けられる。
・メールの送信者のIPアドレスは情報はメールヘッダに含まれる。
・メールヘッダは偽装が可能。