分散型アイデンティティ(DID - Decentralized Identifier)

https://qiita.com/kazuhideYS/items/2f533bf14e8587c7c131
メールアドレスのように世界で一意なID。W3Cで定義されている。
ただしメールのようにどこかのサービス事業者が預かって一元管理する、というようなことはしない。
"did:"固定のスキーム、IDの管理手法を示したメソッド("web:"など)、そのメソッドで管理されるID……の3パートで構成されるURI文字列。
例「did:web:example.com#key-0」。
WebのURIDNSによって何らかのリソースに名前解決されるように、DIDは、DID Documentという構造化ドキュメントに名前解決される。DID DocumentにはDID自体・認証用公開鍵・DID主体との対話手段(=サービスエンドポイント)といった情報が記述されており、そのDID主体とどのようにコミュニケーションをすればよいかという説明書になっている。
似た言葉として、自己主権型アイデンティティ(SSI)がある。

クリフハンガー

https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AA%E3%83%95%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%BC_(%E3%83%97%E3%83%AD%E3%83%83%E3%83%88)
映画などで、絶体絶命のシーンや新展開をみせる場面などを迎えた段階で結末を示さないまま物語を終了とする手法のこと。
またアメリカドラマで、シーズン最終回を中途半端な終わりにするような手法も指す。(次シーズン1話とあわせて前後編になることが多い)

PPAPの問題と改善のベストプラクティス

問題

暗号化zipを添付したメールを送り、そのパスワードを別のメールで送る手法の問題点。
・暗号化zipを同じ経路で送っているので盗聴されるとパスワードも盗聴される。
マルウェアの危険性や、操作に手間がかかることについては、改善した手段でもあまり変わらない。
※暗号化zipを総当たり攻撃で解析される危険もあるが、そもそもzipを入手されるときパスワードも入手される可能性が大きい。

ベストプラクティス

改善するベストな方法は「添付をWebストレージに配置して送付先ユーザに読取権限を設定し、その公開URLを同じメールで送る」こと。
現実的にはアカウントをを持たない人がほぼ居ないMicrosoftOneDriveを利用するのがよいと思う。
以下のパターンを考えてみて、この手法がよいと判断した。

                          別メールでパスワード通知    電話やチャットでパスワード通知      Webストレージ権限設定
------------------------- --------------------------- ----------------------------------- ----------------------
メール添付                × PPAP                     △ ※1                              × 不可能
ストレージ配置            × PPAPと変わらない         △ ※1                              ○ ※2

※1 電話やチャットで通知するのは自動化困難。将来伝えたパスワードを忘れると、添付ファイルを参照できなくなる。
※2 相手がWebストレージサービスのアカウントを持っている必要あり。※1よりは危険性が少ないがストレージ側のファイルを消すと参照できなくなる。

gitでテスト環境用設定を別ブランチにするような運用はしないほうがいい

gitでテスト環境を変更だけした別ブランチを作って、お互いにマージし合うような運用はしてはいけない。
お互いにマージするブランチは、1ブランチを2箇所で更新しているようなものなのでどうしても設定ファイルがどこかのタイミングで意図しない側に書き換わってしまう。
ただし片方に一方的に変更をマージするだけなら問題ないと思う。



以下のようにすれば設定ファイルの修正だけは上書きせずtestブランチからmasterブランチに変更をマージできる。
前述のようにお互いのマージ(masterブランチからtestブランチのマージを混ぜる)と、testブランチで一度test用に変更した設定ファイルが本番環境用に差し戻されてしまうので問題があるが……。

      main1         main2             main3
------*-------------M-----------------M
      |             |                 |
      |    +--------+          +------+
      |    |                   |
      +----*-------------------*
           test1               test2

main1: 本番環境用設定ファイル変更
test1: テスト環境用設定ファイルに変更
main2: mainブランチにtestブランチをマージ。ただし、本番環境用設定ファイルの内容を維持するよう修正してコミットする。
test2: テスト環境で行ったなにかの設定
main3: mainブランチにtestブランチをマージ。test2の修正がマージされるが、test1の修正はマージ済みなので設定ファイルはテスト環境用に書き換わらない。