アプリを開く ↗

🔒 ログイン方法完全ガイド

nokakoiでは、ユーザーの利用環境やセキュリティ要件に合わせて4種類のログイン方法に対応しています。
それぞれのメリット、デメリット、セキュリティ構造を解説します。

📊 ログイン方式の一覧比較

ログイン方式 利便性 キー保管場所 XSS耐性 推し環境
🔑 nsec + パスキー 推奨 ★★★★★
(生体認証1タッチ)
デバイス暗号領域
(WebAuthn PRF)
✅ 高
(クロージャ保護)
PC・スマホ単体使用
🧩 NIP-07 拡張機能 高セキュリティ ★★★★☆
(拡張ダイアログ)
ブラウザ拡張内部
(nos2x / Alby等)
✅ 最高
(Webアプリ非露出)
PCブラウザメイン
🌐 NIP-46 (Nostr Connect) 高セキュリティ ★★★☆☆
(リモート承認)
リモート署名器
(Amber / Remote Signer)
✅ 最高
(鍵はリモートのみ)
Android / 専用署名器
🔐 nsec + パスワード 従来の方式 ★★★☆☆
(パスワード入力)
ブラウザ LocalStorage
(AES-GCM暗号化)
✅ 高
(クロージャ保護)
パスキー非対応環境

🔍 各ログイン方式の詳細説明

🔑 1. nsec + パスキー(生体認証) おすすめ

概要: 指紋認証(Touch ID / Windows Hello)や顔認証(Face ID)を使ってワンタッチでログインする最新の認証方式です。

  • メリット: パスワードの入力が一切不要。ドメイン(nokakoi.com)に結びつくためフィッシングサイトに強い。
  • 安全性: WebAuthn PRF 拡張を利用して秘密鍵(nsec)を暗号化保存します。パスキー認証が成功した時のみメモリ上で復号されます。
  • クロージャ保護: 復号された秘密鍵はJavaScriptのクロージャ(閉じられたスコープ)に保持され、外部のスクリプトから直接読み取ることはできません。
  • 注意点: 登録した端末・ブラウザごとにパスキーの初期登録(初回のみnsec入力)が必要です。

🧩 2. NIP-07(ブラウザ拡張機能・連携アプリ)

概要: nos2x, Alby, AKA Profiles(PC Chrome), Nostash(iOS)などのブラウザ拡張機能・連携アプリを使用して署名を行う方式です。

  • メリット: nokakoiを含む複数のNostr Webアプリで同じ秘密鍵を安全に共有・利用できます。
  • 安全性: 秘密鍵は拡張機能・アプリ内に安全に保持され、nokakoi側には一切渡りません。署名が必要な時だけ確認ポップアップが表示されます。
  • 注意点: 対応するブラウザ拡張機能または連携アプリを事前インストールしておく必要があります。

🌐 3. NIP-46(Nostr Connect / リモート署名)

概要: AndroidのAmberアプリなどの外部署名器とリレー経由で通信し、遠隔でイベントに署名する方式です。

  • メリット: Webブラウザ上に秘密鍵を一切持ち込まないため、Webアプリ側の脆弱性の影響を受けません。
  • 安全性: 署名リクエストごとにスマホ側の署名アプリで承認・拒否をコントロールできます。
  • 注意点: リモート署名アプリとの初期接続設定が必要です。

🔐 4. nsec + パスワード暗号化

概要: 自分で設定したマスターパスワードでnsecをAES-GCM暗号化してブラウザ内に保存する方式です。

  • メリット: パスキー未対応の古いブラウザや環境でも利用可能です。
  • 注意点: パスワードを忘れると復号できなくなります。パスキー対応環境ではパスキーログインのご利用を強く推奨します。

🛡️ nokakoiの秘密鍵保護アーキテクチャ(クロージャ保護)

🔒 メモリ内秘密鍵のクロージャ遮断構造

nokakoiでは、nsec復号後の秘密鍵をグローバル変数(window オブジェクトなど)に保持しません。

JavaScriptのモジュールスコープ(クロージャ)内に厳格に閉じ込めることで、悪意のあるサードパーティ製スクリプトやXSS(クロスサイトスクリプティング)攻撃によってブラウザから秘密鍵を直接盗み出す(window.nsec のような参照)攻撃を未然に防ぎます。

📚 関連ドキュメント・ガイド