コラボレーション・エンジニアの考える日々

企業での情報共有とコミュニケーションについて、ITを中心に企業コラボレーションを考えていくブログです。

IDファイルにパスワードは入っていない

NotesのユーザーIDファイルの構造について調べる機会があったのでここにメモしておきます。NotesのユーザーIDファイルには以下の内容が入っています。


ユーザーの基本名、別名
永久ライセンス番号: この番号は、所有者が正当であることを示し、所有者が持っている Domino や Notes を実行するためのライセンスが、北米・カナダのみのライセンスかInternationalライセンスかを示します。
プライベートキー: プライベートキーは、パスワードのハッシュ値で暗号化されます。北米・カナダ用とInternational用の2つが格納されています。
Notes認証(複数): 北米・カナダ用とInternational用の2つと、組織階層毎に複数あります。Notes認証は次の情報と、これらを認証者のプライベートキーで暗号化したものとで構成されます。

  1. 所有者の名前、パブリックキー
  2. 認証者の名前、パブリックキー
  3. 認証の有効期限

パスワード変更履歴: 過去に使用したパスワードのハッシュ値が入っています。デフォルトでは最大50個です。パスワード変更時に、過去に使用したパスワードは使用できないようになっていますが、それはこの変更履歴を見ています。
IDパスワード復旧情報(オプション)
インターネット証明書(オプション): この証明書は、S/MIME メールメッセージの暗号化と署名に使われます。認証機関 (CA) によって発行され、ユーザーの ID を照合します。インターネット証明書に関連付けられたユーザーのプライベートキーは、この証明書といっしょに保存されます。
シークレット暗号キー(オプション) : ユーザーが作成する共通鍵です。文書やフィールドの暗号化に使用できます。シークレット暗号キーは、パスワードのハッシュ値で暗号化されます。



上記を見て、現在使用しているパスワードは入っていないことに気がついたと思います。現在のパスワードやハッシュ値はIDファイルには入っていません。このため、IDファイルが盗まれてバイナリ解析されたとしても大丈夫なのです。また、プライベートキーやシークレット暗号キーは、パスワードのハッシュ値で暗号化されているので、これらもまた安全です。


IDファイルにログインする時は、入力されたパスワードをハッシュしてプライベートキーをデコードし、ユーザーIDと一致していたらログイン可能というように判断しているのだと思います。


「IDファイルがバイナリ解析されても大丈夫?」と聞かれた時に、「いやぁ、大丈夫なように作っているはずですよぉ」と答えるよりも、ある程度理由をつけて説明できると、Notesエンジニアとしての信用がちょっと上がるかもしれませんね。