Skip to content
orgsonaiPublic

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Kuraudo(蔵人)

ローカル・ファースト × 選べる同期方式のパスワードマネージャー

Argon2id + AES-256-GCM | Flutter | Linux · Android · Windows


特徴

  • 商用レベルの暗号化 — Argon2id (KDF) + AES-256-GCM。データファイルが流出しても、マスターパスワードなしでは解読不可能
  • ローカル・ファースト — データは常にローカルに保存。オフラインでも完全に動作
  • 3つの同期方式から選択 — Google Drive / WebDAV(Nextcloud等) / ローカルパス(SMB・外付けドライブ等)の中から1つ選んで使用可能。Googleアカウントを使いたくない場合は他の方式を選べる
  • クロスプラットフォーム — Linux / Android / Windows を単一コードベースで対応
  • 設定もデータと同じ場所に — 設定ファイル・バックアップはVaultと同じフォルダに配置(OS標準のアプリ設定フォルダに置くのは、前回開いたVaultの場所など最小限の情報だけ)
  • オープンソース — ソースコードを公開。誰でも監査可能

同期方式

方式 説明 想定ユーザー
Google Drive Googleアカウントの App Data Folder に暗号化ファイルを保存 手軽にクラウド同期したい
WebDAV Nextcloud / Synology / 自前WebDAVサーバーに HTTPS Basic 認証で接続 自分のサーバーを持っている
ローカルパス SMBマウント先 / 外付けドライブ / 共有フォルダなどへ直接ファイルコピー LAN内NAS、ネット非接続環境

選択した方式は同期画面右上の ⇄ ボタンからいつでも切り替え可能。複数方式の同時利用は非対応。

スクリーンショット

(開発中 — 後日追加予定)

インストール

Microsoft Store(Windows)

(提出未着手 — Windows向けビルドは可能、docs/windows-build-guide.md 参照)

GitHub Releases

Releases から各プラットフォーム向けのファイルをダウンロード。

Linux(x86_64)

Flutter のインストールやビルドは不要です。使っているディストリビューションに合うファイルを選んでください。

ディストリビューション ファイル インストール
Debian / Ubuntu 系 Kuraudo-<版>-linux-x86_64.deb sudo apt install ./Kuraudo-*-linux-x86_64.deb
Fedora / RHEL 系 Kuraudo-<版>-linux-x86_64.rpm sudo dnf install ./Kuraudo-*-linux-x86_64.rpm
Arch Linux 系 Kuraudo-<版>-linux-x86_64.pkg.tar.zst sudo pacman -U ./Kuraudo-*-linux-x86_64.pkg.tar.zst
インストールせずに使う Kuraudo-<版>-linux-x86_64.AppImage chmod +x ./Kuraudo-*-linux-x86_64.AppImage で実行権限を付けて起動

インストール後はアプリメニューまたは kuraudo コマンドから起動できます。PIN や同期のログイン情報を保存するには、KDE ウォレットや GNOME キーリングなど OS のキーリングが必要です。

ビルド

# リポジトリをクローン
git clone https://github.com/orgsonai/kuraudo.git
cd kuraudo

# 依存関係をインストール
flutter pub get

# 実行
flutter run

# リリースビルド
flutter build linux     # Linux
flutter build apk       # Android
flutter build windows   # Windows(Windowsホスト + Visual Studio 2022 必要)

Linuxパッケージ

LinuxではAppImageに加え、各ディストリビューションのパッケージ管理でインストールできる形式を作成できます。

flutter build linux --release

./build_linux_packages.sh deb   # Debian / Ubuntu (.deb)
./build_linux_packages.sh rpm   # Fedora / RHEL系 (.rpm)
./build_linux_packages.sh arch  # Arch Linux (.pkg.tar.zst)
./build_linux_packages.sh all   # 3形式すべて

生成物は dist/ に保存されます。作成には対応するツール(dpkg-deb、rpmbuild、makepkg)が必要です。

sudo apt install ./dist/kuraudo_*_amd64.deb       # Debian / Ubuntu
sudo dnf install ./dist/kuraudo-*.x86_64.rpm      # Fedora / RHEL系
sudo pacman -U ./dist/kuraudo-*.pkg.tar.zst       # Arch Linux

インストール後はアプリメニューまたは kuraudo コマンドから起動でき、削除も各パッケージ管理から行えます。

v* タグ(例: v0.4.6、pubspec.yaml の version と同じ版)を GitHub に push すると、.github/workflows/linux-release.yml が deb / rpm / Arch 用 / AppImage を作ってリリースに添付します。事前にリポジトリの Secrets へ GOOGLE_CLIENT_SECRET を登録してください。

前提条件

  • Flutter SDK 3.16+
  • Dart SDK 3.2+
  • (Linux)clang, cmake, ninja-build, pkg-config, libgtk-3-dev
  • (Android)Android Studio + Android SDK
  • (Windows)Visual Studio 2022 + C++ Desktop workload。詳細は docs/windows-build-guide.md

Google Drive同期を有効にする場合

  1. Google Cloud Console でプロジェクトを作成
  2. Google Drive API を有効化
  3. OAuth 2.0 クライアントIDを作成
  4. google-services.json(Android)を android/app/ に配置
  5. ビルド時に --dart-define でシークレットを注入:
# デスクトップ(クライアントシークレットが必要)
flutter build linux --dart-define=GOOGLE_CLIENT_SECRET=your_secret
# flutter build windows --dart-define=GOOGLE_CLIENT_SECRET=your_secret  # 保留中

# Android(google-services.jsonを使用するためシークレット不要)
flutter build apk

詳細は google-drive-oauth-guide.md を参照してください。

セキュリティ

暗号化仕様

項目 仕様
鍵派生 Argon2id(デスクトップ: 64MB/3回/4並列, モバイル: 32MB/3回/2並列)
暗号化 AES-256-GCM(認証付き暗号)
ノンス 暗号化ごとにランダム生成(12バイト)。再利用禁止
ソルト 32バイト暗号学的乱数
認証タグ 16バイト(GCM)

.kuraudo ファイルフォーマット

Offset  Size   Description
──────────────────────────────────
0x00    4      Magic Number ("KRAD")
0x04    2      Format Version (uint16 LE)
0x06    4      Argon2 Memory (KB, uint32 LE)
0x0A    4      Argon2 Iterations (uint32 LE)
0x0E    4      Argon2 Parallelism (uint32 LE)
0x12    32     Salt
0x32    12     Nonce
0x3E    ...    Encrypted Payload + GCM Tag (16B)

脆弱性の報告

セキュリティ上の問題を発見した場合は、公開Issueではなく SECURITY.md に記載の方法でご報告ください。

機能一覧

  • パスワードの生成・保存・管理
  • パスワード強度リアルタイム評価
  • パスフレーズ生成
  • パスワード履歴(世代管理、最大10件)
  • アカウント紐付けビュー(同一メール/IDの横断表示)
  • TOTP(二段階認証)対応
  • Google Drive同期(タイムスタンプベース衝突回避)
  • インポート: KeePassXC / Bitwarden (CSV/JSON) / 1Password / Chrome
  • エクスポート: KeePass CSV / Bitwarden CSV / JSON
  • Android Autofill Service対応(基盤)
  • ダーク/ライトテーマ

プロジェクト構成

kuraudo/
├── lib/
│   ├── core/           # 暗号化エンジン, ファイルフォーマット, パスワード/TOTP生成
│   ├── models/         # データモデル (VaultEntry, Vault)
│   ├── services/       # Vault管理, CSV入出力, Google Drive, 同期, Autofill
│   └── ui/             # テーマ, 画面 (8画面), ウィジェット
├── test/               # テスト
├── pubspec.yaml
├── LICENSE             # GPL-3.0
├── SECURITY.md         # 脆弱性報告手順
├── CONTRIBUTING.md     # コントリビューション方針
├── PRIVACY.md          # プライバシーポリシー
└── README.md

ロードマップ

  • コアエンジン(暗号化 + ファイルフォーマット + パスワード生成)
  • UI/UX + KeePassXCインポート
  • Google Drive同期(UUID単位マージ)
  • エクスポート拡張(Bitwarden/1Password/Chrome対応)
  • TOTP + Autofill基盤(Android)
  • PIN/生体認証による簡易ロック解除
  • セキュリティ監査・修正
  • Google Play 公開
  • Microsoft Store 公開(保留中)

個人プロジェクトのため、上記以降の機能追加・アップデートは予定していません。バグ修正は随時対応します。

AI活用について

Kuraudo は Zero to Ship プロジェクトの一環として、AIアシスタント(Claude)によって開発されています。設計・コード生成・ドキュメント作成を含むほぼ全ての工程をAIが担当し、人間は方針の指示・変更要望・動作確認を行っています。

コントリビューション

Issue報告は歓迎します。PRについては CONTRIBUTING.md をご覧ください。

ライセンス

GPL-3.0 — Copyright (c) 2026 Zero to Ship

リンク

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages