署名鍵の管理

MDS ファイルの署名と検証に使用する鍵の管理方法を説明します。

概要

MIDAS で保存した MDS ファイル には電子署名が付与されます。 電子署名により、受け取った人はその MDS ファイルを誰が作成したかを確認できます。出どころの確かな分析かどうかを判断する手がかりになります。

MDS ファイルを信頼するかどうかは署名者の信頼レベルによって変わります。 信頼レベルは3種類あります。

信頼レベル説明
OfficialMIDAS の運営者の鍵による署名
Trusted自分の鍵(自己署名)または登録済みの公開鍵による署名
Unknown未登録の署名者による署名

自己署名のファイルが Trusted と表示されるのは、署名した本人の端末で開いた場合に限ります。受け取った相手の端末では、相手があなたの公開鍵を登録していなければ Unknown と表示されます。信頼レベルは既定ではファイルを開けるかどうかには影響せず、Unknown のファイルも警告なしで開きます。詳しくは 未知の署名者の MDS を開く を参照してください。

鍵ペア(秘密鍵と公開鍵の組)はブラウザの IndexedDB に保存されます。ブラウザのサイトデータを消去すると鍵ペアも削除されます。鍵を失うと同じ鍵で署名を続けられなくなるため、早めに バックアップ を作成してください。署名鍵の管理は Settings ダイアログの Signing Keys タブで行います。メニューバーから Help > Settings... を選択し、Signing Keys タブをクリックしてください。

Signing Keys タブの画面

電子署名の仕組み

MDS ファイルの電子署名は公開鍵暗号に基づいています。署名者は秘密鍵でファイルに署名し、受け取り側は署名者の公開鍵で検証します。ファイルの内容が署名後に変更されると検証に失敗するため、改竄や破損を検出できます。

電子署名が確認できるのは、ファイルを誰が作成したかです。署名が有効でも、その作成者を信頼してよいかや、ファイルの内容そのものが安全であることまでは保証しません。

秘密鍵は自分の端末だけに保管し、他人に渡さないでください。相手に渡すのは Export Public Key で出力される公開鍵ファイルだけです。鍵ペアのバックアップファイルには秘密鍵が含まれるため、共有相手に渡してはいけません。

署名はファイルの内容を暗号化しません。MDS ファイルを入手した人は、署名の有無にかかわらずファイルの内容を読めます。ファイルの機密性が必要な場合は、OS のディスク暗号化や別途の暗号化手段で保護してください。

署名に含まれる署名者名は自己申告です。本人の鍵かどうかは名前ではなく フィンガープリントの照合 で確認します。

MIDAS には鍵の集中管理サーバーがありません。信頼レベルは、受け取り側が署名者の公開鍵を登録しているかどうかで決まります。署名者が自分の端末で鍵を削除・再生成しても、受け取り側の登録状況や既存の MDS ファイルの検証結果には影響しません。新しい鍵を使ってもらうには、改めて公開鍵を配布してください。

フィンガープリントの照合

フィンガープリントは公開鍵から計算される 32 桁の16進数で、公開鍵を一意に識別します。登録しようとしている公開鍵が確かに相手本人のものかを、フィンガープリントの照合で確認できます。

照合の手順:

  1. 送り手が Help > Settings... を開き Signing Keys タブの My Signing Key セクションでフィンガープリントを確認し、本人のサイトやメールの署名欄など、公開鍵ファイルとは別の場所に掲示する
  2. 受け取り側が Register Trusted Key ダイアログに表示されるフィンガープリントと、掲示されたフィンガープリントを照合する

両者が一致すれば、登録しようとしている公開鍵が確かに本人のものだと確認できます。

署名検証の失敗

ファイルの内容が署名後に変更されると、署名との整合性が崩れ、検証に失敗します。メール添付やクラウドストレージでの転送中にファイルが破損した場合も同様です。検証に失敗した MDS ファイルは開けません。送り手にファイルの再送を依頼してください。

検証の失敗は、署名者が未登録であること(Unknown)とは異なります。Unknown は署名自体は正しく、ファイルは開けます。検証の失敗は署名が暗号的に無効、またはファイルが破損している場合で、ファイルを開けません。

自分の鍵ペアを管理する

新しい鍵を生成する

初めて MDS ファイルを保存またはエクスポートする際、鍵ペアが自動的に生成されます。署名者名の初期値は「Anonymous」です。Anonymous のままだと受け取り側で作成者を区別できないため、早めに 署名者名を変更 してください。手動で生成する場合は、Signing Keys タブで Generate New Key ボタンをクリックします。鍵ペアが既に存在する場合、このボタンは無効になります。新しい鍵を生成するには、先に既存の鍵を削除してください。鍵を生成したら、早めにバックアップを作成してください。

ダイアログで署名者名を入力します。この名前は署名に含まれ、他のユーザーがファイルを開いたときに表示されます。

公開鍵をエクスポートする

他のユーザーに公開鍵を共有するには、Export Public Key ボタンをクリックします。JSON 形式のファイルがダウンロードされます。

このファイルを MDS ファイルを共有したい人に渡すことで、共有相手が MDS ファイルを開く際に、その MDS ファイルの作者が確かにあなたであると検証できるようになります。

公開鍵ファイル自体は秘密ではないため、メール添付や社内のファイルサーバーで渡して構いません。受け取り側が本人の鍵だと確認できるよう、フィンガープリントを本人のサイトやメールの署名欄に掲示しておくとよいでしょう。

鍵ペアをバックアップする

鍵ペアを別のブラウザやデバイスに移行するには、バックアップを作成します。

  1. Backup Key Pair ボタンをクリック
  2. パスワードを入力(復元時に必要)
  3. パスワードを再入力して確認
  4. Export ボタンをクリック

バックアップファイルはパスワードで暗号化されます。パスワードを忘れると復元できなくなるため、安全な場所に保管してください。暗号化方式の詳細は プライバシーとセキュリティ を参照してください。

バックアップから復元する

バックアップから鍵ペアを復元するには、Import Key Pair ボタンをクリックします。これは他者の公開鍵を登録する Import Public Key とは別のボタンです。

  1. バックアップファイル(.json)を選択
  2. バックアップ時に設定したパスワードを入力
  3. Import ボタンをクリック

既存の鍵ペアがある場合、確認なしで上書きされます。上書きすると元の鍵は失われ、その鍵で署名した既存の MDS ファイルは以後 Trusted として扱われなくなります。インポート前に現在の鍵を バックアップ してください。

署名者名を変更する

My Signing Key セクションで名前の横にある Edit ボタンをクリックすると、署名者名を変更できます。変更は以降の保存・エクスポートに反映されます。エクスポート済みの MDS ファイルに含まれる署名者名は変わりません。

鍵ペアを削除する

Delete Key ボタンをクリックすると、鍵ペアを削除できます。事前に バックアップ を取っていない場合、削除した鍵は復元できません。削除後に新しい鍵を生成すると、以前とは異なるフィンガープリントになります。新しい鍵で署名したファイルを相手に Trusted として扱ってもらうには、改めて新しい公開鍵を配布してください。

他者の公開鍵を登録する

他のユーザーから受け取った公開鍵を登録すると、そのユーザーの署名を信頼済み(Trusted)として扱えます。

公開鍵をインポートする

  1. Trusted Keys セクションで Import Public Key ボタンをクリック
  2. 公開鍵ファイル(.json)を選択
  3. フィンガープリントを確認
  4. 識別用の名前を入力
  5. Register ボタンをクリック

Register Trusted Key ダイアログ

フィンガープリントを照合して公開鍵の真正性を確認してください。手順はフィンガープリントの照合で説明しています。

登録した鍵の名前を編集する

Registered 鍵の一覧で鍵をクリックすると詳細が表示されます。Edit ボタンをクリックして名前を変更できます。

登録した鍵を削除する

Registered 鍵の一覧で Remove ボタンをクリックすると、登録を解除できます。解除後、その鍵による署名は Unknown として扱われます。

公式鍵について

Trusted Keys セクションの Official には、MIDAS の運営者の鍵が表示されます。公式鍵による署名は常に信頼済みとして扱われます。公式鍵は MIDAS アプリ本体に組み込まれており、ユーザーの登録操作を必要としません。

公式鍵は編集・削除できません。

未知の署名者の MDS を開く

MIDAS は既定では unknown 署名の MDS ファイルを警告ダイアログなしで開きます。これは、unknown 署名ファイルから外部サーバーに到達する経路を、信頼レベルによらず読み込み時点で塞いでいるためです。詳細は unknown 署名ファイルの扱い を参照してください。

現在開いているプロジェクトの信頼レベルはメニューバー右端の署名バッジで確認できます。バッジをクリックするとフィンガープリント全体が表示され、その場で信頼済みとして登録することもできます。署名バッジの詳細は 署名バッジと信頼レベル を参照してください。

推奨: 共同研究者から MDS ファイルを受け取る前に、相手から公開鍵を送ってもらい、信頼済みとして登録しておくことをお勧めします。そうすれば、その鍵で署名されたファイルは以降 Trusted として扱われます。

unknown 署名で確認ダイアログを出す

信頼できない相手から MDS を頻繁に受け取るなど、毎回明示的に確認したい場合は、Help > Settings... を開き Security タブで Require confirmation for unknown signers を有効にしてください。この設定を ON にすると、unknown 署名の MDS を開くたびに確認ダイアログが表示されます。

ダイアログには自己申告の署名者名とフィンガープリントが表示され、以下 3 つの選択肢があります。

  • Cancel: ファイルを開かずにダイアログを閉じる
  • Trust this signer and open: 署名者名を入力して鍵を信頼済みに登録し、そのままファイルを開く
  • Open Anyway: 今回だけ、鍵を登録せずに開く

注意: 署名者の名前は自己申告です。本人の鍵かどうかは、相手が公開しているフィンガープリントと照合して確認します。初めて MDS ファイルを共有してもらうときは、公開鍵も一緒にもらっておくのがお勧めです。

See also