ネットワークの基礎
サイトやら授業やらpdfやらのメモです
情報通信の基礎/インターネットの歴史
情報通信:文字、音声、画像等を信号に変換して相手に伝えること
回線交換 vs パケット交換
パケット交換は開戦を共有して使用
段階的に集約ポイントが存在する
パケット単位でデータを交換するノンブロッキング通信
メリット、デメリット
・回線交換方式
開戦を占有できるので品質が保証され
端点と端点を結ぶフルメッシュ隣規模とコストが増大
・パケット交換方式
開戦を共有するためにコストが抑えられる
端点と端点の間の通信品質が保証されない
・フレームリレー方式
パケット交換方式であるが、回線交換方式の利点を取り入れたもの
中継ぎ機を使い、動的に開戦割り当てを行うことで通信品質とコストの両立を目指す
・ATM(asynchronous transfer mode)
通信量の単位
最小単位bit、伝達速度bps(bite per sec)
K=10^3,M=10^6,G=10^9,T=10^12,P=10^15,E=10^18,Z=10^21
通信量においては、1Mbps=1000kbps=10^6bit
記憶装置においては、1MB = 1024KB = 2^10 Bである場合が多い
KiB(きびバイト)1 KiB = 2^10B,
キビバイトは通信の世界において2^10オーダーで計算するためのもの
アーランという単位もある
通信トラフィック量に関する統計的な単位
符号か方式
・情報源符号化
文字、画像、音声などの符号化
・伝送路符号化情報源符号化によって符号化されたデータ列を実際の伝送路に送出するために再度符号化すること
固定長符号化
文字データなどの情報源符号化に用いられる
ASCILやUTF-8など
可変長符号か
・ハフマン符号化
木構造データとして符号化する
・ランレングス符号
データ中の連続する文字をまとめて符号化する
・算術符号
非可逆な圧縮符号化
・LZ符号
辞書法に基づく圧縮符号化
誤り訂正・訂正符号
・CRC符号
伝送されるデータビットを多項式とみなしこれを生成多項式で助産した時の余りを伝送データに付加する方式
・ハミング符号
あるビット長のデータ単位に対して、排他的論理和による誤り検知ビットを付加する
情報エントロピー
・平均情報量
ある情報源がどれだけの情報量を出しているのか
・相互情報量:XとYはどの程度依存しているかの指標
グラフ理論
・ネットワークにて用いられるグラフ理論
最短経路発見問題、有向グラフ、重み付きグラフ
ネットワークの経路制御(動的経路制御への適用)
ケンドールの記法
M/M/1
M:到着分布
M:サービス時間分布
1:サービス窓口
サービス待ち時間を決定するために用いられることが多い
インターネットの歴史
インターネットとは、ネットワークを相互接続したもの
狭いネットワーク(LAN)を相互接続して、広域なネットワーク(WAN)へ
インターネットの成り立ち
ARPANET⇨NSFNET⇨ WWWが発明される
インターネットはどのくらい利用されているのか?
10000gbps
動画、ゲーム、webストリーミングなど
何に利用されているのか?
クラウドコンピューティング
ビッグデータ処理
IoT
IoTとは物と人がつながるインターネットの世界
クラウドとはユーザー一人一人がソフトやサーバーを用意しなくてもネットワークを通じてそれらを使うことができると定義するのが良い
プロトコルと階層モデル
通信の約束事=プロトコル
インターネットの通信とは、PCと携帯、PCとスマホなど、異なった機種間でも通信が可能
OSI参照モデル
ISOによって策定された、コンピュータの通信を階層的に表したモデル
昔は色々なプロトコルが考えられたがTCP/IPが生き残った
OSI参照7層モデル
周波数などを決めるのが物理層
同じネットワークで使うのがデータリンク層
異なるネットワークとつながるのがネットワーク層
セッション層は暗号化に使う
プレゼンテーションは文字コードの変換
TCP/IPによるデータ伝送の流れ(5階層)
階層構造アーキテクチャ
それぞれの層にて役割を分割できる
分割した役割ごとに部品を入れ替えることが可能
物理層:優先LAN、無線LAN、ADSL、光ファイバー
ネットワーク層:IPv4、IPv6、Apple Talk
Ehernet
XeroxのPARCによって発明
フレーム交換による通信
伝送速度:10Mbps~10Gbps
最も一般的なLAN構築メディア
IEEE
LANなどでコンピュータを接続する際の企画にしばしば見られる
Institute of electrical and Electronic Engineers
ノードが通信を行うためのメディア
有線:導線や光ファイバー
無線:携帯、wimxa、lte、wifiなど
銅製メタルケーブルの特性
同軸ケーブル
外部への電磁波の漏れや外界からの影響を低減
強く折り曲げてはいけない
平衡ケーブル
ツイストペアケーブル
ツイスト
光ファイバー
信号の周波数がかなり高くなるまでは損失は一定
SMF/MMF
イーサネットとはデータリンク層のプロトコル
要するに00はこういう意味、01はこういう意味である、、というものを決めるものである
Ethernetの仕組み
Ethernet frame format
フレーム内には、宛先アドレスと発信元アドレスが含まれる(macアドレス)
プロトコルタイプフォールドで上位層を識別
各フィールド
・プリアンブル
・宛先/送信元macアドレス
・tag protocol identifier(tpid)/tag control information(tci)
TAG VLANにて利用する
・type
データの長さを表すために利用されたり、データ内にあるプロトコルを定義するために利用される
・fcs
frame chaeck sequenceはエラー検出に利用される
データフレーム生成
信号波形変換、シリアル変換、フレーム符号化、macフレーム生成
符号化
・10bse-T~100base-TX
・4B/5B
・ スクランブル
・MLT-3
NIC
・Network Interface Card
・各NICは、固有のmacアドレスを持つ
・nicにはipアドレスもついている
I複数の3層プロトコルを同一リンク上で利用するため、macアドレスとipアドレスが両方必要となってくる
mac adress
media access control address
ネットワークに接続された機器ごとに付与されたアドレス
グローバルにユニークな識別子
macアドレス:EUI-48の構造
OUI(organizationally unique identifier)
EEE OUI検索
というものでmacアドレスのベンダーを調べられる
EtherNetの基本原理
node1がnode4宛で送信したデータは同じネットワーク内のすべてのノードに届くが、node4以外のノードは自分のmacアドレスではないので無視する
・CSMA/CD
carrier sense
通信路上の信号を監視し、どの端末もデータを送信していないことが確認できた場合にデータを創出する方式
multiple access
複数の端末が1つの伝送路を共有すること
collision detection
複数の端末がほぼ同時にデータを送出した場合には信号の乱れが発生する
物理層とデータリンク層について
・ノードの基本的な接続形態
3つの大別される
Point to Point
Broadcast Multiple Access
Non-Broadcast Multiple Access
Point-to-point
リンク上には2つのノードしか接続しない
シリアル通信など
broad mutiple access
複数のノードが同一リンクに接続する
ethernetなど
non-broadcast multiple access
複数のノードがリンクに接続する
コリジョンドメイン
Ethernetでは、コリジョンドメイン内にフレームがブロードキャストされる
全二重通信と半二重通信
全二重通信:送信用と受信用に別の通信チャネルを用意
半二重通信:送信と受信は同一チャネル、タイミングを切り替えて送信と受信を行う
リピータ
受け取った信号を増幅して全ポートに再生
コリジョンドメインの拡大
ブリッジの動作
フレームの発信元MACアドレスと受信ポートを記憶
フレーム転送時の処理
一定時間マッチするトラフィックがなけれbあキャッシュエントリを削除
転送方式
ストアアンドフォワード
中継局を介して電気通信を行う場合、中継点で情報を一旦蓄積して、タイミングを見計らって次の中継点に転送する方式、スイッチングハブの動作、蓄積する=メモリが必要
カットするー
中継器においてパケット全体を受信し終わる前に宛先アドレスを見て次の転送先にデータ転送を開始する方式
速度が違うEthernetが混在すると難しい
パケットロスが発生しやすい
近隣探索プロトコル
誰がどのmac address/ip addressを持っているかを確認するためのプロトコル
・ARP(address resolution protocol)
・NDP(neighbor discovery protocol)
arp
address resolution protocol
下位層アドレスと上位層アドレスを関連づける
mac addressとip addressの対応づけ
ARPの動作概要
arpフォーマット
arpテーブル
上記の3つはスライド参照せよ
LANの連結 = WAN
イーサネットによるネットワークは基本的に循環のないグラフ構造にて構築される
ルータにてネットワークが区切られる
MAC address / IP address
通信先は常に IP addressによって指定される
ARP/NDPによって IP address -> MAC address変換が行われる
イーサネットによるネットワークは基本的に循環のないグラフ構造にて構築される
ルータにてネットワークが区切られる
ループの弊害
ループが存在するとフレームは同じ場所をめぐる
トポロジによっては重複するパケットが増殖する
ループフレームは消えない
Spanning Tree Protocol
ループ回避アルゴリズム
フレームフォワード用のツリーを作ることで、送受信すべきポートを制限
Spanning treeの動作
1. root bridgeの決定
2. root portの決定
3. designated portの決定
4. blocked portの決定
Rapid spanning tree protocol
・IEEE802.1w
・Spanning treeの再構築にかかる時間を短縮
・ポートの役割を追加
無線LAN
無線LAN基地局の動作
有線、無線間はブリッジとして動作
無線区間は実質リピータ
電波はどこへ飛ぶか細かくコントロールできない
無線LANフレーム
スライド参照
SSID
・無線LANにおけるネットワークの識別子
アクセスポイントと無線LANユニットのSSIDが一致した場合データの送受信が可能
セキュリティ機能ではない
・SSIDブロードキャスト
無線LAN基地局が周囲にSSIDを送信
OSはそのシグナルを受信し、利用できる無線SSIDリストを作成
2.4GHz対無線LANと5GHz帯の無線LANにはチャネルの割り当てが異なる
電波の仕組み
電磁波
周波数帯域とはどのくらいの幅を利用してデータを送受信するか
変調方式(AM,FM)
進化
802.11g ⇨ 802.11n ⇨ 802.11acとなるに従い
空間ストリーム数、チャンネル幅、サブキャりあ変調方式の多重化度合い
が向上している
高速化の代償
使えるチャンネル数が減少
ノイズの影響を受けやすくなる
基地局の台数を増やさないと速度が得られない
現在流通しているのは802.11ac準拠基地局
無線LAN基地局の設置
・設置場所
高いいちに設置するほど広範囲に届く
1つの基地局がカバーする範囲を考える
ユーザ数が多い場合には同じエリアを異なるチャネルでカバー
・周波数帯
2.4GHzは干渉を起こしやすいが障害物に強い
論理最大速度:11Mbp/54Mbps
5GHzは直進性が高い
速度や安定性が高い
論理最大速度:54Mbps
・近隣に無線LAN基地局がある場合
チャネルの重複隣接に注意(2.4GHzの時)
電子レンジ、業務用冷蔵庫
無線LANに対するセキュリティ上の脅威
・盗聴
暗号化されていないトラフィックをそのまま盗聴
WEPの解読
・ネットワークへの侵入
電波漏洩
認証機構の不備
・にせAPの設置
トラップ
man in the middle アタック
・DoS攻撃
妨害電波
アソシエーション切断
WEP(wired wquivalent privacy)
・無線通信における暗号化技術
秘密鍵暗号方式を利用:RC4アルゴリズム
鍵長は64bit、128bit
WEPの脆弱性
WEPには設計上の脆弱性が発見されている
・初期化ベクタがわずか24bit
64bitWEP:1時間以内に解読されるケースもある
最近の研究では10秒程度で解読可能
WEPの脆弱性を攻撃するツールが存在
802.11i(WPA)
暗号化方式:TKIP/AES
TKIP
Home Mode
Enterorise Mode
WPA2
macアドレスフィルタリングもある
インターネットプロトコル
arp tableは要するにキャッシュしているようなもの
csma/ca:無線lanにおける衝突回避
有線lanと違い、確実な衝突検知方法がない
IPとは
インターネットで通信を行う上での統一的なルール
インターネットで通信を行うノードは全てInternet protocolを使って通信を行う
レイヤーモデル
OSI参照モデル
7 アプリケーション HTTP,FTP,SMTP
6 プレゼンテーション
5 セッション
4 トランスポート TCP, UDP, SCTP
3 ネットワーク IPv4, IPv6, ARP
2 データリンク Ethernet, 802.11b,
1 物理層 UTP,光ファイバー,無線
IPアドレス
インターネットの上の識別子
MAC addressはイーサネット上の識別子
通信相手を特定するために使う
電話番号のようなもの
現行ではIPv4とIPv6という二種類のIPアドレスがある
IPv4は32bit、IPv6は128bitである
macアドレスは伝送媒体上での識別子
ethernetアドレスは世界で一意
IPアドレスの構造
ネットワーク部とホスト部サブネット上のホストには同じネットワークを名付ける
whoisというコマンドを使うとアドレス所有者を検索できる
グローバルアドレス、プライベートアドレス
グローバルIPv4アドレスは世界中に一意に割り当てられたアドレス
割り当てられたノードのみが利用する
プライベートIPv4アドレス
プライベートアドレスは自由に使って良いというアドレス
10.0.0.0 ~ 10.255.
RFC
Request for comment
インターネットにおけるプロトコルの標準化を行う団体であるIETFが発行する文章
いろんな人がRFCを書いている
IPv4アドレスの不足
各ISPは厳しい審査を経てIPアドレスを取得するようになる
サブネット
IPアドレスのネットワーク部の長さを示す
ネットマスクの長さによりそのサブネットに収容できるホストすうが変化
アンド演算をする
ネットワーク部が共通だと同じネットワークである
つまり、130.69.251.0/24の中に130.69.251.0/25が入ってる
必要なアドレス数はサブネットの大きさ-2個である
つまりサブネットの例1では
2^5-2 = 30個のホストに接続できる
同一ネットワーク・同一サブネット
・同一ネットワーク内はEthernetの機能で通信できる、arpでIPアドレスとmacアドレスがわかる
サブネットの分割の目的
事務セグメント、学生用セグメント、サーバーセグメント、研究室セグメント
サブネットまとめ
・サブネット分割が必要になる要因
ネットワークごとに異なるポリシがある
管理団体が違う
ネットワークが巨大だと通信品質が落ちる
・サブネット分割をするときに考えること
運用ポリシ
アドレスの利用効率
IPパケットの構造
Ethernetヘッダ データ(IPパケット)
IPパケット:IPヘッダ+データ
IPv4ヘッダーとIPv6ヘッダー
IPv4に比べ、IPv6の方が構造はシンプル
IPパケットの転送(フォワーディング)
インタネットは無数のサブネットを相互接続
あるサブネットから別のさぶねっとに到達するためには複数のルータが中継
L3機器とL2機器
同じネットワーク同士を延長するのがL2機器でリピータとかスイッチとか羽生とか言われる
違うネットワークを接続するのがL3機器でルータと呼ばれる
IPによるパケットの伝送
複数のデータリンクを相互に接続
IPはデータリンクのトポロジを意識しない
End to Endの通信モデル
Endノード同士がデータの送受信をコントロール
中継ノード(ルータ)はデータを転送するだけ
経路制御
経路
通信先へ到達するために、IPパケットを送信転送するための宛先情報
宛先が同一ネットワーク上なら直接配送
宛先が同一ネットワーク上にない場合は中継ノードを経由
経路を管理するための仕組み
・経路表
ルータ、ホストが保持する経理の一覧表
宛先がこの方面ならこちらにパケットを投げなさいという情報のリスト
・経路検索
パケットを転送する際に、経路表から該当する転送先を検索
・経路制御
各ルータに正しい経路表を設定する仕組み
・経路制御プロトコル
経路制御をルータ間で自動的に行う仕組み
End to Endの通信モデル
Endノード同士がデータの送受信をコントロール
中継ノードはデータを転送するだけ
経路制御/経路制御プロトコル/経路制御の階層化
経路制御はそんなに難しいアルゴリズムではない
経路:通信先へ到達するためにIPパケットを送信・転送するための宛先情報
経路表:ルータ、ホストが保持する経路の一覧表
経路検索:パケットを転送する際に経路表から該当する転送先を検索
経路制御:各ルータに正しい経路表を設定する仕組み
経路制御プロトコル:経路制御をルータ間で自動的に行う仕組み
経路表の情報
・宛先プレフィくす:ネットワークアドレス+ネットマスクで表現されるIPアドレスの範囲
・ネクストホップ:宛先アドレスに到達するための次の転送先、インターネットは動的なので、転送先は1つ先までしか知らない
・送信インターフェース:どのインタフェースからパケットを送信するのか
経路表:全てのインターネットのーどは経路表を持つ
ホストはルータのIPアドレスだけを知っており、ルータは多くの経路を保持している
Default Route:経路表のどのエントリにも合致しないIPパケットを送信・転送する際に用いる経路
自分が知らないネットワークが宛先となっているパケットは経路を知っているであろうルータに渡す
簡単なのが静的経路制御
経路の集約
経路探索のルール
・最長一致ルール
宛先IPアドレスにmatchする経路が複数ある場合、最も長いネットワークアドレスがマッチする経路を優先
経路表の更新
ネットワークの構成変更が起こったら、全てのルータで経路表を更新する必要がある
経路表の更新方法
・人間が手動で設定して回る
static Routing、静的経路制御
・各ルータで自動的に経路表が更新される仕組み
Dynamic Routeintg、動的経路制御
経路制御プロトコルを利用
メトリック
・最適な経路を選ぶ際のパラメータ
・グラフ理論の場合はコスト
静的経路制御
・全ての宛先に対する経路情報をルータが静的に保持する方式
経路表をあらかじめ人間が設定する
・経路表に更新がアル場合も人間が設定する
動的経路制御
・経路制御プロトコルを用いて経路情報をルータ間で交換する方式
自動的にネットワークの変更を検出し、経路表が更新される
距離ベクトル型、リンク状態型、パスベクトル型がある
traceroute IPアドレスで経路が調べられる
経路制御プロトコル
距離ベクトル型:RIP
リンク状態型:OSPF、IS-IS
パスベクトル型:BGP
グラフ理論
グラフとは
向きを有するか:有効、無向
・最適化問題例
最短経路問題
最小木問題
巡回セールスマン問題
最小費用流問題
距離ベクトル型の特徴
代表的なプロトコル:RIPv1、RIPv2
プロトコルの動作が簡単
経路の収束にカカkる時間が長い
ループが発生する可能性
距離ベクトル型のアルゴリズム
・ベルマンフォード法
・各ルータは経路情報を隣接ルータに広告
・経路情報を受け取った場合の処理
自分が知らない経路なら、採用
自分が知っている経路より短い経路なら採用
RIPの仕組み
Metricは1~16まで
30秒ごとに広告
リンク状態型の特徴
代表的なリンク状態型制御プロトコル
・OSPF
・IS-IS
大規模なネットワークに適している
距離ベクトル型に比べ、処理が複雑
OSPFの仕組み
リンク状態データベース
ツリーの作成
OSPFエリアの分割
OSPFエリア分割概念図
各プロトコルの比較
経路制御の階層化
AS間広域経路制御
BGP
・バスベクトル型経路制御プロトコル:ループフリー
・経路制御のポリシを設定に反映しやすい:ISP間の接続の契約に従った経路制御
・ピア:経路交換したい組織とお互いにBGPを設定し合うことで経路制御が実現、この経路交換の設定のことをpeering(ぴあ)という
BGP:パスベクトル型の経路制御方式
自分自身から目的へ到達するまでに辿るパスを経路として広告
より短いパスを選択して広告
ループフリーになる仕組み
受け取った経路情報のパスに自分自身が含まれているかによってループを検出
BGPによる経路制御ポリシの実現
・TE
・経路のフィルタリング
・BGPのアトリビュート
経路の調べ方(AS)
traceroute -A www.youtube.com
ぱぶりっくとプライベートピアリング
・パブリックピアリング:IXと呼ばれる共有の場所において相手を選定してピアリング、1つの設備において複数の相手とトラフィック交換が可能
・プライベートピアリング;AS同士を専用の回線等で接続し、他のASと設備を共有しない
トランジット
・自組織のトラフィック中継を特定の組織に委ねること
・通過するトラフィックはそのASのポリシーに従った転送が行われる
Internet Routing Registry
・BGPの経路情報自体にその正しさを証明する裏付けはないのでハッキングされることもある
。インターネットの経路情報やその優先性に関する情報データベース
ポリシーの違う団体を繋げようというのが、BGPというプロトコル
代表を決めてそこに集約すればメッセージ数を減らせるんじゃないかというのがOSPF
別々にプロトコルを決めていた時に、経路の衝突が発生した時には順番がある
EBGP > OSPF > ISIS > IBGP > RIP
トランスポート層
データを運ぶ際の取り決め
データフォーマット
Ethernetヘッダ/IPヘッダ/TCP or UDFヘッダ/データ/FCS
TCP/UDPヘッダ
UDPヘッダはTCPヘッダよりも簡潔である
TCPヘッダには緊急ポインタやflagなどがある
ポート番号
IPアドレスはデータの宛先ホストを示し、ポート番号はホスト上での宛先アプリケーションを示す
ホストは受信したデータをどのアプリケーションに渡すかを宛先ポートにて判断
ポート番号の定義
0~1023:Well known port
1024~49151:Registered port
49152~65535:Dynamic port
IPアドレスは柔軟に決まっているが、ポート番号は決まってる
例えば、80はweb的な
バイトオーダはIPアドレスやTCP/UDPポート番号を扱う際に重要な概念
TCP/IPはビッグエンディアン
UDP
user datagram protocol
RFC768
信頼性のない通信
UDPヘッダ
長さ:UDPヘッダ+データのバイト数
checksum:生合成のチェックに利用
TCP
コネクション指向
ストリーム型通信
特徴:信頼がある通信を提供
TCPヘッダ
シーケンス番号:送信するデータの番号
acknowledge番号:受信したデータの番号
data offset:実際のデータが始まる位置
flag:URG/ACK/PSH/RST/SYN/FIN
ウィンドウサイズ:受信確認を待たずともそう不可能なデータの最大サイズ
緊急ポインタ:緊急データの位置
TCPの仕組み(コネクションの確立方法)
3way handshake
SYN:コネクションを初期化する
ACK:確認応答
(送受信データ量の制御)
・フローコントロール
相手のバッファ容量に合わせたフロー制御
通信の高速化
・コンジェスチョンコントロール
途中経路でのパケットの損失に対処
(まとめ送り)
・Ackを待たずに送り出す
・まとめて送れるデータ量=Window size
・1パケットの最大サイズ = MSS
シーケンス番号
・データ列の番号
・初期値はランダム
・送ったbyte分だけ番号を増加させる
・Ackは受け取った番号+1の番号で返す
シーケンス番号の初期値について
・どのように決めるのが良いか
。シーケンス番号推測可能リスク
シーケンス番号が予測可能だったら通信がハイジャックできる
MSS(Maximum Segment Size)
・1パケットで送れる最大実データ数
・TCPのオプションとして通知可能
Windows Size
・連続して送受信可能なデータの最大サイズ
・受信状況によって刻々とWindow sizeは変化する
フローコントロール
相手が溢れたら、送信者が加減する
早すぎてバッファが溢れる
遅すぎて余裕がある場合は早く送る
こんジェスチョンコントロール
ネットワークが混んでたら、送信者が自発的に加減する
スロースタート
window sizeにかかわらず、最初はまず1パケット送信する
今度は2パケット連続で送る
次は4パケット連続で、、というのを閾値まで繰り返す
タイムアウト
Ack待ち時間を決めるためにRTTを利用
TCPアルゴリズムの種類
・Tahoe
スロースタート
・Reno
Fast Recovery
・NewReno
Fast Recoveryアルゴリズムの修正
・Vegas
・CTCP
TCPスループットの算出
TCPの仕組み
(コネクション終了時)
遅延ACK
様々なTCP/IPの実装例
TCP SACK
ICMP
Internet Control Message Protocol(RFC792)
ICMPv6(RFC4443)
IP通信のエラー制御などを通達する
ICMPメッセージに対するICMPメッセージは送信されない
言うなればレイヤー3.5ぐらい
ICMPの用途
・エコー要求・エコー応答
・応答到達不能
・時間切れ通知
・経路リダイレクト
経路リダイレクトはハッキングの可能性があるのであまり使われていない
ICMPの位置付け
・ICMPは何層のプロトコルか?
・ICMPをフィルタするか否か
OS Fingerprint
・各OS毎のTCP/IPの実装を特徴付ける差異
TCP/IPの規格はRFCによって定義されているが、この実装は各OSによって異なる
インターネットを通じてOS Finferprintを収集し分析することで、ノードのOSが特定できる
・OSの種類やバージョンがわかれば・・・
ハッキングの攻撃がやりやすくなる
差異が出やすいところ
・TCPのシーケンス番号
・TCPオプション
ポートがなかったら、IPアドレス1つにつき1つの機器しか使えない
フローコントロール
wire sharkというソフトでキャプチャできる
TCP/UDP/ICMP
トランスポート層のプロトコル
TCP/UDP
ポート番号
シーケンス番号、ACK番号
フローコントロール
相手が溢れたら送信者が加減する
こんジェスチョンコントロール
ネットワークがこんでたら、送信者が自発的に加減する
ドメイン名
階層構造になっている
www.itc.u-tokyo.ac.jp
jp:日本
ac:大学組織
u-tokyo:東京大学
itc:情報基盤センター
www:ホストの名前
TLD(top level domain)
・gTLD
com,net,org,edu,gov,mil,int,infoなど
・ccTLD
jp,kr,cn,fr
DNS
domain name systemの略
名前とIPアドレスの変換を行う
DNSサーバの連携
数千台、数万台のDNSサーバがそれぞれ連携しあって、一つのデータベースを作成
DNSサーバの種類
・キャッシュサーバ
ユーザが直接利用するためのDNSサーバ
・Authoritative DNSサーバ
ゾーンと呼ばれるデータベースを有し、名前とIPアドレスとのマッピングを管理している
DNSのクエリタイプ
・A(正引き):ドメイン名のIPアドレスを知りたい
・PTR(逆引き):IPアドレスのドメイン名を知りたい
・NS:ドメイン名のDNSサーバのIPアドレスを知りたい
・MX:ドメイン名のメールサーバのIPアドレスを知りたい
DNSがなかったら名前からIPアドレスへ変換できず、ほとんどアプリケーションが動作不可能
ゆえにDNSに攻撃してノットれれば、いろいろな悪いことができる
インターネットにとってのDNS
・欠かすことのできない基盤サービス
・正しい情報を教えてくれることが前提になっている
DNSの自律分散モデル
・数万台のDNSサーバが連携することで、1つの名前空間を構築している
・中央集権 VS 分散
・DNSサーバ自体が自律して情報を持ち、役割を分散することによって今まで存在し続けてきた
DNSの動作を調べる
dig ns google.com
IPアドレスを問い合わせる
nslookup www.yahoo.co.jp
名前を問い合わせる
nslookup 133.11.114.194
DNSが嘘をついたら、手元のブラウザは騙される
ユーザ名、パスワードを盗める
他人のメールを盗み見れる
騙されたと気付きやすい
httpでは騙されたことを知ることは難しいが
httpsなら証明書のチェックで可能
DNSに嘘をつかせるには
・管理者による意図的な乗っ取り
・設定ミスによる事故
・攻撃者による攻撃
キャッシュ汚染、6万回送ればクエリが一致するやろ
サーバのっとり
Kaminsky Attack
DNSサーバ汚染事例
2008/08/20-Itmedia
大手ISPがDNSキャッシュ汚染被害
IDNフィッシング
国際化ドメイン名で文字種が増えることを利用した詐称
HTTP(web)
Webとは
・www = world wide web
・ハイパーテキストシステム
・元々はテキスト情報を有機的に結合するための仕組み
サーバ・クライアントモデル
・クライアント
手元のPC
ブラウザというソフトウェアを用いてwebを利用
・サーバ
ネットワークに接続された強めのPC
webサーバ用ソフトウェアがインストールされ、適切に設定されることでWebサーバとして動作
・禁煙はサーバがwebサーバとデータベースサーバの2層構造になっていることがある
プロトコル
HTTPという決まりに従ってサーバ・クライアント間でデータが交換される
HTTP
・GET:クライアントがサーバに対してデータを要求
・POST:クライアントからサーバにデータを送信
・HEAD:ページの情報のみを取得する
これらのコマンドをサーバ・クライアント間で送信し合うことで情報を表示している
HTTPでのやりとり
telnet www.nc.u-tokyo.ac.jp 80
HTTPはこれだけの簡単な仕組みである
URL(uniform resource locator)
HTTPはURLを使って、送り先などを設定している
・URL Scheme
・スキーム名:スキームごとの表現形式
・廃れた表現形式もある
アドレスという言葉に注意
・macアドレス
・IPアドレス
・電子メールアドレス
・URL
HTML(hyper text markup language)
・webページを書くための言語
・httpはサーバ・クライアント間のデータ交換手順の定義
・HTMLはwebページ記述の文法を定義
・どう表示するかはブラウザに任せている
悪意のウェブサイト
Webサイトなりすまし
・「フィッシング」と呼ばれる
・DNSでだます場合
・メールなどの本文中のURLをクリックさせる場合
・クリックした先には偽のWebサーバがあり、本物とそっくりのwebページが用意されている
・パスワード情報
・クレジットカード情報
フィッシングサイトはssl証明書で確認する
フィッシング対策研究の主流
・教育による解決
・注意喚起による解決
・検知による解決
検知技術は3通り
・ブラックリスト型のURLフィルタリング
・ホワイトリスト型のURLフィルタリング
・ヒューリスティクスによる検知
検知に使われる特徴
URL分析
・IPアドレスで構築されるドメイン名
・長さ
・ブランド名の有無
・記号の多さ
・多言語ドメイン
DNSの分析
・レジストらに登録されてからの帰還
・DNS TTLの短さ
テキストの分析
・自然言語解析
・その他のテキスト解析
イメージの分析
・画像比較アルゴリズム
ネットワーク基礎知識
アプリケーション層:利用されるアプリケーションの中で通信に関係する部分を定めている
プレゼンテーション層:アプリケーションが扱う情報を通信に適したデータ形式にしたり、データ形式に関する責任を持つ
セッション層:コネクションの確率や切断、転送するデータの切れ目の設定など、データ転送に関する管理
トランスポート層:宛先のアプリケーションにデータを確実に届ける役目
ネットワークそう:宛先までデータを届ける役割を持つ
データリンク層:イーサネットに接続された2つのノード間での通信を可能にする
0と1の数字の列を意味のある塊に分けて、相手に伝える
物理層:ビットの列を電圧の皇帝や光の点滅に変換したり逆変換したりする
ネットワークの構成要素
ネットワークインターフェース
リピーター
ブリッジ(レイヤー2スイッチ)
ルーター(レイヤー3スイッチ)
レイヤ5-7スイッチ
ゲートウェイ
データリンク
データリンク層がなければTCP/IPによる通信は成立しない
いさーネット、無線LAN、PPについて説明する
データリンク層のプロトコルは通信媒体で直接接続された機器
IPプロトコル
IP(internet Protocol)はパケットを目的のコンピュータまで届けるという、TCP/IPの中で最も重要な役割を持っている
このUPの働きによって地球の裏側にあるコンピュータと通信することが可能になる
IPに関する技術
Internet Protocolはパケットを目的のホストまで届けることはできますが、IPだけで通信gなできるわけではない
ホスト名やMACアドレスの解決をする機能やIPによるパケット配送に問題が起きた場合の補助をする機能などが必要
この章ではIPを補助したり拡張したりする仕組みとしてDNS,ARP,ICMP,DHCPといった機能について説明する
TCPとUDP
TCP/IPにはTCPとUDPという2つの代表的なトランスポートプロトコルがあり、TCPは信頼性のある通信を提供し、UDPは同報通信や細かい制御をアプリケーションに任せた方が良い通信に用いられる
つまり、必要となる通信の特性により、使用するトランスポートプロトコルを選択することになる
ポート番号
データリンクやIPにはアドレスがあった。MACアドレスは同一のデータリンクに接続されたコンピュータを識別するためのもので、IPアドレスはTCP/IPネットワーク上に接続されているホストやルーターを識別するためのもの。トランスポートプロトコルにもアドレスのようなものがあり、それがポート番号である。
つまり、同一のコンピュータ内で通信を行なっているプログラムを識別するときに利用されるプログラムのアドレスである。
ルーティングプロトコル
インターネットの世界はどんなに複雑なネットワーク構成になっっとしても適切な経路を通って目的のホストまでパケットが届けられなければならない
この経路を決定するのが経路制御です
この章では経路制御とルーティングプロトコルについて学ぶ
アプリケーションプロトコル
ネットワークを利用するアプリケーションにはWebブラウザ、電子メール、遠隔ログインなどがあるが、それぞれのアプリはアプリケーション特有の通信処理が必要である
アプリケーション特有の通信処理を行うのがアプリケーションプロトコルである
アプリケーションプロトコルとプロトコルは階層化されている
遠隔ログイン(TELNETとSSH)
TELNET
TCPのコネクションを1つ利用する
この通信路を通して相手のコンピュータにコマンドが文字列として送信され、相手のコンピュータで実行される
自分のキーボードとディスプレイが相手のコンピュータの内部のシェルに接続しているイメージ
telnetクライアントは通常は接続先ホストのTCP23番ポートに接続し、そこで待っているlelnetdとやりとりしますが、それ以外の番号のポートに接続してそこで待っているアプリケーションを実行することもできる
例えば、ftp ホスト名とtelnet ホスト名 21は同じである
FTP,SMTP,HTTP,POP3といったプロトコルのコマンドや応答は文字列なのでtelnetで接続したらキーボードから各プロトコルのコマンドを直接入力できる
SSH
SSHは暗号化された遠隔ログインシステムである
telnetではログイン時のパスワードが暗号化されずに送信されるため通信を傍聴されると不正侵入される危険性がありましたが、SSHを利用すると通信内容が暗号化されるため、盗聴されたとしてもパスワードや入力したコマンド、コマンドの処理結果がわからなくなる
さらにSSHには便利な機能がたくさんある
・より強固な認証機能が利用可能
・ファイルの転送ができる
・ポートフォワード機能が利用できる
ファイル転送(FTP)
FTPでは2つのTCPコネクションが利用される、1つは制御用でもう1つはデータの転送用である
FTPの制御用のコネクション上ではTCPポート番号31が利用される
データ転送用のTCPコネクションでは通常は20番ポートが利用される
電子メール
電子メールサービスを提供するためのプロトコルがSMTPである。
SMTPではメールを効率よく確実に相手に届けるためトランスポートプロトコルとしてTCPを利用している
電子メールは、送信者のコンピュータと受信者のコンピュータの間で直接接続するのではなく、電源を切らないサーバーを経由するようになった
そして受信者がメールサーバから電子メールを受け取るPOPというプロトコルが標準化された
電子メールが、メールアドレス、データ形式、転送プロトコルの3つから構成される
電子メールが普及するとともに変なURLを貼り付けたメールなどが急増し、SMTP認証といった認証を利用して送信元の詐称を防げるようになってきた
POP
SMTPはメールを配送するプロトコルで、POPはメールを受信するプロトコル
JavaScript
JavaScriptはHTMLに埋め込めるプログラミング言語でクライアントサイドアプリケーションとして多くの種類のWebブラウザ上で作動する
CGI
CGIはWebサーバーが外部プログラムを呼び出すサーバーサイドアプリケーションの仕組み
クッキー
Webアプリではユーザーの情報を識別するためにクッキーと呼ばれる仕組みが使われる
SNMP
ネットワークの管理は以前は管理者が記憶と噛んで行える仕事でしたが、ネットワークが発展し、TCP/IPのネットワーク管理ではSNMPというプロトコルが用いられるようになった
MIB
SNMPでやりとりされる情報がMIBである
MIBはツリー構造を持ったデータベースで項目に番号がつけられている
RMON
RMONはremote monitoring MIBの略称で、MIBがネットワーク機器のインターフェースを監視するパラメータ軍から構成されているのに対し、RMONは接続されるネットワークの回線を監視するパラメータ群から構成されている
これにより、ある特定のホストがどこの誰とどのようなプロトコルを使用して通信しているかという統計情報を知ることができる
マルチメディアを実現する技術
TCPによる通信は、フロー制御、ふくそう制御、再送制御のためアプリケーションが送信したパケットが速やかに宛先ホストのアプリケーションに届かない場合がある。
ビデオ会議ではパケットが少々脱落することはあっても遅延がない方が大切なのでUDPが利用される
インターネット電話などでは相手を探し、電話機が行うような相手の呼び出しを行い、どのような形式でデータのやり取りをするかを決める仕組み、呼制御が必要になる
H.323
IPネットワーク上で音声や映像をやり取りするためのプロトコル体系
利用者のデータ圧縮手順の違いなどを吸収するゲートウェイ、宣和長の管理やこ制御を司るゲートキーパー、複数の端末からの同時使用を可能にするマルチコンポーネントユニットから構成される
SIPやRTP
セキュリティ
ファイアウォール
ファイアウォールには、いくつもの種類や携帯がある
規定されたパケットのみを通過させるパケットフィルタリングタイプ、アプリケーションを介在させ不正な接続を遮断するアプリケーションゲートウェイなどがある
ファイアウォールの基本的な考え方は、危険に晒すのは特定のホストやルーターのみに限定するということ
ファイウォールでアクセス制限をかけ、ホストを数台に限定することで手間を省く
コネクション確立要求をするTCPパケットは内部から外部へ出ていくものだけを通過させる
IDS(侵入検知システム)
ファイアウォールでは基本的にポリシーと合致した通信であれば通過させる
このような通信や一旦内部などに侵入して不正アクセスを行う通信を見つけ、セキュリティの管理者などに通知するのがIDSといわれるもの
ファイアウォールなどで対応しきれない領域をカバーするのがIDSと考えて良い
アンチウイルス・パーソナルファイアウォール
アンチウイルスとパーソナルファイアウォールはIDS、ファイアウォールニツグセキュリティ対策となる。
これはユーザが利用するコンピュータやサーバなどで動作するソフトウェア
PKI(公開鍵基盤)
公開鍵基盤は通信の相手が本物かどうかを信頼できる第三者に証明してもらうための仕組み
証明書があれば、持ち主だけが複合できる形でデータを暗号化するための鍵も含む
webページへのアクセスや電子メールなどのインターネット上を流れるデータは暗号化されていない
このようなものの漏洩を防ぎ、機密性の高い情報の送受信を実現するため様々な暗号化技術が登場しており、OSI参照モデルの階層ごとに存在し、相互通信を保証している
複合化と複合に同じ鍵を使うのが共通鍵方式
これに対して、暗号化と複合化に一対の別々の鍵を使うのが公開鍵方式である
共通鍵暗号方式は安全な鍵の受け渡しが課題となる
共通鍵方式と比べて暗号化と複合に長い計算時間がかかるため長いメッセージを暗号化する場合には秘密鍵暗号方式と共通鍵暗号方式を組み合わせて利用する
共通鍵方式:AES,DES
公開鍵暗号方式:RSA,DH,楕円曲線暗号
認証技術
ある情報を持っていることによる認証
あるものを持っていることによる認証
ある特徴を持っていることによる認証
セキュリティのためのプロトコル
IPsecとVPN
以前は情報の漏洩を防ぐため、機密情報を転送する時にはインターネットなどの公共網を利用せず、専用回線によるネットワークを使用して物理的に盗聴ができないようにしてた
しかし、それではコストがかかるのでインターネットを利用した仮想的な指摘ネットワークが利用されるようになってきた。これがVPNという。
暗号化や認証の技術を利用してVPNは構成される
VPNを構築する時に最も一般的に利用されているのがIPsecである
IPsecではIPヘッダの後ろに暗号ヘッダや認証ヘッダをつける
そしてそのヘッダ以降のデータを暗号化して解読できないようにする
TLS/SSLとHTTPS
TLS/SSLという仕組みを使ってHTTP通信の暗号化を行なったのがHTTPSという
公開鍵が正しいかどうかの確認には認証局CAから発行された証明書を使う
Webブラウザに組み込まれていない認証局の証明の場合には画面に警告が表示される
この場合は利用者が認証局が正しいかどうか判断する
IEEE802.1X
これは認められた機器のみがネットワークにアクセスできるように認証する仕組みで、無線アクセスや構内LANでよく使われる
未確認の端末からアクセスポイントへ接続要求があると最初は全て無条件で接続確認用のVLANへ接続し、一時的なIPアドレスを与え、その後に認証させる
物理層にはビット列を電圧の高低や光の点滅などの物理信号に変換して実際に情報を送る役割がある.
NRZIは0が連続するとビットとビットの切れ目がわからなくなるので、4B/5B変換という方式で変換してから送信する
おうちネットワークを書いてみた
arpscan