ネットワークまわりについて
資格勉強がてらネットワークまわりの知識をだらだらと書きならべようとおもう。
ユーザ全体に丸見えなので、間違いがあれば指摘してくれそうだし、何より否が応でも勉強が捗りそうな気がする(独学大全で言うところのゲートキーパー?)。
1日1トピック以上を目標としたい。
IPアドレスの種類
IPアドレスにはインターネットで利用できるグローバルIPアドレスと、利用できないプライベートIPアドレスの2種類がある。
グローバルIPアドレスはインターネットに接続されたネットワーク機器に対し一意に与えられる一方、プライベートIPアドレスは家庭や企業のLAN内部で自由に割り当てられる。
グローバル⇔プライベートアドレスの相互変換
グローバルIPアドレスとプライベートIPアドレスとの相互変換を行う技術。
変換はLANの境界に設置されたルータが行う。
- NAT(Network Address Translation)
- NAPT(Network Address Port Translation)
NATはNAT変換テーブルにしたがい、互いのIPアドレスを1対1に変換する。単純な方法だが、LAN内のホスト数が変換テーブルにあるグローバルアドレスの数を上回ると接続できないホストが生じる。
NAPTは送信IPアドレスとポート番号の組み合わせに対して、グローバルIPアドレスとポート番号を割り当てる。この組み合わせをテーブルに記録しておき、送信に対する応答をテーブルの情報に基づいて適切なホストへ送り返す。これによりNATの問題を回避できる。
サイバー攻撃
盗聴
-
スニッフィング
- 通信経路上で、プログラム等を用いて内容を傍受する
- sniffing <- sniff(匂いをかぐ・盗聴する)
-
セッションハイジャック
- スニッフィングで盗聴したセッション情報を盗む
- クライアントやサーバになりすます
-
中間者攻撃
- クライアントに対してはサーバになりすます
- サーバに対してはクライアントになりすます
なりすまし
-
フィッシング
- 偽サイトに誘導して認証情報・個人情報を入力させる
- ソーシャルエンジニアリングの一種
-
ファーミング
- DNSを改ざんして偽の名前解決をさせる
- 偽サイトや詐欺サイトに誘導
-
DNS Changer
- ウイルスの一種
- PCやルータのDNSサーバ情報が不正に書き換えられる
-
リプレイ攻撃
- 認証情報を盗聴し、それを利用して第三者がログインする行為
- ワンタイムパスワード・チャレンジレスポンス方式の認証で対策
サービス不能攻撃
いわゆるDoS(Denial of Service)
サーバに異常負荷をかけ、機能不全にさせるもの
他のホストに踏み台としてDoSに加担させるDDoS攻撃もある
攻撃のタイミングを一致させるため、攻撃者が一斉に指示できるようにする仕組み→ボットネット
DNSアンプ
送信元を攻撃対象のIPアドレスに偽装して、DNSに問い合わせる
→応答内容を大きなサイズになるよう問い合わせる
→DNSはUDP通信を利用するため、リクエストのためのパケットサイズが小さい
→小さいパケットで大きなダメージへ増幅(Amplify)
共通鍵暗号方式
暗号化と複合に同じ鍵(共通鍵)を使用する暗号化手法。暗号化する際の計算量が小さく、コンピュータに負荷をかけずに暗号化ができるが、生成した鍵を受信側に渡す必要がある。そのため、渡す際に第三者に盗み取られないような工夫が要る。
→公開鍵暗号方式を利用して共通鍵を暗号化し、鍵を渡す「ハイブリッド暗号」がある。
暗号化アルゴリズム
ブロック暗号
64ビットや128ビットといった固定長ごとに区切って暗号化を行う。
- DES
- 暗号強度弱め。3回繰り返した3DESもある
- AES
- 鍵長256ビット。WPA2などで利用されている
ブロック長より長いデータを暗号化するときに、暗号化ブロックの共通性などを見破られてしまう恐れを勘案し、暗号利用モードを活用する。
- ECB
- 1ブロックずつ単純処理する。同じブロックがあると暗号化結果も同じになる
- CBC
- 1つ前のブロックの暗号化結果をもとに次の暗号化を行う
- データの先頭から処理しないといけない→遅い?
- CTR
- 何ブロック目を暗号化しているかを加味して暗号化
- 先頭から処理しなくても良い→並列処理が可能
ストリーム暗号
1バイトもしくは1ビットごとに暗号化していく。
暗号化前後でデータサイズが同一である。リアルタイム性が必要な通信に利用される。
- RC4
- WEPやWPAなどで利用されている。鍵長は多様
公開鍵暗号方式
暗号と復号で異なる鍵を利用する手法。共通鍵暗号方式とは異なり、鍵を受け渡しする必要がないため盗聴されることがほぼない。
大きく2つの技術に用いられている。
暗号化通信:送信側は「公開鍵」でデータを暗号化し、受信側は「秘密鍵」で復号する
→受信側で鍵ペアを作り、送信側に公開鍵のみを送信する
→復号できるのは秘密鍵を持つ受信者本人だけなので、第三者に傍受されても内容を解読できない
電子署名:送信側は「秘密鍵」で暗号化し、受信側は「公開鍵」で復号する
→送信側で鍵ペアを作り、受信側に公開鍵飲みを送信する
→秘密鍵を使って暗号化できるのは送信側である本人だけなので、データの完全性を担保できる
アルゴリズム
- RSA
- ECDSA