IPSec

IPSecとは

IPSecとはIPパケットを暗号化して安全な通信を行うためのプロコトル。

IPv4,IPv6にも利用できるが、Iv6には標準でIPv6の機能が組み込まれている。

 

f:id:sandbox00:20210414094745p:plain

(引用元:https://www.kagoya.jp/howto/network/ipsec-vpn/)

 

IPSecの構成要素

以下のような要素でIPSecは構成されている。

(1)認証ヘッダー Authentication Header(AH)

・データの認証機能(ESPと異なる)

・パケットの送信元の認証(ESPと同様)

・暗号化機能はなし(ESPと異なる)

 

(2)セキュリティペイロードカプセル化 Encapsulation Security Payload(ESP)

・データの認証機能(AHとは異なる)

・パケットの送信元の認証(AHと同様)

・暗号化機能があり通信内容を秘匿できる(AHとは異なる)

 

(3)鍵交換プロトコル Internet Key Exchange(IKE)・「秘密鍵」(注)情報の交換を安全に行う

 

 

無線LANのアクセス制御方式

 無線LANではフレームを使用してデータを送信する。フレームにはデータフレームやACKフレームがあり、データはデータフレームに格納して送信する。データフレームには、フレームの制御情報とTCP/IPパケットが含まれる。一つのデータフレームに格納できるデータ長には上限があり、上限を超えるデータを送信したい時には、データを複数のデータフレームに分けて送信する。無線LANでは、複数の機器から送信されるフレームがなるべく衝突しないように工夫して、フレームを送信する。

 

  1. データフレームを送信しようとする機器は,送信前に他の機器がフレームを送信しているかどうかを調べる。
  2. 他の機器がフレームを送信していれば,そのフレームの送信が終了するまで待機する。
  3. 他の機器がフレームを送信していなければ,W1だけ待機する。
  4. W1の間に,他の機器がフレームの送信を開始しなければ,データフレームを送信し,受信側機器からのACKフレームの到着を待つ。
  5. W1の間に,他の機器がフレームの送信を開始したときは,(2)に戻る。
  6. データフレームを受信した機器は,データフレームを受信後,W2だけ待機した後,ACKフレームを送信する。
  • 複数のデータフレームを送信する必要があるときは,(1)~(6)を繰り返す。

f:id:sandbox00:20210413203606p:plain

基本情報技術者過去問題 平成29年春期 午後問4) 

 

 

 代表的なLANのアクセス制御方式には、有線LANで使用されているCSMA/CD方式と無線LANで採用されているCSMA/CA方式があります。

  CSMS/CD(Carrier Sense Multiple Access with Collision Detection)方式では、同じ伝送路を使用する他のノードが送信中でないことを確認するとすぐに送信を開始し、送信が完了する前にフレームの衝突を送信側が検出(Collision Detection)すると、一定の手順を経て再送します。

 しかし、無線LANでは衝突の検知が難しいため、CSMA/CA(Collison Avoidance :衝突回避)方式が使われます。CSMA/CA方式では、無線チャネル(伝送路)の使用状況を確認(Carrier Sense)し、伝送路が未使用であれば、ノードごとに異なる通信待機時間(乱数で決定)だけ待ってから送信を開始します。待機中に別のノードが送信を開始してしまうと、送信を開始したノード以外は待機状態に戻り、再び伝送路が未使用になると、残りの通信待機時間(送信できなかったノードは徐々に短くなる)がて供されます。

 このような仕組みで、フレームの衝突をできるだけ回避し、いつまでも送信できないノードが発生するのを防ぎます。なお、フレームが正しく送られたかどうかは、受信側からACK(Acknowledge: 肯定応答)フレームが返ってくるかどうかで判断します。ACKフレームが返ってこない場合は、送信に失敗したものとして再送信されます。

令和02-03年 基本情報技術者 試験によくでる問題集【午後】 p206

 

 

3台の機器A、B及びCがある場合について考える。

機器Bを機器Cから離すことによって機器Bと機器Cの間の物理層の通信速度が遅くなった場合、機器Aは機器Bによるフレーム送信が終了するまで待機する時間が長くなるため、機器Aから機器Cへのデータの送信速度は遅くなる。

図の(3)W1待機時間は他の機器が通信している場合に発生する。データフレームの個数は変化しないため、W1の待機回数は以前と変わらない。

また本問では「無線LAN物理層の通信速度は、危機感の距離や障害物の有無によって変化する」とあり、機器B~Cの物理層の通信速度の低下は、機器A~Cの物理層の通信速度への影響要因ではない。

また、最大フレーム長が固定値であるため、伝送速度が変化してもやり取りされるフレームの個数は変わらない。したがって送信データ量も変化しない。

暗号化技術

共通鍵暗号化方式

共通鍵暗号(AES、3-keys Triple DES)は暗号化と復号にペアの鍵を用いるもので、片方の鍵で暗号化したものは、ペアとなるもう一方の鍵でしか復号できない方式。

暗号化や復号を高速で行える反面、暗号化で使用した共通鍵が流出すると容易に復号され、暗号の意味をなさない。

このため共通鍵暗号方式では、送信側と受信側で共通鍵の共有をいかにして安全に行うかがポイントとなる。

公開鍵暗号方式

公開鍵暗号方式は、共通鍵の事前共有の難しさを解決するために提案された方式で、暗号化と復号に異なるペアを用いる。暗号化のための鍵だけを公開し(公開鍵)、復号のための鍵は秘密に保持しておく(秘密鍵)。送信者が公開鍵で暗号化したデータは受信者が秘密に保持している秘密鍵でしか復号できないため、通信経路の途中で盗聴されても安全。

ただし、この際の注意点は、公開鍵が確実に本人のものであるかどうかを確認すること。攻撃者が実在する組織や個人になりすまして、公開鍵を公開している可能性がある。

これを見抜くためには、公開鍵の正当性を保証している認証局の証明書、及びその証明書が信頼できる第三者認証機関(CA)により発行されたものであることを確認する。化したデータもAさんの公開鍵でしか復号できない。

 

行えること

・Aさんが秘密鍵で暗号化したデータを、他者はAさんの秘密鍵で復号

→このようなデータはAさんだけが作れるので、ディジタル署名でデータの改ざんの検知に用いられる。

 

・他者がAさんの公開鍵で暗号化したデータを、Aさんの秘密鍵で復号

→このようなデータはAさんだけが読めるので盗聴の防止に用いられる。

 

RSAの問題点と楕円曲線暗号(DSA)

鍵の一部を成す素数を本来はランダムに選ぶアルゴリズムだが、不備によって自身の公開鍵とは異なる値であっても他者の公開鍵と同じ素数を含んでしまうと、互いに他方の秘密鍵を計算で解読できてしまう。

RSA暗号はこのような脆弱性を抱えているため、楕円曲線暗号を用いることがある。

 

SSHとは

SSHは遠隔ログインのための通信プロトコル及びソフトウェアであり、通信データの盗聴対策や、通信相手の成りすましを防ぐ仕組みを備えている。SSHではサーバにログインしてデータをやり取りする通信(ログインセッション)に先立って、安全な通信経路の確立利用者認証を行う必要がある。(FE 平成29年秋)

 

遠隔ログインを実現する代表的なプロトコルにはTELNETSSHがある。

TELNETはログイン時のパスワードなども平文で送受信するため、盗聴や改ざんのリスクが指摘された。そんな中、SSH(Secure Shell)が登場した。

安全な通信経路の確立

SSHによる安全な経路の確立は次のようにして、データの受信側で送信元の確認と改ざん検知を行う。

具体的には、送信者がメッセージダイジェストを「自身の秘密鍵」で暗号化したものを本文につけて送信し、受信者側はディジタル署名を「送信者の公開鍵」で復号して照合する。 

クライアントがサーバ認証を行う場合、「サーバが偽物ではないか」を確認したい。

この場合、検証対象はサーバとなる。クライアントはあらかじめ入手して正当性を確認しておいたサーバの公開鍵を用いて、サーバによるセッション識別子へのディジタル署名が正しいかどうかを検証する。

 

  • (1):クライアントがサーバにアクセスする。
  • (2):サーバとクライアントが,SSHセッションで使用する暗号アルゴリズムについて合意する。
  • (3):サーバとクライアントが,通信データの暗号化に使用するセッション鍵と,他のSSHセッションと区別するためのセッション識別子について合意する。
  • (4):①クライアントがサーバ認証を行う。サーバ認証では,クライアントがあらかじめ入手して正当性を確認しておいたaを用い,サーバによるセッション識別子へのディジタル署名が正しいかどうかを検証する。
  • (5):合意した暗号アルゴリズムとセッション鍵を用いて,共通鍵暗号方式による通信データの暗号化を開始する。これ以降の通信は,全て暗号化される。

 

 

利用者認証の概要

クライアントからサーバへのログインでは、サーバは利用者認証を行う。SSHの利用者認証の方式にはディジタル署名を用いる公開鍵認証とパスワードを用いるパスワード認証がある。

公開鍵認証では、クライアントの公開鍵を事前にサーバに登録しておき、この登録されている公開鍵に対応すする秘密鍵をクライアントが持っていることをサーバが確認する。

この確認では、クライアントがセッション識別子などに対するディジタル署名をサーバに送信し、サーバがクライアントの公開鍵を用いてディジタル署名を検証する。