NIP17ってどれくらいNIP04に比べてセキュアなの?
20261030085327
zaoriku⚡️
Research Engineer(NLP & Distributed AI) 赫奕たる異端 リアクションないとフォローに気が付かないですorz Nostr DAUクイズ当たり過ぎて出禁になりましたw 解禁? (殿堂入りと言うらしい) メモ: INFJ-T, koiキャラ: sffhf0jjzzfr Here's the name I came up with: "Kuchiyose". https://kuchiyose.vercel.app/
1 min read
背景
coracle(NIP17) からdamus(NIP04)に送れないw などいろいろトラブルもあったので^^;
ぺにょはNIP04で送れる しかもNIP04でないと送れないケースは指摘が来る
https://penyotter.pages.dev/#/
以下、AI対話メモ 正しくないかもだけどそこは自分で調べてね
NIP17ってどれくらいNIP04に比べてセキュアなの?
NIP-17(NIP-44エンベロープ+NIP-59ギフトラップ)は、従来の NIP-04(古のDM方式)と比べて圧倒的にセキュア になっています。具体的に何がどう違うのか、大きく3つのポイントにまとめました。
1. メタデータの秘匿性(誰と誰がやり取りしているか)
NIP-04:
イベントの pubkey(送信者)とタグの p(受信者)が丸見えでした。そのため、リレーや第三者は「誰と誰がいつメッセージのやり取りをしているか」を完全に把握できてしまいました。
NIP-17:
NIP-59の「ギフトラップ(Gift-wrap、kind: 1059)」という仕組みを使っています。メッセージ本体を何重にもランダムな一時鍵で包み込むため、リレーから見えるのは「誰が送ったか分からないダミーの送信元(ランダムな公開鍵)」と「どこに配送するか」だけになります。誰と誰が会話しているかのメタデータが強力に隠されます。
2. 暗号アルゴリズムの安全性
NIP-04:
古い暗号方式(AES-CBC + secp256k1の共有鍵)を使っており、パディングオラクル攻撃などの脆弱性が指摘されていました。
NIP-17:
現在推奨されている堅牢な暗号規格である NIP-44(ChaCha20-Poly1305 等ベース) を標準採用しています。暗号強度そのものがモダンで安全になっています。
下記は要調査 3. フォワードセークラシー(将来的な鍵漏洩への耐性)の考え方
NIP-04:
固定の秘密鍵から算出される共有鍵をずっと使い回すため、万が一長期的な秘密鍵が将来漏洩した場合、過去のDMがすべて復号されてしまいます。
NIP-17:
メッセージごとにランダムな使い捨ての一時鍵(Ephemeral Key)を生成して暗号化するため、仮にメインの秘密鍵や特定のリレー上のデータがどうこうなっても、構造的にプライバシーが守られやすい設計になっています。(追記:デフォにはないっぽい)
この文には意見が入ってます(下方コメント参考)
どうかなってもな方は一時鍵のほうかも
追記: Forward-secrecyはデフォではないらしい
コメントに補足あり
まとめ NIP-17は、「メッセージの中身が見られない」のはもちろんのこと、「誰と誰が繋がっているか(メタデータ)」すらも隠すように作られているため、NIP-04とは比較にならないほどプライバシーとセキュリティが向上しています。今のNostrクライアント(Coracleなど)でDMやプライベートメッセージを使うなら、実質一択と言えるほど安全な方式です。
NIP04と17の違い(表)
NIP-04(従来のDM)と、NIP-17(NIP-44+NIP-59のモダンなDM)の違い(修正版)

ざっくり言うと、NIP-04は「中身は見られないが、誰と誰が話しているかが外から丸見え」だったのに対し、NIP-17は「メッセージの中身はもちろん、誰と誰がやり取りしているか(メタデータ)すらもリレーから隠す」という、非常にプライバシーとセキュリティに配慮した設計になっています。
NIP-04: 「暗号化されているが、誰と誰が話しているかは見える昔のDM」 NIP-17: 「内容だけでなく通信相手の情報も隠す、現代的なプライベートメッセージ」
NIP-04
Alice ──(暗号DM)──► Bob
↑ ↑
リレーから見える
NIP-17
Alice ─► Gift Wrap ─► Relay ─► Bob
↑
一時鍵で包装
送信者情報も隠蔽
Nostr界隈では現在、「DM = NIP-17」 へ移行する流れになっており、新規実装ではNIP-04はレガシー扱いです。
- NIP17は、送信側が削除できない問題があるとDonさんからコメント補足あり
- 表の画像が一部切れてたので更新
- Forward-secrecyはデフォではない。koheiさんから補足あり: https://git.iris.to/#/npub1xdhnr9mrv47kkrn95k6cwecearydeh8e895990n3acntwvmgk2dsdeeycm/nostr-double-ratchet
Help keep these ideas circulating
This is an independent project. If you'd like to help support it, you can make a contribution. But there's no obligation at all. Reading, sharing, and coming back is already a form of support.
Read also
1
ネットワーク全体のつながりを計算するような重い処理を、信頼できる外部サービスに任せる(オフロードする)ための仕様
2
キーワード検索機能, クライアント(アプリ)がキーワードを指定してリレー(サーバー)に要求、対応しているリレーがデータベースから合致する投稿を探して返す
3
主にLLC(合同会社)の利点に焦点
Want to publish here too? No sign-up, and the text stays yours. Learn how to start
Replies (0)
Loading…