無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

脆弱性と対策-メールプロトコルの脆弱性と対策

メールの送信(SMTP)と受信(POP)プロトコル脆弱性と対策まとめ。

メール送信プロトコル(SMTP)の脆弱性

脆弱性 リスク 対策
メールの投稿と中継の仕組みが同じ パケットフィルタリングによる第三者中継の抑制が困難 Outbound Port 25 Blocking(外側へのSMTP転送パケットを破棄。SMTPサーバーは別ポートで。)
SMTPサーバーの認証機構がない 第三者中継が可能 SPF/SenderID(IPアドレスベースのサーバー認証機構)、Domain Keys(公開鍵ベースのサーバー認証機構)を使う。
クライアントの認証機構がない 第三者中継が可能 POP Before SMTP または SMTP-AUTHを利用し認証する(Digest-MD5の場合暗号化もサポート。), メールアドレスによる転送の制限
データが暗号化されない 盗聴 S/MIME,PGP(メール自体の暗号化、クライアント間の暗号化)。SMTP Over TLS(通信路の暗号化、サーバー認証なんかもできるはず)
SMTPサーバー間の認証機構
  • SPF(Sender Policy Framework)
  • SenderID
  • Domain Keys

がある。

  • SPF/SenderID
    • どちらも似たような仕組み。DNSで、特定のドメインのメールを送信可能なSMTPサーバーのIPアドレスを管理し、それ以外から送られたメールを転送しない。ブラックリスト方式
    • ×多くの企業やプロバイダが参加しなければ効果がない
    • ×自前ドメインDNSを用意すればチェックを回避できる。(ただし送信元の追跡は容易)
  • DomainKeys
    • 公開鍵暗号を利用したメール送信元認証の仕組み。送信するメールに電子署名を付け、受け取り先で検証することで、送信もとを認証する。ついでに改ざんチェックもできる。
    • ×メール転送サービス等で、転送途中でメールが改ざんされると困る。(なので、改ざんを検知したからといって破棄するのはまずい。)
    • ×署名の追加等のためメールサーバーに負荷がかかる。
    • ×これも多くの企業やプロバイダが参加しなければ効果が薄い気が・・。
サーバー-クライアント間の認証機構

がある。

  • POP Before SMTP
    • 一定期間内にメールを受信したユーザー(のIPアドレス)にのみ、メール送信を許可する。(POP3には認証があるのでそっちを使う)
    • ○クライアントに特殊な仕組みが不要で、クライアントを選ばない(POPでアクセスできればよい。)
    • ×送信前に受信する手間がユーザーにかかる。
    • ×プロキシを介した場合など、複数ユーザーが同じIPを使う場合に正しくアクセス制御ができない
  • SMTP-AUTH
    • 認証機能付きSMTPプロトコルRFC 2554によって規定されている。
    • 「CRAM-MD5」や「DIGEST-MD5」を使えば、チャレンジレスポンス方式の認証が可能。(パスワードが平文のままネットワークを流れない && リプレイアタックを防げる。)
    • SMTP自体に認証を追加するのでPOP Before SMTPの問題であった、「手間がかかる」や「IPアドレス共有」の問題を回避できる。
    • ×クライアントが対応している必要有り。
SMTP Over TLS

メールの送信をTLS/SSLで暗号化した通信路上で行う。SMTPSとも呼ばれる。

Outbound Port 25 Blocking

外向けの25番ポートのアクセスをブロックして、社内のPCから社外のメールサーバーに直接接続しての不正送信を防ぐ防御手法。

  • ×社外のメールサーバーが利用できなくなる、という問題がある。

メール受信プロトコル(POP)の脆弱性

脆弱性 リスク 対策
認証情報が暗号化されない パスワード漏洩による不正アクセス APOPを使う。(チャレンジレスポンス方式)
データが暗号化されない 盗聴 S/MIME,PGP(メール自体の暗号化、クライアント間の暗号化)。POP Over TLS(通信路の暗号化、サーバー認証なんかもできるはず)
S/MIME

公開鍵を使ってメールの暗号化とデジタル署名を行うための標準規格。

  • メールの暗号化
  • 発信者の否認防止
  • 改ざんの検知

をサポートする。

PGP

S/MIMEと同じく公開鍵を使った暗号化とデジタル署名を行うための仕組み。信頼の輪と呼ばれる仕組みにより、ユーザーが相互に署名しあう点が特徴(S/MIMEは信頼できる認証機関が認証する)。このため、秘密鍵の無効化が困難だったりする(中央集権でないので、ここを止めればOKという箇所がない/PKIだと、証明書を失効させればOK。)