すべての記事

約10分で読めます

アクティブ・無効化・削除——各アイデンティティ状態が意味するもの

CardanoWall のアイデンティティを無効化または削除すると、アカウントでの使い方は変わりますが、すでに Cardano に公開されたレコードの暗号的な有効性は決して変わりません。

CardanoWall では、アカウント内の各アイデンティティにライフサイクル状態が割り当てられ、そのアイデンティティの使い方を制御します。アクティブはフル機能で使える状態です。無効化はアイデンティティが一覧に残り復号も続けられますが、そのアカウントでの新規の署名・公開・送信がブロックされる状態です。削除はそもそも状態ではなく、アイデンティティをアカウントから切り離し、暗号化された保管庫からそのエントリを取り除く操作です。保存しておいた Identity Seed(アイデンティティの種)を再インポートすれば、アクセスは復元されます。

これらのアカウントレベルの操作は、どれもブロックチェーンを書き換えません。すでに公開した証明は、公開したアイデンティティがどの状態にあっても、永遠に有効で検証可能なまま残ります。

そもそもなぜアイデンティティにライフサイクルがあるのか

暗号とアカウントは別々のレイヤーであり、永続的なのはそのうち一方だけだからです。

CardanoWall のアイデンティティは Label 309 標準の上に成り立っており、そこでのアイデンティティはただ一つのもの、すなわち 32 バイトの Identity Seed と、そこから導出される鍵を指します。この結びつきは不変です。1 つのシードは 1 つのアイデンティティであり、そのアイデンティティが存在する限り変わりません。「同じアイデンティティのまま鍵をローテーションする」という発想は存在しません。(この考え方が初めてなら、まずは アイデンティティはシードである から始めてください。)

しかし、ホスト型の製品は、暗号が答えない日常的なアカウントの問いにも答えなければなりません。

  • このアイデンティティを新規レコードに使えるようにすべきか。
  • 古いレコードのために一覧に表示し続けるべきか。
  • 届いた封印付きレコードを復号し続けられるようにすべきか。
  • このアカウントに紐づけたままにすべきか。
  • 古いアイデンティティに頼る前に、ユーザーへ警告すべきか。

ライフサイクル状態は、シードに一切触れずにこうした製品上の問いに答えます。これは、決して動かない暗号的な事実の上に重ねられた、アカウント側の帳簿付けにすぎません。

アクティブなアイデンティティは何ができるのか

アクティブは通常の利用状態です。アクティブなアイデンティティは次のことができます。

  • 新規レコードに署名する
  • 証明を公開する
  • 封印付きレコードを送信する
  • 自分宛ての封印付きレコードを復号する
  • アイデンティティ切り替えメニューに表示される
  • 受信トレイの状態を同期する
  • コンポーザーで選択される

ほとんどのアイデンティティは、その生涯の大半をアクティブのまま過ごします。残り 2 つの状態は、特定のアイデンティティについて意図的に下す選択です。

アイデンティティを無効化すると何が起こるのか

無効化が意味するのは「このアカウントでは、このアイデンティティを新規の作成に使わない」ということです。

無効化されたアイデンティティはアカウントに残り、読み取りアクセスを保ちます。封印付きレコードは引き続き復号できます。無効化したに届くレコードも含めてです。できなくなるのは、再びアクティブにするまで、そのアカウントから署名・公開・送信を行うことです。これはグレーアウトされたボタンによってだけでなく、サーバー側で強制されます。公開パスは、何かを行う前にアイデンティティの状態を確認します。

無効化が適切なのは、次のような場面です。

  • チームが代替のアイデンティティへ切り替えている
  • 鍵が古い可能性はあるが、漏えいが確認されたわけではない
  • アイデンティティをしばらく読み取り専用にしたい
  • ワークフローが一時停止している
  • 共有アイデンティティについて、ある特定のアカウントからの公開だけを止めたい

無効化は完全に元に戻せます。再びアクティブにすれば、同じスイッチが戻り、フル機能が復元されます。

なぜ無効化されたアイデンティティでも復号できるのか

無効化は、ご自分のアカウントは知っていて送信者は知らない事柄だからです。

この状態は CardanoWall のレコード内に存在し、ブロックチェーン上にも Label 309 のワイヤーフォーマット上にも一切現れません。すでに受信アドレスを持っている送信者は、それに対して封印付きレコードを暗号化でき、Cardano は形式さえ整っていればそのレコードを受け入れます。送信者に送信をやめさせるオンチェーンのシグナルは存在しません。

ですから、アカウントがまだシードを保持していれば、届いたものを開封できます。復号をブロックすれば受信者を罰することになり、本当に重要な届いた証拠を失う恐れがある一方で、送信者を止める効果は何もありません。そのため無効化は、役に立つところに線を引きます。新規の作成はブロックし、読み取りアクセスはそのまま保つのです。

アイデンティティを削除すると何が起こるのか

削除は、アイデンティティをこのアカウントから取り除くだけで、それ以上のことはしません。

アイデンティティを削除すると、2 つのことが同時に起こります。アカウントとアイデンティティを結ぶリンクが取り除かれ、アカウントの暗号化された保管庫からそのアイデンティティのシードエントリが削除されて、保管庫は残りのアイデンティティに対して再暗号化されます。先に取り除かれるのはリンクのほうです。これにより、保管庫の書き換えに再試行が必要になった場合でも、一覧への表示と公開ゲートはただちに切り替わります。背後にリンクのない保管庫エントリは無効です。

その後、このアカウントはもはやそのアイデンティティをアンロックすることも使うこともできません。ただし、保存しておいた Identity Seed を再インポートした場合は別です。

削除があえて触れないことは、次のとおりです。

  • 同じアイデンティティに対する他のアカウントのリンクには触れません。そのアイデンティティを持つ各アカウントは、それぞれ独立した自分のコピーを保つので、同僚と共有しているアイデンティティは相手のアカウントで動き続けます。
  • ブロックチェーンからは何も削除しません。
  • そのアイデンティティがすでに公開したレコードは削除しません。

削除とは、そのアイデンティティに対するこのアカウントの管理の終わりです。「このアイデンティティをどこからも消し去る」ボタンは存在せず、存在しようがありません。シードを持つすべての人がそれに対するフルな権限を保ち、Cardano 上の署名付き証明は永続的だからです。

削除は取り消せるのか

はい。ただし、シードを保存していた場合に限ります。

Identity Seed そのものがアイデンティティなので、同じシードを再インポートすれば、まったく同じ公開鍵と秘密鍵が再構成されます。そのうえでアカウントは、そのアイデンティティに再びリンクできます。CardanoWall はこのステップで、誰にでも見える公開鍵を知っているだけでは足りず、シードを実際に保有していることの証明を求めます(シードから導出した鍵で一度限りのチャレンジに署名することによって)。その証明が通ると、リンクは復元されます。

シードを保存していなかった場合、削除によって、そのアカウントから封印されたコンテンツが永久に読めなくなる可能性があります。だからこそ削除の警告は率直であるべきです。シードがご自分の管理下のどこかにバックアップされている場合、あるいはこのアカウントから今後アクセスを失っても本当に構わない場合にのみ削除してください。(この点は なぜ Identity Seed が依然として重要なのか でさらに掘り下げています。)

ライフサイクル状態は、すでに公開した証明に影響するのか

いいえ。これこそが要点です。

公開された証明は、公開チェーンのデータだけで検証できます。レコードがあるアイデンティティによって署名されていれば、その署名はバイト列に関する数学的な事実であり、いかなる CardanoWall のアカウント状態もそれを消すことはできません。検証ツールは、トランザクションメタデータから署名者の公開鍵を直接解決し、公開された情報と照合します。CardanoWall のサーバーは一切参照されないので、アカウント状態も参照されようがありません。

これは存在証明(Proof of Existence)にとって不可欠です。約束しているのは、公開されたレコードがサービスの状態・アカウントの状態、さらにはベンダー自身さえも超えて生き残るということです。検証にあたって、CardanoWall のサーバー・ドメイン・存続を信頼する必要はありません。お客様の画面には、あるアイデンティティがご自分のアカウントで無効化または削除されたと表示されるかもしれませんが、検証ツールはどちらの場合もオンチェーンのレコードをまったく同じように扱います。(証明には依然として理解しておくべき限界があります。証明が証明しないこと を参照してください。)

シードが漏えいしたらどうするか

新しいアイデンティティを作成してください。無効化だけに頼ってはいけません。

無効化はサービス層の制御であって、暗号的な失効ではありません。誰かがシードを持っていれば、その人はアカウントの外でも、CardanoWall の外でも、そのアイデンティティを使えます。シードは、サービスを一切介さずに、準拠したあらゆるツールで機能します。アカウント内で状態を切り替えても、それに対しては何もできません。

シード漏えいが疑われる場合は、次のようにしてください。

  • 新しいアイデンティティを作成し、新しいシードを保存する
  • アカウント内で古いアイデンティティを無効化する
  • 古い受信アドレスを公の場で告知するのをやめる
  • 新しい公開鍵を、人々が連絡を取るために信頼しているチャネルを通じて再公開する
  • 重要な場合は、影響を受けたレコードを置き換える新しいレコードを、新しいアイデンティティの署名付きで公開する

古いアイデンティティを「漏えいしていない状態」に戻すことはできません。それに対する制御を与えてきたのはシードだけであり、漏れた秘密は漏れたまま残ります。これは パスキーを削除しても遡及はしない のと同じ理由です。サービス層の操作は今後のアクセスを断つことはできても、すでに起きた露出をさかのぼって取り消すことはできません。

チームはこれらの状態をどう使うべきか

ライフサイクル状態は、シード管理の代わりではなく、ポリシーとして扱ってください。

チームは、あるアイデンティティが次のいずれであるべきかを、あらかじめ決めておくべきです。

  • 日々の作業のためにアクティブ
  • プロジェクト終了後に無効化
  • 漏えい調査中は無効化
  • メンバーの離脱後にそのアカウントから削除
  • シードが露出した後に新しいアイデンティティへ置き換え

これらの状態にどうしてもできないのは、シードの知識を失効させることです。離脱したメンバーが依然としてその 32 バイトを保持していれば、どのアカウントが何をしようと、共有アイデンティティに対するフルな権限を保ち続けます。そのメンバーを排除するということは、古いものを無効化することではなく、アイデンティティを置き換えることを意味します。残る人々とだけ共有する新しいシードを用意するのです。チームでアイデンティティを共有する では、複数人で 1 つのアイデンティティを運用することのトレードオフを扱っています。

最も安全なデフォルトは何か

削除する前に無効化してください。

迷ったときは、無効化のほうが穏やかな選択です。アイデンティティは表示されたまま復号も続けられますが、新規の利用はブロックされ、いつでも再びアクティブにできます。何も失われません。

削除するのは、次のうち少なくとも 1 つが当てはまると確信できるときだけにしてください。

  • シードが CardanoWall の外のどこかにバックアップされている
  • そのアイデンティティが本当にもう必要ない
  • このアカウントは、単純にもうそのアイデンティティへアクセスすべきでない

シードのバックアップなしに削除することは、自分自身の封印されたコンテンツから締め出される最もよくある原因です。

まとめ

アクティブは通常の利用を意味します。無効化はこのアカウントで読み取り専用になることを意味します。復号は続けられますが、署名・公開・送信はできません。削除はこのアカウントから切り離され、保管庫から取り除かれることを意味し、復元はシードの再インポートによってのみ可能です。

これらの状態は、CardanoWall の内側でアイデンティティを管理するのに役立ちます。ただし、すでに Cardano に書き込まれた暗号的な事実は変えません。Identity Seed は最後の回復手段であり続けます。だからこそ、何かを削除する前に必ず保存しておいてください。

関連記事

cardanowall-guidesidentitylifecycle