インターネットの通信を安全にするIPsec

前回の勉強内容

ponsuke-tarou.hatenablog.com

今回の勉強内容 : IPsecをしっかり理解する

勉強のきっかけになった問題

IPsecに関する記述のうち,適切なものはどれか。

ア. IKEはIPsecの鍵交換のためのプロトコルであり,ポート番号80が使用される。
イ. 鍵交換プロトコルとして,HMAC-SHA1が使用される。
ウ. トンネルモードを使用すると,暗号化通信の区間において,エンドツーエンドの通信で用いる元のIPのヘッダを含めて暗号化できる。
エ. ホストAとホストBとの間でIPsecによる通信を行う場合,認証や暗号化アルゴリズムを両者で決めるためにESPヘッダでなくAHヘッダを使用する。
平成28年秋期問15 IPsecに関する記述|情報処理安全確保支援士.com

インターネットの通信で使われるプロトコルをIPといいます。

  • 正式:Internet Protocol = Internet(インターネット) + Protocol(手順)

https://www.infraexpert.com/studygif/ipsecz13.gif
IPsec - AH・ESP・IKE

プロトコルとは、パソコンなどの機械通しが通信するときの通信の決まりやお約束ごとのことです。

https://www.infraexpert.com/studygif/networking12.gif
ネットワーク - プロトコルとは

インターネットの世界には危険がいっぱいです。

ponsuke-tarou.hatenablog.com

IPsecは、IPでの暗号化技術を使った安全なインターネット用の通信プロトコルです。

  • 正式:Security Architecture for IP または IP Security Architecture = Security(安全) + Architecture(構造) + for IP(IPのための)

IPsecは、認証とカプセル化と鍵交換のプロトコルを組み合わせています。

IPsecで「どんなプロトコルアルゴリズムを使うよ」という合意をSAといいます。

  • 正式 : Security Association = Security(安全) + Association(つながり)
共有鍵暗号方式をIPsecでは使っていて、そのアルゴリズムはいろいろ選べます。だから、SAでどんな物を使うかきっちり定義しておきます。
SAが確定するとSPIという32bitの整数が割り当てられ、IPsecで通信する時はこのSPIをいつもくっつけて暗号化のアルゴリズムやどんな鍵かの情報などがわかるようにします。
  • 正式 : Security Pointer Index = Security(安全) + Pointer(指針) + Index(索引)

http://image.itmedia.co.jp/ait/articles/0011/27/pc-phase.gif
http://image.itmedia.co.jp/ait/articles/0011/27/pc-key.gif
IT管理者のためのIPSec講座 (2/3):技術解説 - @IT

使う共通鍵を交換してSAの合意を取る鍵交換プロトコルが、IKEです。

  • 正式 : Internet Key Exchange = Internet(インターネット) + Key(鍵) + Exchange(交換する)

https://www.ipa.go.jp/security/pki/images/image081.png
PKIŠÖ˜A‹Zp‚ÉŠÖ‚·‚éƒRƒ“ƒeƒ“ƒc

http://www.soi.wide.ad.jp/class/20040021/slides/11/img/15.png
IPsec / IKE

http://www.geocities.jp/ccnpbsci949/ike/ikephase.GIF
IKEについて

https://tech.nikkeibp.co.jp/it/article/COLUMN/20071012/284162/zu11s.jpg
https://tech.nikkeibp.co.jp/it/article/COLUMN/20071012/284162/zu12s.jpg
攻略編:全体をつかんで逆から見る,日経NETWORK流で理解しよう | 日経 xTECH(クロステック)

IKEは、SAを合意するときも鍵を交換するときもISAKMPというプロトコルを使い、ISAKMPメッセージ専用のUDPの500番のポートを使います。
  • 正式 : Internet Security Association and Key Management Protocol
  • 日本語 : Internet SA と 鍵管理プロトコル

https://daisygroup.com/wp-content/uploads/2017/12/Sure-Signal-545x262.jpg
https://daisygroup.com/knowledge-base/sure-signal-boost-box/

データはESPという入れ物に入れて暗号化して送ります。

  • 正式 : Encapsulating Security Payload = Encapsulating(カプセル化している) Security(安全な) + Payload(データ伝送されるパケットのヘッダー部を除いたデータの本体)

データが改ざんされていないことを確認できるようにMACというデータを付加します。

  • 正式 : Message Authentication Code = Message(メッセージ) + Authentication(認証) + Code(コード)
  • 日本語 : メッセージ認証コード

http://image.itmedia.co.jp/ait/articles/0011/27/pc-mac.gif
IT管理者のためのIPSec講座 (3/3):技術解説 - @IT

https://upload.wikimedia.org/wikipedia/commons/thumb/0/08/MAC.svg/512px-MAC.svg.png
MAC(メッセージ認証コード)とは - CubicLouve

MACは送信元で鍵と任意のデータで作られたハッシュ値です。送信先で同じ鍵と任意のデータでハッシュ値を作って受信したものと比較して認証を行います。
この、やり方をメッセージダイジェストといいます。

ponsuke-tarou.hatenablog.com

SPI・MAC・通信のシーケンス番号をAHというパックにして通信する時パケットにくっつけます。

  • 正式 : Authentication Header = Authentication(認証) + Header(先頭部)
HA自体には暗号化機能はなく、入れ物です。

https://www.cs.odu.edu/~cs779/IPv6/security/img004.GIF
Authentication Header (AH)

http://www.cs.ru.nl/~ths/a3/html/h8/8-27s.jpg
A3 H8 Network Security

https://image.slidesharecdn.com/ipsecandvpn-160313101807/95/ipsec-and-vpn-40-638.jpg?cb=1457865892
IPSec and VPN

f:id:ponsuke_tarou:20181020222446j:plain

次回の勉強内容

勉強中・・・・

セキュリティを意識したプロトコル達

前回の勉強内容

ponsuke-tarou.hatenablog.com

今回の勉強内容 : セキュリティを意識したプロトコル

勉強のきっかけになった問題

暗号化や認証機能を持ち,遠隔にあるコンピュータを操作する機能をもったものはどれか。

ア. IPsec イ. L2TP ウ. RADIUS エ. SSH << 正解
平成26年秋期問11 SSH|情報処理安全確保支援士.com

IPsecは、IPでの暗号化技術を使った安全なインターネット用の通信プロトコルです。

ponsuke-tarou.hatenablog.com

L2TPは、送信情報を運ぶトンネルのプロトコルです。

  • 正式 : Layer 2 Tunneling Protocol

e-words.jp

https://beginners-network.com/image/vpn_l2tp_ipsec_1.gif
L2TP/IPsec - ネットワーク入門サイト

RADIUSは、ネットワーク上でクライアントとサーバの認証を行うプロトコルです。

  • 正式 : Remote Authentication Dial In User Service
  • 読み方:ラディウス、ラディアス

流れは、

https://wa3.i-3-i.info/img/data/2700/d002794-13.png
https://wa3.i-3-i.info/word12794.html

http://www.7key.jp/nw/img/radius.gif
RADIUS‚Æ‚Í -- KeyFŽGŠwŽ–“T

https://www.infraexpert.com/studygif/radius1.gif
Radius認証とは

1. 不正なクライアントやサーバが使えないように、クライアントとサーバの間に共通暗号鍵を設定します。

この共通暗号鍵を「Shared Secret」といいます。

https://www.infraexpert.com/studygif/radius4.gif
Radius認証とは

2. クライアントから送られてきたユーザの情報で、サーバは認証を行います。

クライアントが送る情報を「Access-Requestメッセージ」といいます。

3. サーバは、認証を行い結果をクライアントへ送信します。

サーバが送る情報を認証結果が、OKな場合は「Access-Acceptメッセージ」でNGな場合は「Access-Reject」といいます。

SSHは、認証技術を利用して別のコンピュータと通信するプロトコルです。

  • 英語:(Secure:安全) + (Shell:コマンド入力を受け付けて解釈するプログラム)

Telnetも別のコンピュータと通信するプロトコルですが、暗号化はしていません。

残念なことに、暗号化していないのでのぞき見し放題です。

http://www.fs.com/images/ckfinder/ftp_images/tutorial/telnet-protocol.jpg
Which Client Software Is Better for Telnet and SSH? | FS.COM

そこでSSH!通信経路が暗号化されているのでインターネットなどを経由しても安全に通信できます。

http://www.tku.ac.jp/~densan/local/ssh/ssh-telnet.gif
SSHの利用方法

SSHプロトコルには、「SSH1」と「SSH2」の2種類があります。

SSH1は、RSA公開鍵暗号方式を使います。
SSH2は、DSA公開鍵暗号方式を使います。が、RSA公開鍵暗号が使えるようになり「SSH2でRSA公開鍵暗号を使う」がおすすめです。

RSAは特許の問題から使用が制限されており、特許問題を回避するためにDSAを採用したSSH2が登場したという背景があるものの特許は2000年9月で失効し、SSH2でもRSAを利用して認証できるようになりました。

SSHするには、接続先にsshdが動いている必要があります。

クライアントから接続を受けつけて、鍵の交換・暗号化・認証・コマンド実行・データ交換をしてくれます。

種類は、OpenSSH・SSH Tectia Server・Reflection for Secure IT等々・・・いろいろあります。

接続元でSSHしてくれるソフトウェアをSSHクライアントといいます。

種類には、OpenSSH・PuTTY・Tera Term・Poderosa・RLogin・SSH Tectia Client・Reflection for Secure IT・WebSSH等々・・・すごくいろいろあります。

f:id:ponsuke_tarou:20181014235443j:plain

次回の勉強内容

ponsuke-tarou.hatenablog.com

根性で不正ログインを頑張るブルートフォース攻撃

前回の勉強内容

ponsuke-tarou.hatenablog.com

今回の勉強内容 : 不正ログインの方法

勉強のきっかけになった問題

共通鍵暗号の鍵を見つけ出す,ブルートフォース攻撃に該当するものはどれか。

ア. 1組の平文と暗号文が与えられたとき,全ての鍵候補を一つずつ試して鍵を見つけ出す。 <<< 正解
イ. 平文と暗号文と鍵の関係を代数式に表して数学的に鍵を見つけ出す。
ウ. 平文の一部分の情報と暗号文の一部分の情報との間の統計的相関を手掛かりに鍵を見つけ出す。
エ. 平文を一定量変化させたときの暗号文の変化から鍵を見つけ出す。

平成25年秋期問9 ブルートフォース攻撃|情報処理安全確保支援士.com

不正アクセスや不正ログインする攻撃はよくあります。

scan.netsecurity.ne.jp

tech.nikkeibp.co.jp

www.pixiv.net

ブルートフォース攻撃は、ありとあらゆる文字列の組み合わせを片っ端から試してパスワードや鍵を見つける攻撃です。

  • 別名:ブルートフォースアタック、総当たり攻撃
  • 英語 : (brute force:力ずくの) + (attack: 攻撃)

辞書ツールやら考えられるすべての情報を使って文字列の組み合わせを全て試していく、根性の攻撃です。

パスワードの文字数や文字種が少ないと被害にあいやすいです。

https://wa3.i-3-i.info/img/data/5500/d005549-5.png
https://wa3.i-3-i.info/word15549.html

f:id:ponsuke_tarou:20181010210728p:plain
ブルートフォースアタック(総当たり攻撃)とは?そのやり方・実際にかかる時間・対策方法は?

独立行政法人情報処理推進機構セキュリティセンターが、パスワードに使用している文字の種類別に解読の所要時間をまとめたもの
https://japan.norton.com/blog/wp-content/uploads/2017/11/brute-force-attack-01.png
ブルートフォースアタックとは?実験から分かる危険性と有効な4つの対策

リバースブルートフォース攻撃は、ありとあらゆる文字列の組み合わせを片っ端から試してIDを見つける攻撃です。

  • 別名:リバースブルートフォースアタック、逆総当たり攻撃
  • 英語 : (reverse:逆の) + (brute force:力ずくの) + (attack: 攻撃)

世の中には、規定回数パスワードを間違えるとロックされるアカウントロックというものがあります。

残念なことに、IDを変えていくのでアカウントロックされにくいです。

ブルートフォース攻撃の逆で、パスワードに固定文字列を使ってIDを変えながら試していきます。

http://www.ne.senshu-u.ac.jp/~proj28-19/tobe/goku-main/image-s/blue-reverse.png
リバースブルートフォース攻撃

https://wa3.i-3-i.info/img/data/5500/d005549-6.png
https://wa3.i-3-i.info/word15549.html

パスワードリスト攻撃は、どっかで仕入れた情報をもとにIDとパスワードを推測して攻撃します。

  • 別名:リスト型攻撃、パスワードリスト型攻撃、アカウントリスト攻撃、リストベース攻撃、リストベースアタック、リストアタック

パスワードスプレーは、ブルートフォース攻撃リバースブルートフォース攻撃をいい感じに合わせています。

  • 別名:low-and-slow攻撃

japan.zdnet.com

決まった期間に決まった回数ログインに失敗するとアカウントロックがかかります。

だから、「パスワードを固定していろんなIDを試す」をひたすら繰り返します。

https://stat.ameba.jp/user_images/20180404/20/mongol-sky/00/2d/j/o0461021814164100079.jpg?caw=800
不正ログインを狙った「パスワードスプレー」攻撃への注意を呼び掛け | IoT-sky

f:id:ponsuke_tarou:20181010224357j:plain

次回の勉強内容

勉強中・・・・・

Webサイトでの認証技術であるベーシック認証とダイジェスト認証を知る。

前回の勉強内容

ponsuke-tarou.hatenablog.com

今回の勉強内容 : Webサーバはどんな認証をしているのか。

勉強のきっかけになった問題

HTTPの認証機能を利用するクライアント側の処理として,適切なものはどれか。

ア. ダイジェスト認証では,利用者IDとパスワードを":"で連結したものを,MD5を使ってエンコードしAuthorizationヘッダで指定する。
イ. ダイジェスト認証では,利用者IDとパスワードを":"で連結したものを,SHAを使ってエンコードしAuthorizationヘッダで指定する。
ウ. ベーシック認証では,利用者IDとパスワードを":"で連結したものを,BASE64エンコードしAuthorizationヘッダで指定する。 << 正解
エ. ベーシック認証では,利用者IDとパスワードを":"で連結したものを,エンコードせずにAuthorizationヘッダで指定する。
平成24年秋期問20 HTTPの認証機能|情報処理安全確保支援士.com

HTTPの認証機能を使用することで、Webサイトにアクセスできる権限を持っているかを確認します。

会員サイトなどのWebサイトを特定の人々だけ見れるようにするには認証機能を使用します。
認証機能を使用することでWebページを見られる人かを確認します。

https://mdn.mozillademos.org/files/14689/HTTPAuth.png
HTTP 認証 - HTTP | MDN

ログイン画面を使うForm認証は、HTTPプロトコルの認証方式は使いません。

  • ログイン画面に情報を入力するタイプです。
  • セッションに情報を持つため、セッションがログアウトなどで切れると再認証が必要になります。

例えばEvernoteのログイン画面とか。
f:id:ponsuke_tarou:20181001223508p:plain

クライアント側で行うHTTPの認証機能にはベーシック認証やダイジェスト認証などがあります。

ベーシック認証は、ユーザ名とパスワードの組みをコロン ":" でつなぎ、Base64エンコードして送信します。

  • 別名:基本認証
  • 利点:多くのWebサーバが対応しています。
  • 欠点:盗聴や改竄が簡単にできます。

認証の流れは、

http://www.bnote.net/linux/img/basic_auth.png
ベーシック認証 - bnote

1. クライアントがページをリクエストする
2. WebサーバがWWW-AuthenticateヘッダでHTTPステータスコード401を返す
  • HTTPステータスコード:Webサーバがレスポンスの意味を表す3桁のコードです。
    • 別名:レスポンスコード
    • 401(Unauthorized):「認証が必要だよん」とWebサーバは言っている。

https://docs.microsoft.com/ja-jp/aspnet/web-api/overview/security/basic-authentication/_static/image1.png
ASP.NET Web API の基本的な認証 | Microsoft Docs

3. クライアントがBase64エンコードしたユーザ名とパスワードをAuthorizationヘッダに指定して送る

http://support.cagolab.jp/glossary/files/2012/11/basic-300x276.jpg
ベーシック認証 | EC用語集 - ECプラットフォーム『カゴラボ』サポートサイト

4. Webサーバが認証する

Base64エンコードは、文字列を64進数で表すことです。

64進数は、「A-Z」「a-z」「0-9」「+/」を使って余ったところは「=」で埋める方式です。

MIMEなんかでも使っています。

# Base64エンコードしてみます。
$ echo -n 'ponsuke:tarou' | base64
cG9uc3VrZTp0YXJvdQ==
# 残念なことに簡単にデコードできます。
$ echo 'cG9uc3VrZTp0YXJvdQ==' | base64 -D
ponsuke:tarou

qiita.com

ダイジェスト認証は、パスワードをハッシュ値にして送信します。

  • 英語:digest authentication
  • 別名:HTTPダイジェスト認証
  • 利点:ベーシック認証で防げなかった漏洩やら改ざんができます。
  • 欠点:対応していないブラウザがあります。

認証の流れは、

https://tech.nikkeibp.co.jp/it/article/COLUMN/20080513/301605/zu02.jpg
第6回 ユーザー認証 | 日経 xTECH(クロステック)

https://www.ipa.go.jp/security/awareness/vendor/programmingv1/images/b09_01_6.png
9-1. パスワードの取り扱い

1. クライアントがページをリクエストする
2. WebサーバがWWW-AuthenticateヘッダでHTTPステータスコード401だけではなく「認証領域」や「認証方式」、「ランダムな文字列」を返す
  • ここの
    • 認証領域は、realm
    • 認証方式は、Digest(ダイジェスト認証だよと知らせる)
    • ランダムな文字列は、
      • nonce(認証要求ごとに生成される一時的なデータでチャレンジともいう)
      • opaque(ランダムに生成されるデータ)
  • といいます。

http://image.itmedia.co.jp/ait/articles/0411/17/r20_100_1.gif
Tomcatでダイジェスト認証を使う:JavaTips 〜アプリケーションサーバ/コンテナ活用編 - @IT

3. クライアントがランダムな文字列を生成して、ユーザ名・パスワードと「2つのランダムな文字列」を使ってハッシュ文字列を生成する
  • ここの
    • 生成したランダムな文字列は、cnonce
    • ハッシュ文字列は、response
  • といいます。
  • ハッシュ値を生成する関数を「ハッシュ関数」「要約関数」「メッセージダイジェスト」といいます。
4. クライアントは「2つのランダムな文字列」と「ハッシュ文字列」を送信する

http://image.itmedia.co.jp/ait/articles/0411/17/r20_100_2.gif
Tomcatでダイジェスト認証を使う:JavaTips 〜アプリケーションサーバ/コンテナ活用編 - @IT

5. Webサーバは「2つのランダムな文字列」とサーバに格納されているパスワードからハッシュ文字列を生成して認証する

ハッシュ値からパスワードを復元するのはめちゃめちゃ大変なので、サーバのパスワードもハッシュ値にしてクライアントから送られてきたハッシュ値と比較します。

MD5は、文字列から128ビットの値のハッシュ値を生成するハッシュ関数です。

  • 正式:Message Digest 5
  • 規約:RFC 1321
  • 特徴:
    1. 同じ入力値は必ず同じ値になる
    2. 少しでも異なる入力値は全然違う値になる
    3. 不可逆な一方向関数を含むのでハッシュ値から効率よく入力値を割り出すことはできない
  • 欠点:入力値がハッシュ値より長い場合、複数の異なる入力値なのに同じハッシュ値になってしまう「ハッシュ値の衝突」が起こる
# MD5でハッシュ値を生成する
$ echo 'tarou' | md5
961ed3c18a02b9b87bcd3efa9eb2a0a9
# ちょっと違う文字だとぜんぜん違うハッシュ値が生成される
$ echo 'taroo' | md5[f:id:ponsuke_tarou:20181005164602j:plain]
e11337e5c8ce85a437712f57c63249e8
$ echo 'tarou' | md5
26223ea272f3f0e42cf872c01b9ba8ec
  • 前回勉強したメールの認証:CRAM-MD5でも使っています。

ponsuke-tarou.hatenablog.com

次回の勉強内容

ponsuke-tarou.hatenablog.com

DDL と DLL の違い

DDLDLLは全く違うものです。

わかっちゃいるけど、どっちがどっちか頻繁に忘れるので記録します。

共通点はどちらも拡張子になることぐらいです。

DDLとは、テーブル構造を定義する言語です。

  • 正式名称:Data Definition Language
  • 別名:データ定義言語
  • リレーショナルデータベースのテーブルを制御する言語。

www.weblio.jp

「CREATE」「DROP」「ALTER」などが書いてあるやつです。

  • テーブル全体の作成・変更・削除などを行う際に使用する。

仲間には、レコード単位の操作を行うDMLがあります。

  • 正式名称:Data Manipulation Language
  • 別名:データ操作言語
  • リレーショナルデータベースのレコードを制御する言語。
  • テーブル内のレコードの追加・検索・更新・削除などを行う際に使用する。
「SELECT」「INSERT」「UPDATE文」「DELETE」などが書いてあるやつです。
  • データベースにおいてデータの検索・新規登録・更新・削除を行うための言語である。

www.weblio.jp

DLLとは、プログラムを動かす時に使う部品です。

  • 正式名称:Dynamic Link Library
  • 別名:共有ライブラリ、シェアドライブラリ、動的リンクライブラリ
  • 様々なプログラムから利用される汎用性の高い機能を収録した、部品化されたプログラムのこと。
  • 単体で実行することはできず、実行可能ファイル(EXEファイルなど)が起動する際に自動的に連結されてメモリ上に展開される。
  • 多くのプログラムが共通して必要とする機能が収められており、様々なプログラムの一部として取り込まれて実行される。

www.weblio.jp

f:id:ponsuke_tarou:20180918221636j:plain

メールを送信での認証技術に POP before SMTP と SMTP-AUTH

前回の勉強内容

ponsuke-tarou.hatenablog.com

今回の勉強内容 : メール送信時の認証方法

勉強のきっかけになった問題

SMTP-AUTHの特徴はどれか。

ア. ISP管理下の動的IPアドレスからの電子メール送信について,管理外ネットワークのメールサーバへSMTP接続を禁止する。
イ. PCからメールサーバへの電子メール送信時に,ユーザアカウントとパスワードによる利用者認証を行う。
ウ. PCからメールサーバへの電子メール送信は,POP接続で利用者認証済の場合にだけ許可する。
エ. 電子メール送信元のサーバが,送信元ドメインDNSに登録されていることを確認して,電子メールを受信する。
平成27年春期問16 SMTP-AUTHの特徴はどれか|情報処理安全確保支援士.com

メール送信時の認証技術には、「POP before SMTP」「SMTP-AUTH」があります。

むかしむかし、SMTPには認証の仕組みがありませんでした。

それに伴い、大量のメールを送り付ける「迷惑メール」が流行りました。

POP before SMTPは、メールを送信する前にPOP3認証を行って認証できたらメールを送信する仕組みです。

SMTPに認証のしくみはないけれど、メール受信で使うPOP3にはIDとパスワードによる認証の仕組みがあります。

https://asahi-net.jp/support/guide/mail/img/0598-1.gif
POP before SMTP方式|プロバイダ ASAHIネット

http://www.tku.ac.jp/~densan/local/mail/popbeforesmtp.gif
メールの利用:メールソフト編

POP3認証をしてから数分間は、認証なしで送信し放題なのでスパムメールが送信できるかもしれない。

複数のPCで同じIPアドレスを使用するNAT環境下では認証を通った人と違う人がメールを送信できる。

SMTP-AUTHは、メールサーバがメール送信者をIDとパスワードで認証してからメールを送信する仕組みです。

https://www.tiki.ne.jp/security/img/spam_fig2.gif
SMTP認証について セキュリティ TikiTikiインターネット

https://www.wfwfserver.ne.jp/function/images/smtpauth.gif
SMTP AUTH 低価格で高品質のレンタルサーバーをご提供するわふわふサーバー

認証方法には種類があります。

f:id:ponsuke_tarou:20180913234047j:plain

PLAINは、暗号化しないでユーザー名/パスワードをそのまま送る仕組みです。

パスワードが平文で流れているので危険な方式です。

LOGINは、標準化されておらず独自の実装をしているメールサーバーもあって互換性が低い方式です。

ユーザー名/パスワードはBASE64に変換される(XXXXXの部分の事)
ユーザー名/パスワードを別々に送信したり一緒に送信したりする(やり方はそれぞれ)

CRAM-MD5は、パスワード文字列がそのままネットワークを流れることがないように、暗号化が施されます。

MD5を使用してチャレンジ-レスポンス認証を行い、パスワードそのものは暗号化された状態でも送信はしません。

  • 流れ
    1. サーバーとクライアントが共通に知っているパスワードを用意
    2. サーバーは、クライアントに対し任意の文字列(Challenge文字列)を送る
    3. クライアントはそのChallenge文字列と共通パスワードを使い、MD5で計算処理を行う
    4. 結果をサーバーに返す
    5. クライアントからの返答が傍受されても、ここからパスワードを復元するのは困難
    6. サーバーは、自分でも同じ処理を行ない、結果が一致すれば相手が正しくパスワードを知っているとして認証する
DIGEST-MD5は、CRAM-MD5の拡張版で、辞書攻撃や総当り攻撃などに対する耐性を高めたものです。

f:id:ponsuke_tarou:20180913233607j:plain

次回の勉強内容

ponsuke-tarou.hatenablog.com

スパムメール撲滅を目指す送信ドメイン認証技術

前回の勉強内容

ponsuke-tarou.hatenablog.com

今回の勉強内容 : メールの安全対策

勉強のきっかけになった問題

スパムメールへの対策であるDKIM(DomainKeys Identified Mail)の説明はどれか。

ア. 送信側メールサーバにおいてディジタル署名を電子メールのヘッダに付与し,受信側メールサーバにおいてそのディジタル署名を公開鍵によって検証する仕組み << 正解
イ. 送信側メールサーバにおいて利用者が認証された場合,電子メールの送信が許可される仕組み
ウ. 電子メールのヘッダや配送経路の情報から得られる送信元情報を用いて,メール送信元のIPアドレスを検証する仕組み
エ. ネットワーク機器において,内部ネットワークから外部のメールサーバのTCPポート番号25への直接の通信を禁止する仕組み

平成25年春期問16 DKIMの説明はどれか|情報処理安全確保支援士.com

メールアドレスのドメインを検証することでなりすましや改ざんを検知できるようにする技術を送信ドメイン認証技術といいます。

残念なことにメールは送信元を偽ることができちゃいます。

http://www.infomania.co.jp/images/narisumasi.gif
送信ドメイン認証について

送信ドメイン認証技術には、IPアドレスを利用するタイプと電子署名を利用するタイプがあります。

送信側のIPアドレスを利用するタイプは、あらかじめDNSサーバにIPアドレスを公開しておいて、受信側が送信者のメールアドレスからDNSIPアドレスを検証します。

http://www.infomania.co.jp/images/spf.gif
送信ドメイン認証について

https://sendgrid.kke.co.jp/blog/wp/wp-content/uploads/2016/09/1f4815d36a36fa914b05ccb4be9c7968.png
SPFとは? | SendGridブログ

http://salt.iajapan.org/wpmu/anti_spam/files/2010/01/fig02_701.png
SPF(Sender Policy Framework) : 迷惑メール対策委員会

SFPは、メールの「エンベロープFromにあるメールアドレス」のドメインから送信側メールサーバのIPアドレス取得して検証します。

  • 英語:Sender Policy Framework

Sender IDは、「メールヘッダのFromやSenderにあるメールアドレス」のドメインから送信側メールサーバのIPアドレス取得して検証します。

エンベロープFrom」はメールの配信処理用のメールアドレスで、「メールヘッダのFromやSender」はメーラなどの表示用のメールアドレスです。

  • エンベロープFromは、実際の送信者メールアドレスで宛先にメールが届くとエンベロープFromは削除されます。
  • メールヘッダのFromやSenderは、配信処理には使用されず送信者以外のアドレスを使用することが可能です。

電子署名を利用するタイプは、あらかじめDNSサーバに公開鍵を公開しておいて、受信側がメールヘッダの電子署名DNSで公開鍵を取得して検証します。

  • 流れ
    1. 送信側がDNSサーバに公開鍵を公開する
    2. 送信側が秘密鍵電子署名をつくってメールヘッダにくっつける
    3. 受信側がメールヘッダにあるメールアドレスのドメインからDNSサーバで公開鍵を取得する
    4. その公開鍵で検証する

IIMは、送信側が「電子署名と公開鍵」をメールにくっつけて、受信側が公開鍵を検証します。

  • 英語:Identified Internet Mail

DomainKeysは、認証に失敗したり、電子署名がない場合、何もせずに受け取ります。

IIMとDomainKeysを合わせたDKIMは、認証に失敗したり、電子署名がない場合、どうするかを決められます。

  • 読み方:ディーキム

http://www.infomania.co.jp/images/dk.gif
送信ドメイン認証につい DKIMとDomainKeys

http://image.itmedia.co.jp/ait/articles/0602/16/r20_01.gif
電子署名方式の最新技術「DKIM」とは (1/4):送信ドメイン認証技術解説 - @IT

DMARCは、送信ドメイン認証での「認証結果によるメール配信制御」「認証結果のレポート」を行うシステムです。

  • 英語:Domain-based Message Authentication, Reporting and Conformance
  • 読み方:ディーマーク

https://mailmarketinglab.jp/word-dir/wordpress/wp-content/uploads/2017/04/20170331_04-768x729.jpg
なりすましを撲滅する?「DMARC」の概要をざっくり理解しよう | メルラボ

http://www.twofive25.com/image/imageDMARC25.png
TwoFive、なりすまし対策に有効なDMARCレポートを集計・可視化するサービス「DMARC / 25 Analyze」を提供開始 - クラウド Watch

「検証結果でそのメールをどう扱って欲しいか」を記述した情報の定義をSSPといいます。
  • 英語:Sender Signing Practice
  • SSPは、DNSサーバにあります。

f:id:ponsuke_tarou:20180913225716j:plain

次回の勉強内容