S. Ota's avatar
S. Ota
_@susumuota.github.io
npub1susu...0yu8
A programmer. An author of nostr-keyx. Interests: Reinforcement Learning, Natural Language Processing and Artificial General Intelligence.
S. Ota's avatar
s_ota 3 years ago
NIP-07 を実装したミニマルな Chrome 拡張機能 nostr-keyx に、秘密鍵をAES(共通鍵)で暗号化して保存する機能を追加しました。 秘密鍵を平文ではなく暗号化した状態で `chrome.storage.local`(ファイルシステム)に保存するので少し安全になるかもしれません。AES鍵(共通鍵)は `chrome.storage.session` (メモリ)に保存しています。 - 秘密鍵を暗号化するための AES-GCM 暗号を追加(共通鍵) - 秘密鍵とパスワードを設定するためのポップアップメニューを追加
S. Ota's avatar
s_ota 3 years ago
Bech32 (`npub...`) から hex に変換するスクリプトを追加しておきました。 npx ts-node-esm bin/npub2hex.ts "nsec..." npx ts-node-esm bin/npub2hex.ts "npub..." 秘密鍵は環境変数に入れておいたほうがシェルのヒストリに残らないので少し安全かもしれません。 npx ts-node-esm bin/npub2hex.ts $NOSTR_NSEC npx ts-node-esm bin/npub2hex.ts $NOSTR_NPUB
S. Ota's avatar
s_ota 3 years ago
`chrome.storage.local` が安全かどうかとは別に、秘密鍵を平文であれこれやってるとちょっとしたケアレスミスでどこかに表示されたりするのが怖いです。コマンドヒストリやログなど。
S. Ota's avatar
s_ota 3 years ago
やはり秘密鍵を平文で `chrome.storage.local` に置くのは危険なので、取り急ぎ共通鍵で暗号化して、共通鍵はメモリに載せておくことにしようかと思います。 `chrome.storage.session` というのが使えそう。 共通鍵は当面 Chrome を起動する度に UI から入力させるとかかな。macOS の Keychain が使えるといいんだけど...
S. Ota's avatar
s_ota 3 years ago
NIP-07 を実装したミニマルな Chrome 拡張機能を公開しました。この拡張機能を使うと Iris や Snort 等の Web ベースの Nostr クライアントに秘密鍵を渡す必要がなくなります(少し安全になる)。 - ソースは 200 行程度 - 読みやすい(はず) - 最小限の依存関係 (@noble/secp256k1 と @scure/base のみ)