[🛠] Secret Messenger開発日誌 #1: Flutter Web + Node (Vibe Coding Test)
✨ GPTの要約
中国国内の脱北者のためのセキュリティ重視メッセンジャーについて、技術構造とセキュリティ設計を完了し、Flutter Web + NodeベースのMVP開発計画を書いた一日。
🧮 Secret Messenger
中国国内で身分証なしに生きている脱北者ユーザーのためのメッセンジャーです。
- 📱 インストールなしでブラウザから接続でき
- 💬 情報受信、秘密の会話、ファイル共有が可能な
- 🛡️ Flutter Webベースのセキュリティ重視コミュニケーションツールです。
このプロジェクトは政治的目的ではなく、人権保護と生存支援のための技術実験であり、 公開配布や商業利用を前提にしていません。 (🔒 GitHub Private Repoでのみ管理されます。)
📌 プロジェクト概要
| 項目 | 内容 |
|---|---|
| ユーザー | デジタルリテラシーが非常に低く、携帯電話を公安に監視されている、中国国内の脱北者 |
| 目標 | 情報共有、秘密チャット、安全なファイル共有 |
| 形態 | インストール不要の、ブラウザベースのFlutter Web SPA |
| ドメイン | https://???.net (電卓UIに偽装) |
| UI偽装戦略 | 最初の画面を電卓のように見せる → 特定の演算を入力するとサーバーへ入場リクエストを送信 |
| 入場方式 | Flutter Webが入場キーをサーバーへPOSTし、サーバーが判定してアクセストークンを発行 |
| コードセキュリティ戦略 | 機密条件やロジックはクライアントに含めず、すべてサーバー側で判定 |
| 機能優先順位 | ① 情報受信 → ② チャット → ③ ファイル共有 |
🧪 Vibe Coding実験プロジェクト
このプロジェクトは同時に、Vibe Codingという開発方式の実戦適用可能性と限界を試すMVPでもあります。
- 自然言語で設計と実装を進め、コード生成の大部分はAIの助けを借ります。
- ユーザーは実際にコードを書くというより、「設計者/調整者」の役割を担います。
- 目標は、AI主導開発の効率とリスク要因を現実の中で評価することです。
この実験を通じて、今後のAIベース開発方式の未来を探り、 実際の人権プロジェクトに適用できる水準なのかを検証します。
⚙️ 技術スタック
🔷 フロントエンド (Flutter Web)
-
Flutter 3.x(Web build) -
Material 3(電卓UI偽装に最適) -
go_router(ページ遷移と隠し入場構成) -
Riverpod(状態管理: UUID、セッションなど) -
http(REST API通信)
🔍 UI戦略
- 初期画面: 電卓形式の
TextField + ボタングリッド - 特定の演算を入力 → サーバーへ送信 → 有効なら内部入場を許可
- クライアントには入場トリガーやロジックを含めない
🔷 バックエンド (Node.js + Express)
Node.js 18+-
Express.js(REST APIサーバー) -
SQLite(ファイルベースのローカルDB) -
Multer(ファイルアップロード) -
node-cron(TTLベース削除スケジューラ) -
CORS、helmet、rate-limitなどのセキュリティミドルウェア構成
📁 主要API
-
POST /check-trigger- 入力された文字列をサーバーが確認
- 事前登録されたトリガー条件と一致すればセッショントークンを発行
-
GET /session/:idまたは/inbox/:key- サーバーが発行したセッションキーを持つユーザーだけが内部機能へアクセス可能
-
POST /message、GET /messages- TTLベースのメッセージ保存/取得
-
POST /upload、GET /file/:id- ファイルアップロードと自動削除をサポート
🔷 インフラ / デプロイ
-
Docker(サーバー環境の一貫性と移植性を確保) -
Ubuntu 22.04 LTS(Vultr VPS) -
Vultr VPS (香港リージョン)— 中国からの接続安定性を確保 -
Cloudflare(DNSプロキシ + SSL + IP隠蔽) - ドメイン:
???.net— 電卓偽装用ドメイン
🔐 セキュリティ戦略
| 項目 | 説明 |
|---|---|
| コード分離 | 入場ロジック、トリガーなどの機密コードはサーバー専用 |
| Flutter Webの役割制限 | UIレンダリングと入力送信のみを実行 |
| HTTPS強制 | Cloudflare + Let’s Encrypt |
| Cloudflareプロキシ | サーバーIP隠蔽とDDOS防御 |
| CORS制限 | 許可されたドメイン以外のリクエストを遮断 |
| no-cacheポリシー | すべてのレスポンスにno-storeヘッダーを適用 |
| メッセージTTL | 生成時刻ベースの自動削除 |
| ファイルTTL | アップロード後、定められた時間内に削除 (node-cronで処理) |
| ローカル保存制限 | localStorage/cookieを最小化、または使用禁止 |
🗂️ 機能一覧
| 機能 | 状態 | 説明 |
|---|---|---|
| 🧊 偽装UI | 🟢 実装中 | 電卓UIに偽装し、サーバー経由の入場条件を適用 |
| 📥 情報受信 | 🟢 準備中 | 管理者のお知らせ (読み取り専用) |
| 💬 チャットルーム | 🟡 開発予定 | 匿名グループチャット (TTLベース) |
| 📁 ファイル共有 | 🟡 開発予定 | 自動削除設定付きのファイル共有 |
| 🔥 削除システム | 🟡 開発予定 | メッセージ/ファイルのTTL削除自動化 |
🚀 開発段階ロードマップ
- ⚙️ システム構造設計とセキュリティモデル策定
- 📌 技術スタック確定 + 偽装戦略決定
-
🌐 ドメイン購入 (
???.net) - 🔨 Flutter Web電卓scaffold
- 🔨 Express + SQLite API scaffold
- 🔐 入場キーのサーバー処理構造を構築
- 📦 Docker + デプロイ自動化
- 🌐 VPSデプロイ + Cloudflare統合
- 🧪 MVPテスト
- 🎯 安定化と内部配布
📄 参考事項
- GitHubには機密コードや情報を絶対にコミットしません。
- デプロイ用Flutterコードは
build/ディレクトリへ、サーバーコードはDockerコンテナ内でのみ実行されます。 - すべてのAPI通信はHTTPSで暗号化され、ユーザーデータはTTL設定後に自動破棄されます。
- 電卓入場キー、ユーザーUUIDなどの機密情報はフロントエンドに絶対に含まれず、サーバー内部の非公開検証キーを基準にのみ処理されます。
- 入場条件の確認とユーザー識別はサーバー側でのみ行われる一方向検証ロジックで構成され、Flutter Webコードが露出してもセキュリティ情報は外部に漏れません。
👤 開発者メモ
このプロジェクトは単なるアプリではなく、
ある人たちにとっては命につながる生存ツールになり得る、という思いから始めます。
技術が監視の道具ではなく、 自由のための道具になれるように。
💭 日記
私は何のために生きているのか。富と名誉? いや、そういう種類のものは、そもそも目標にはなり得ない虚像だ。ただの手段にすぎない。
私が本当に望む人生とは何か。…まあ、定義はできない。とにかく神への愛 / 隣人への愛という大きな範囲の中に含まれる人生であることは明確だ。
いずれにしても、このプロジェクトが自分の心臓を高鳴らせ、歓喜を感じさせるのを見ると、今すぐ私が一番やりたかったのは、こういう種類のものだったのだろう。
だから、まずはこれから始めよう。
コメントする