期末試験

試験の内容

試験の内容は次の通りです。

  1. IP アドレスの計算
  2. 講義で触れたプロトコル一つを詳しく説明すること

試験実施方法

準備

以下のソフトウェアを使用します。

  1. openssl(MacOSX や Linux などは標準で利用可能なはず)
    Windowsは バイナリ 配布サイトからWin64 OpenSSL v1.1.1g Lightの exe ファイルなどを ダウンロード、インストールする
  2. Microsoft Word

以下の事前準備をします。

  1. Windows なら OpenSSL Command Prompt を起動する。他のOSなら ターミナルを起動します
  2. openssl genrsa > private.pem で秘密鍵を生成しま す
  3. 作成した private.pem は大事なファイルですので、バックアップを取 り、失くさないようにして下さい
  4. 念の為、読み込み専用ファイルにするため、以下のコマンドを実行して も良い
    Windows
    attrib +R private.pem
    設定の確認は attrib でできる。
    UNIX系(MacOSXを含む)
    chmod a-w privvate.pem
    設定の確認は ls -l private.pem でできる。
  5. openssl rsa -pubout < private.pem > 学籍番号pub.pem で公開鍵を生成します
  6. 公開鍵を試験実施より先 に公開鍵提出甩アップローダーに提出しておきます。 試験前に提出してないと試験を受けられません。 指定したファイル名、形式でない公開鍵では、こちらは提出された答 案が合格であることを判定できません。余計な文字列を付加したり、 別のファイル形式(pem 形式)でない場合点数がつかない場合があります。

練習

練習用のpdfファイルを用意しておきます。 (test.pdfとしておきます)

電子署名の生成と検証

  1. openssl dgst -sign private.pem test.pdf > 学籍番号.sig
  2. 次のコマンドで公開鍵を使って正常に生成できたかを確認できる。
    openssl dgst -verify 学籍番号pub.pem -signature 学籍番号.sig test.pdf

タイムスタンプの取得のための準備

  1. https://www.freetsa.org/index_en.php にアクセス
  2. tsa.crt をダウンロード(実際にはtsa.cerがダウンロードされる)
  3. cacert.pem をダウンロード(実際にはcacert.cerがダウンロードされる)

タイムスタンプの取得

  1. https://www.freetsa.org/index_en.php にアクセス
  2. Online Signature で、stamp のファイルとして、 学籍番号.sig をアップ ロードする。
  3. Download TimeStampRequest file をクリックして、 学籍番号_sig.tsq を ダウンロードします。
  4. Download TimeStampResponse file をクリックして、 学籍番号_sig.tsr を ダウンロードします。

タイムスタンプの検証

  1. リクエストの内容は次のコマンドで確認できます。 openssl ts -query -in 学籍番号_sig.tsq -text
  2. タイムスタンプの内容は次のコマンドで確認できます。 openssl ts -reply -in 学籍番号_sig.tsr -text
  3. openssl ts -verify -in 学籍番号_sig.tsr -queryfile 学籍番号_sig.tsq -CAfile cacert.cer -untrusted tsa.cer openssl ts -verify -in 学籍番号_sig.tsr -queryfile 学籍番号_sig.tsq -CAfile cacert.pem -untrusted tsa.crt で正しいリクエストとタイムスタンプの対応のチェックができます。
  4. openssl ts -verify -data 学籍番号.sig -in 学籍番号_sig.tsr -CAfile cacert.cer -untrusted tsa.cer openssl ts -verify -data 学籍番号.sig -in 学籍番号_sig.tsr -CAfile cacert.pem -untrusted tsa.csr で署名したファイルへのタイムスタンプであることがチェックできます。

試験実施要領

  1. 7月22日23:59までに、公開鍵「学籍番号pub.pem」をBOX の公開鍵提出用アップローダーに アップロードして下さい。
  2. 7月23日 13:40 から 15:20 の授業時間内に実施します
  3. 試験問題は以下のとおりとします
    問題1 50点(試験開始後に発表)
    IPアドレスの計算問題
    問題2 50点(事前準備推奨)
    講義で取り上げたプロトコルを一つ選び、(1)選んだ理由(10点) と(2)要約(40点)を解答用紙の範囲内(全体で1ページ以内)で説明し なさい。 選んだ理由は他人と一致しないように工夫すること。
  4. 事前説明の後で、 試 験問題 解答用のファイルを公開します
  5. 解答ファイルを完成させ、「学籍番号.pdf」というファイル名の PDF とし て下さい
  6. 解答ファイルに対して、秘密鍵で電子署名をして下さい。 電子署名のファイル名を「学籍番号.sig」として下さい。
  7. 電子署名ファイルのタイムスタンプを 15:20 までに作成して下さい。 タイムスタンプファイルを「学籍番号_sig.tsr」とします。
  8. 7月23日23:59までに、これらの3つのファイルをBOXの試験用アップローダーに アップロードして下さい。
    1. 学籍番号.pdf
    2. 学籍番号.sig
    3. 学籍番号_sig.tsr

採点基準

  1. 公開鍵のファイル(pub.pem)が 7月22日までにアップロードされていること。 解答ファイル、電子署名、タイムスタンプの各ファイル(.pdf, .sig, .tsr) が 7月23日中にアップロードされていること。 なお、公開鍵の提出遅れについては、減点扱いとする。 7/23 0:00-13:39 までにアップロードした場合は -10点、 7/23 13:40-15:20 は -20 点の減点とする。 7/23 15:21 以降の提出は、試験を受けていないものとする。 .pdf, .sig, .tsr の各ファイルに関しては7/23中の提出とし、それ以降 は科目放棄とするが、ネットワークのトラブルを考慮する場合はある(個 人の都合は考慮しない)。
  2. 電子署名、タイムスタンプが正しくされていること。 電子署名が正常でない場合、または、7/23 15:20 (2020-07-07T06:20:00Z) までのタイムスタンプが押されてない答案は 0 点とする。 つまり、上記のチェックのうち、下記2つのチェックを採点者は行う
    1. openssl dgst -verify...
    2. openssl ts -verify -data...
  3. 問題 1 のIPアドレスの計算においては不要なサブネットマスクなどの情 報は無視する。 アドレスの値については 1 違っていても0点とし、部分点は与えない。
  4. 問題2については、記述量、内容の正確さ、読み易さで評価します。 但し、完全に同一な答案が複数提出された場合は抽選で一通のみ採点し、残り は0点とします。 技術的な内容を記載するので、要約の部分は他人と一致する可能性はあります。 そのため、選んだ理由が他人と一致しないように工夫して記述して下さい。

注意

  1. 公開鍵は 7月22日までにアップロードするものとし、それ以降の変更は認め ません。 特に、試験中に間違って上書きとかしないように
  2. 署名した後、元のファイルを変更すると、作成した電子署名は無効になるの で、署名とタイムスタンプをやり直す必要があります。
  3. 試験中の各ファイルのチェックは義務ではないが、チェックを通らないと不合格になる恐れがあるので、余裕がある場合はチェックすることを推奨します。

試験の内容

講義で触れたプロトコル

以下の中から一つを選んで、試験中に解答用紙一枚(A4 で 2/3 程度)に分かりや すく解説して下さい。 持ち込み不可ですので、あらかじめ解答を書く練習をしておいて下さい。

  1. IPv4
  2. IPv6
  3. RIP
  4. OSPF
  5. TCP
  6. Ethernet
  7. 無線LAN

IP アドレスの計算問題

範囲は IPv4 のみです。 次のような問題を出しますので計算方法などをよく覚えて下さい。

  1. IP v4 のクラス A のネットワークアドレスの個数は 個(但し、 0 と 127 は特別な用途)、 クラス B のネットワークアドレスの個数は 個、 クラス C のネットワークアドレスの個数は 個あります。
  2. 126.0.0.0 のネットワークはクラス です。
  3. 126.0.0.0 のネットワークを 16 bit のサブネットと 8bit のホスト番号に分割する時、サブネットマスクは になります。
  4. 126.0.0.0 のネットワークを 16 bit のサブネットと 8bit のホスト番号に分割する時、サブネッ ト番号 1 のネットワークアドレスは で、 ホストアドレスは から で、 ブロードキャストアドレスは になります。
  5. クラス A のプライベートアドレスは 個、 クラス B のプライベートアドレスは 個、 クラス C のプライベートアドレスは 個です。
  6. 192.168.1.1 と 192.168.2.1 は同じネットワーク内 。 一方、 172.16.1.1 と 172.16.2.1 は同じネットワーク内

坂本直志 <[email protected]>
東京電機大学工学部情報通信工学科