Skip to content

feat: auth tokenをOSキーチェーンに保存してセキュリティを強化 #20

Description

@dashi296

概要

現在 auth token は ~/Library/Application Support/Remocoder/auth-token.json に平文保存されている。より安全な保存方法として OS キーチェーンへの移行を検討する。

現状の課題

  • 同じユーザー権限で動くプロセスからトークンを読み取られる可能性がある
  • ディスク暗号化(FileVault)が無効な環境ではディスクアクセスで露出するリスクがある

改善方針

@electron/keytar を使用して OS ネイティブのキーチェーンにトークンを保存する。

  • macOS: Keychain Access
  • Windows: Credential Vault
  • Linux: libsecret / kwallet

実装イメージ

import keytar from '@electron/keytar'

const SERVICE = 'remocoder'
const ACCOUNT = 'auth-token'

async function loadOrCreateToken(): Promise<string> {
  const stored = await keytar.getPassword(SERVICE, ACCOUNT)
  if (stored) return stored
  const token = uuidv4()
  await keytar.setPassword(SERVICE, ACCOUNT, token)
  return token
}

注意事項

  • Linux では libsecret のインストールが必要になる場合がある
  • electron-builder でのパッケージング時に native module のリビルドが必要

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions