2014/07/02

リモートWebアクセス用RDPファイルをrdpsignコマンドで署名する~Windows Server 2012 R2 Essentials

以前に「Windows Server 2012 R2 Essentials リモートWebアクセスからサーバへの接続方法は2種類あります」でご紹介したRDPファイル(xxx.rdp)の中身はテキストで書かれたファイルです。
今回は、RDPファイルが破損した場合や特殊用途のためシステム管理者が作成する場合を想定し、Windows Server 2012 R2 Essentials のリモートWebアクセス用RDPファイルを署名する方法をメモ。
ローカル ネットワーク内で使うRDPファイルは、署名が不要です。

署名されたRDPファイルを改ざんするとこうなる

通常使うDefault.rdp ファイル(ドキュメント フォルダ配下の隠しファイル)と異なり、リモートWebアクセス用RDPファイルはテキストの最後に署名部(signature)があり、正規のRDPファイルである事を証明してくれます。
試しに、署名済みRDPファイルをテキスト エディタで開き、パラメータの一部を書き換え実行してみました。
「悪意ある改ざん」を行うと、予想通りのエラーが表示されます。
このRDP ファイルは破損しています。
リモート接続を開始できません。
2014-07-01_132821

RDPファイルを署名する方法

先に述べたとおり、リモートWebアクセス用RDPファイルは[Rdpsign]コマンドを利用しファイルを署名します。
  1. Windows Server 2012 R2 Essentialsにリモート サインイン
  2. RDPファイルを作成
  3. [コンピューター証明書の管理](certlm.msc)を起動
  4. [個人]→[証明書]を選択
    2014-07-01_105647
  5. [xxx.remotewebaccess.com]のプロパティを開く
    2014-07-01_105647
  6. SHA1 ハッシュ拇印(Thumbprint)をコピー
    ※半角スペースは削除する
    2014-07-01_105647
  7. Rdpsign コマンドを実行し、RDPファイルを署名

Rdpsign コマンドのサンプルとオプション

Rdpsign コマンドの使い方は
rdpsign.exe /sha1 <hash> [/q | /v |] [/l] <file_name.rdp>
です。
サンプルは
rdpsign.exe /sha1 0123456789ABCDEF wse2012r2_notepad.rdp
となります。
※赤文字がSHA1 ハッシュ、青文字が署名するRDPファイル名です。
オプションは4個あります。
  • /sha1 <HASH>
    署名証明書の SHA1 ハッシュを指定します。
  • /q
    Quiet モード: 成功時には出力なし、失敗時には最小限の出力を返します。
  • /v
    Verboseモード: 警告、メッセージ、状態をすべて表示します。
  • /l (エル)
    署名をテストし、実際に入力内容を置換することなく、結果を出力します。
    入力ファイルが stdin に存在する場合は無視します。
参考にしたサイト
リモートWebアクセスとは?
スポンサーリンク

スポンサーリンク