サイバーセキュリティ用語勉強~メールサーバ編~

サイバーセキュリティについて勉強中です。
今回はメールサーバ周りで気になっていた用語や仕組みについてまとめようと思っています。
（今まで用語が曖昧で逃げてました。。。）


内容
■メールサーバ種類
・SMTPサーバ
・IMAPサーバ
・POPサーバ
■セキュリティ用語(メイン)
・S/MIME
・OpenPGP
・SPF
・DKIM
・DMRAC
・SMTPS
・STARTTLS
・SMTP-AUTH
・IMAPS
・POPS
・OP25B
・IP25B
■その他備考
・BEC
・標的型攻撃メール
・MUA、MTA、MDAについて
・メール形式について

■メールサーバ種類
●SMTPサーバ
一言でいうと、メールを送信、転送するサーバです。
（SMTP（Simple Mail Transfer Protocol）と略さずに読むとわかりやすいですよね）
個人のPCに入っているメールソフト（OutlookやThunderbird）などからこのSMTPサーバにメールが送られ、
宛先アドレス管轄のメールサーバへと転送する役割があります。
ソフトウェアは、Sendmail、Postfix、qmailやMicrosoft Exchange Serverがあります。
port:25

●IMAPサーバ
一言でいうと、メールを受信するサーバです。
受信者は、IMAPサーバに保管されたメールをダウンロードし、閲覧します。
メールはIMAPサーバ上で保管されているため、他の端末からも確認ができます。
現在はIMAP4(バージョン4）が最新です。
ソフトウェアは、Dovecot、courier-imapなどがあります。
port:143

●POPサーバ
一言でいうと、メールを受信するサーバです。（２回目）
IMAPサーバとの違いはメールの保管場所です。
受信したメールは、受信者に転送され、受信者の端末で保管されます。
そのため、転送後に他の端末からPOPサーバにアクセスしてもメールを確認することはできません。
現在はPOP3(バージョン3）が最新です。
ソフトウェアは、Dovecotなどです。
port:110

■セキュリティ用語
●S/MIME（Secure / Multipurpose Internet Mail Extensions）
暗号化技術と電子署名の機能を使った安全に電子メールを送受信するための規格です。
2つの機能によって、改ざん検知、盗聴防止、なりすまし（否認防止）をします。
メールの送信者と受信者が S/MIME に対応しているメーラー（メールソフト）を使う必要がありますが、
Microsoft社のOutlookやiPhone・iPadのメーラーなど多くのメーラーが対応しています。
暗号化と電子署名のフローは以下の通りです。
【S/MIMEによるメール暗号化の仕組み】
[1]送信者：共通の秘密鍵を生成。生成した「共通の秘密鍵」でメールを暗号化
[2]送信者：受信者から公開鍵を入手し「共通の秘密鍵」を「受信者の公開鍵」で暗号化
[3]送信者：暗号化したメールと「共通の秘密鍵」を送信
[4]受信者：受信者の秘密鍵で「共通な秘密鍵」を復号化
[5]受信者：「共通の秘密鍵」でメールを復号化

【S/MIMEによる電子署名の仕組み】
[0]送信者：事前に送信者の公開鍵を認証機関に登録する
[1]送信者：メールのハッシュ化をする
[2]送信者：送信者の秘密鍵で電子署名
[3]送信者：「送信者の公開鍵」と「電子署名」付きの暗号化されたメールを送信
[4]受信者：送信者の公開鍵証明書を取得し、信頼できる機関から発行されているか検証
[5]受信者：「電子署名」を「送信者の公開鍵」で復号化してハッシュ値を取り出し
[6]受信者：受信メールをハッシュ化
[7]受信者：署名のハッシュ値と比較。ハッシュ値が同じであれば、メール内容が「改ざん」されていないと判断
※1参照

●OpenPGP
S/MIMEとほぼ同じですが、
署名に使用される公開鍵を信頼できる機関（CAなど）に登録せず、
受信者にあらかじめ渡しておく方法となります。
信頼モデルがWeb of Trust（信頼の輪）と呼ばれ、信頼できるもの同士で同じ公開鍵を使用することで、署名の信頼性を確保するようです。
※1参照

●SPF
送信元メールアドレスのドメインの詐称を防止する手法（送信ドメイン認証）です。
あらかじめDNSサーバーにメール送信時に使うサーバーのIPアドレスを登録しておきます。
メールを受信したサーバーは、送信元メールアドレスに記載されたドメイン名を管理するDNSサーバーに問い合わせてIPアドレスを取得し、
実際に送信されたメールサーバーのIPアドレスと比較することで、詐称を防止します。
電子メールの送受信に用いられるプロトコルSMTPでは送信元アドレスは送信者が任意に設定できるため、
送信元アドレスのドメイン名に虚偽の内容を記載し、社会的に信用ある企業や団体になりすましたりが可能です。
DNSには下記のようなSPFレコードを記載します。
XXX.co.jp.　IN TXT ” v=spf1  +ip4:192.168.100.1  –all”
=送信元IPアドレスが192.168.100.1だったら正常なメール
※2参照

●DKIM（Domain Keys Identified Mail）
SPFはドメイン詐称防止だけですが、DKIMはドメイン詐称防止、改ざん検知が可能です。
DKIMは電子署名を利用し、その電子署名の検証に必要となる公開鍵は送信元ドメインのDNSサーバで公開されます。
受信者は受け取ったメール内の署名者に関する情報からドメインを特定し、そのDNSサーバへ問い合わせることで公開鍵を取得します。
⇒ドメイン詐称防止
取得した公開鍵を用いて電子署名を復号しハッシュ値を取り出し、
受信者側で作成したハッシュ値と一致していれば改ざんの無いことを確認できます。
⇒改ざん検知
下記はDNSに登録する例です。
＜セレクタ＞._domainkey.＜ドメイン＞. IN TXT "v=DKIM1; k=rsa; p=＜公開鍵＞"
<セレクタ>：DKIM-Signatureヘッダのsタグに指定したラベル
DKIM-Signature：メール内に記載されている電子署名がDKIM-Signatureヘッダとなります
v：バージョンを記載（DKIM1など）
k：鍵の形式（RSA）
※3参照

●DMARC（Domain-based Message Authentication、Reporting and Conformance）
SPFやDKIMにて検証後、認証失敗時にどのようにメールを処理すればよいかを、
送信者が受信者に対してポリシーと呼ばれるレコードをDNS上で公開することで表明する仕組みです。
受信者は認証に失敗した場合に送信者のポリシーを参照し、それに基づいてメールをどのように取り扱うかを決定します。
下記はDNSに登録する例です。
_dmarc.＜ドメイン＞ IN TXT “v=DMARC1 ; P=none ; rua=mailto:メールアドレス ; ruf=mailto:メールアドレス”
v：バージョン
P：そのまま受信させる（none）、隔離させる（quarantine）、受信を拒否する（reject）
rua,ruf：拒否された際などのレポート結果送信先
※4参照

●SMTPS(SMTP over SSL/TLS）
SMTPでは通信内容が暗号化されず平文です。
SMTPSでは「SSL/TLS」を使い通信内容を暗号化します。
port:465

●STARTTLS
SMTPSと同じくSMTPの暗号化の1つです。
メールサーバが STARTTLS に対応しているかどうか確認後（EHLO）、「SSL/TLS」による暗号化通信を行います。
通信フローは以下です。
S=サーバ、C=クライアント
S: <TCPポート25番で接続要求を待つ>
C: <接続をオープンする>
S: 220 mail.example.org ESMTP service ready
C: EHLO client.example.org
S: 250-mail.example.org offers a warm hug of welcome
S: 250 STARTTLS
C: STARTTLS
S: 220 Go ahead
C: <TLSネゴシエーションを開始>
C & S: <TLSのネゴシエーション>
C & S: <ネゴシエーションの結果を確認>
port:25 or 587
※5参照

●SMTP-AUTH
SMTPの拡張仕様の一つで、
クライアントから送信側メールサーバへ通信をする際、クライアントに対して認証情報を要求する本人確認の機能です。
具体的には、ID/パスワードで認証できればメールを送信できます。
認証方式はSASL（Simple Authentication and Security Layer）を採用しており、
認証情報（アカウント名やパスワード）をそのまま交換するモード（AUTH LOGINコマンドやAUTH PLAINコマンド）と、
ハッシュ化を施して通信途上での盗み見を防止するモード（AUTH CRAM-MD5コマンドやAUTH DIGEST-MD5コマンド）があります。
※6参照

●IMAPS(IMAP4S/IMAP over SSL)
電子メールの受信に用いるプロトコルであるIMAPに、伝送路を暗号化するSSL/TLSを組み合わせたものです。
port:993

●POPS(POP3S/POP over SSL)
電子メールの受受信に用いるプロトコルであるPOP3に、伝送路を暗号化するSSL/TLSを組み合わせたものです。
port:995

●OP25B(Outbound Port 25 Blocking)
外部ネットワークへのTCP25番ポートの通信を遮断することにより、スパムメールなどを抑制するための対策です。
具体的には、スパムメールなどは自身のISPネットワークのメールサーバを用いず、
外部のメールサーバを利用しようとするため、そのようなメールを抑制します。
自分でメールサーバを構築し運用しているユーザーも影響を受けるため、
SubmissionポートやISPの用意する転送用のメールサーバを利用するなどの必要があります。

●IP25B(Inbound Port 25 Blocking)
OP25Bとは逆に、外部から自ネットワーク内のコンピュータのTCP25番ポートへの接続を拒否することです。
ISPなどで、他社ISPの会員のコンピュータなどから自社のメールサーバに対し、直接メールを配信しようとするのを阻止するための対策です。
※7参照

■その他備考
●BEC（Business Email Compromise：ビジネスメール詐欺）
名の通りメール詐欺によって、金銭や情報を騙し取る行為です。
ソーシャルエンジニアリングの1つです。
※8参照

●標的型攻撃メール
別名APT（Advanced Persistent Threat：高度で継続的な脅威）攻撃とも呼ばれます。
不特定多数の対象にばらまかれる通常の迷惑メールとは異なり、
対象の組織から重要な情報を盗むことなどを目的として、
組織の担当者が業務に関係するメールだと信じて開封してしまうように巧妙に作り込まれたメールです。
メールに添付されたファイルの実行によってウイルスに感染したり、
添付されたオフィスファイルのマクロ機能をオンにすることにより外部からウイルスがダウンロードされたりします。
関連用語に、サイバーキルチェーンと呼ばれる攻撃対象の「偵察」から情報搾取などの「目的実行」までを7フェーズに分け、
攻撃構造を説明する用語があります。
※9参照

●MUA、MTA、MDAについて
ユーザがメール送信から受信までの機能を詳細に分けた用語です。
MUA（Mail User Agent）：
　メールの読み書き、メールサーバへの送信担当です。メーラー（Thunderbird、Outlookなど）が該当します。
MTA（Mail Tranfer Agent）：
　メールを配信したり転送を行う担当です。
　SMTPサーバが該当します。
MRA(Mail Retrieval Agent)：
　MUA（メーラー）に渡す担当です。
　POP,IMAPサーバが該当します。
その他MDAなどの用語もありますが、参照先がわかりやすいです。
※10参照

●メール形式について
メールはテキスト形式、HTML形式があります。
HTML形式だと見栄えが良く、広告などに向いていますが、
昔はメールの本文内にスクリプトを埋め込み、実行することがあったり、なりすましメールにも利用されたりします。
迷惑メールとされる場合もあり、ビジネスではテキスト形式のメールが現在でも主流です。

以上です。
随時更新したいですが、何か間違いなどありましたらご指摘お願いします。

参照
※1
https://jp.globalsign.com/service/clientcert/about_smime.html
https://milestone-of-se.nesuke.com/sv-advanced/digicert/openpgp-smime-tls/
※2
https://e-words.jp/w/SPF.html
https://www.ntt.com/bizon/glossary/e-s/spf.html
※3
https://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/dkim/#60
https://manual.iij.jp/dns/help/1481524.html
※4
https://www.nic.ad.jp/ja/basics/terms/dmarc.html
※5
https://datatracker.ietf.org/doc/html/rfc3207
※6
https://e-words.jp/w/SMTP%E8%AA%8D%E8%A8%BC.html
※7
https://e-words.jp/w/OP25B.html
※8
https://cybersecurity-jp.com/column/29527
※9
https://www.nec-solutioninnovators.co.jp/ss/insider/security-words/35.html
※10
https://blog.denet.co.jp/mailserverwords/