セキュリティ&プライバシー・バイ・デザイン:私たちがあなたを守る方法
信頼は主張するものではなく、獲得するものです。この記事では、AINudeGirlsを支えるセキュリティアーキテクチャとプライバシー原則を、透明性をもって解説します。私たちはこのプラットフォームを、一つの核心的な信念のもとに構築しました:あなたのアイデンティティはあなたのものであり、あなたのデータもそうあり続けるべきだ。
曖昧な約束はしません。マーケティング用語も使いません。私たちが実際に何を構築し、なぜそうしたのか、それだけをお伝えします。
---
私たちの哲学:常にプライバシーファースト
多くのプラットフォームは、中身を見る前からメールアドレス、名前、電話番号、生年月日を要求します。私たちは正反対のアプローチを取りました。
アカウント作成にメールアドレスは不要です。ログインシステムはコードベースです:16文字のログインコード(XXXX-XXXX-XXXX-XXXX形式)を受け取り、それがあなたの認証情報になります。メールアドレスもユーザー名も、個人情報も必要ありません。
私たちが収集するもの — そして収集しないもの:
- サインアップにもプラットフォームの利用にもメールアドレス不要
- サービスの機能提供に厳密に必要な範囲を超える個人データは収集しません
- トラッキングピクセルなし、分析プロファイルなし、行動フィンガープリンティングなし
- データを第三者に販売することは — 決してありません
- 後付けではなく、設計段階からGDPRに準拠
必要がないから、収集しない。保持するデータが少ないほど、漏洩しうるものも少なくなります。
---
セキュリティ・バイ・デザイン:あらゆるレイヤーに組み込み
セキュリティは、最後に付け足した機能ではありません。すべてのAPIエンドポイント、すべてのデータベース操作、すべての認証フローに織り込まれています。
認証アーキテクチャ
- Argon2idパスワードハッシュ — 政府機関や金融機関でも使われているアルゴリズムです。Password Hashing Competitionの優勝アルゴリズムであり、GPUベースの攻撃、サイドチャネル攻撃、時間とメモリのトレードオフ攻撃に耐性があります。
- ログインコードは保存前にハッシュ化 — データベース管理者でさえ、あなたのログインコードを見ることはできません。仮にデータベースが侵害されても、コードは元の値なしには暗号学的に無意味です。
- 短い有効期限のJWTトークン — アクセストークンは5分で失効します。リフレッシュトークンは使用のたびにローテーションされるため、盗まれたトークンが使える時間は極めて短くなります。
- リカバリートークンはSHA-256でハッシュ化してからデータベースに書き込まれます。平文は一度だけ表示され、決して保存されません。
リクエストレベルの保護
- 状態を変更するすべてのリクエストに、ダブルサブミットクッキーパターンによるCSRF保護。すべてのPOST、PUT、PATCH、DELETEリクエストが検証されます。
- 全エンドポイントのレート制限 — ルートごとに設定可能な制限が、ブルートフォース攻撃、クレデンシャルスタッフィング、APIの濫用を防ぎます。レートリミッターは永続ストレージに支えられているため、サーバーを再起動しても制限は維持されます。
- すべてのAPIエンドポイントで認証必須 — 保護されていないデータエンドポイントは存在しません。唯一の例外は(このブログのような)公開コンテンツであり、そこにユーザーデータは含まれません。
---
決済セキュリティ:あなたのお金、あなたのプライバシー
私たちは、あなたの匿名性を守れる決済手段を意図的に選びました。
暗号資産決済
- 金融プライバシーを最大化するため、BitcoinとEthereumに対応
- 取引はNOWPaymentsを通じて処理され、Webhook検証が行われます
- 決済WebhookはHMAC署名で検証 — すべての決済通知が、攻撃者ではなく決済プロセッサーから来たものであることを暗号学的に検証します
Paysafecard
- 銀行情報は不要 — 近くの店舗でバウチャーを購入し、コードを入力するだけ
- あなたの銀行口座とプラットフォーム上のアクティビティが紐づくことはありません
私たちがしないこと
- クレジットカード情報をサーバーに保存しません — カード番号の処理も保存も行いません
- クレジット/引き換えコードは保存前にハッシュ化 — ログインコードと同じアプローチです
- 決済レコードに含まれるのは取引IDのみ — 返金処理に必要な情報だけで、それ以上は何もありません
---
コンテンツセキュリティ
プラットフォーム上のすべての生成コンテンツは、多層的なアクセス制御で保護されています。
- ファイルの公開配信なし — すべてのファイルリクエストは、認証と認可のチェックを通過します。コンテンツのオープンディレクトリは存在しません。
- すべてのリソースにアクセス制御 — 生成された画像と動画はユーザーアカウントに紐づきます。アクセスできるのは、自分が作成または購入したコンテンツだけです。
- NSFWコンテンツは年齢確認とアクティブな認証の背後でゲート
- コンテンツの有効期限と自動クリーンアップ — 一時ファイルはスケジュールに従って削除され、攻撃対象領域を減らします
---
インフラセキュリティ
プラットフォームは、幾重ものインフラ堅牢化の背後で稼働しています。
トランスポートセキュリティ
- HSTS(HTTP Strict Transport Security)プリロードヘッダー付きで、あらゆる場所でHTTPSを強制。ブラウザは、暗号化されていないHTTPで決して接続しないよう指示されます。
- TLS 1.2以上のみ — 古く脆弱なプロトコルバージョンは拒否されます。
HTTPセキュリティヘッダー
サーバーからのすべてのレスポンスには、堅牢化されたセキュリティヘッダー一式が含まれます:
- Content-Security-Policy (CSP) — 許可するスクリプトとリソースのソースをホワイトリスト化し、XSS攻撃を防止
- X-Frame-Options: DENY — iframe埋め込みをブロックし、クリックジャッキングを防止
- X-Content-Type-Options: nosniff — MIMEタイプ混同攻撃を防止
- Referrer-Policy: strict-origin-when-cross-origin — サードパーティサイトへのリファラー情報の漏洩を制限
- Permissions-Policy — プラットフォームが使用しない不要なブラウザAPI(カメラ、マイク、位置情報)を無効化
バックエンドの堅牢化
- 厳格なCORS設定 — クロスオリジンリクエストを許可するのは自社ドメインのみ。ワイルドカードオリジンはありません。
- RedisベースのレートLimit — サーバーの再起動や水平スケーリングをまたいで持続します
- すべてのシークレットは環境変数から読み込み、起動時に検証 — 重要なシークレット(JWTキー、決済APIキー、データベース認証情報)が欠けている場合、サーバーは起動を拒否します。ソースコードにシークレットがハードコードされたことは一度もありません。
- ユーザー向けの全フィールドで入力検証 — システムに入るすべてのデータは、処理前に厳格なスキーマで検証されます。不正な入力は、ビジネスロジックの奥深くではなく、境界で拒否されます。
- エラーメッセージは内部情報を決して晒しません — ユーザー向けのエラーレスポンスは、すべて汎用的なメッセージを使用します。スタックトレース、データベースの詳細、内部状態は、サーバー側でのみログに記録されます。
---
透明性:何を収集し、なぜ収集するのか
サーバー上に存在するデータとその理由を、正直に一覧にします。
保存しているもの
データ 目的 あなたのコントロール
------ --------- --------------
ハッシュ化されたログインコード 認証 リクエストで削除可能
リカバリーメール(任意、暗号化) アカウント復旧のみ 追加するかどうかはあなたの選択
クレジット残高 サービス機能 アカウントで確認可能
生成履歴 あなたの利便性のため — 過去の作品の確認 リクエストで削除可能
取引ID 返金処理 法的要件に従い保持
収集していないもの
- トラッキング目的のIPアドレス — 位置情報プロファイルは作成しません
- 閲覧履歴 — どのページをどれだけ見たかを追跡しません
- 販売目的の個人的嗜好 — 広告プロファイルは作成しません
- デバイスフィンガープリント — ハードウェアやブラウザの構成を追跡しません
削除を求める権利
アカウントと関連するすべてのデータの完全削除は、いつでもリクエストできます。削除をリクエストすると:
1. アカウントレコードが完全に削除されます
2. 生成履歴が消去されます
3. 決済の参照情報が匿名化されます
4. 関連するコンテンツファイルがストレージから削除されます
面倒な手続きにはしません。ご連絡いただければ、実行します。
---
継続的セキュリティ:終わりはない
セキュリティはマイルストーンではなく、継続的なプロセスです。私たちが継続的に行っていること:
- 定期的なセキュリティ監査 — 自動スキャンと、セキュリティ上重要なパス(認証、決済、ファイルアクセス)の手動コードレビューの両方
- 依存関係のスキャン — 依存するすべてのパッケージについて既知の脆弱性を自動監視し、迅速なサイクルでパッチを適用
- ユーザー向けの全フィールドで入力検証 — すべてのAPI境界でスキーマベースの検証
- エラーメッセージの監査 — 内部情報(データベースクエリ、スタックトレース、ファイルパス)がユーザーに漏れないことを確認
- すべての管理者エンドポイントを別途保護 — 管理機能には、通常の認証を超えた別個の権限レベルが必要です
---
オープンドアポリシー
脆弱性の報告は、真摯に受け止めます。
セキュリティ上の問題を発見しましたか? [email protected]までご連絡ください。
報告への対応方針:
- すべての報告に24時間以内に受領確認
- 重大な脆弱性は、確認から24時間以内にトリアージしパッチを適用
- 善意のセキュリティ研究者に対して法的措置を取ることは決してありません
- 問題の解決後、(ご希望であれば)報告者をクレジットします
セキュリティは、共有される責任です。何かに気づいたら、教えてください。痛い目に遭ってから知るより、あなたから聞かせてもらう方がずっといいのです。
---
結論
私たちはAINudeGirlsを、シンプルな原則の上に構築しました:集めるのは少なく、守るのは多く。コードベースのログインから暗号資産決済、ハッシュ化された認証情報まで、あらゆるアーキテクチャ上の決定は、あなたのプライバシーを後付けの考慮ではなく、第一の制約として下されました。
私たちは完璧ではありませんし、セキュリティに「完成」はありません。しかし、何をしているかについて透明であり、限界について正直であり、継続的な改善に取り組んでいます。
あなたの信頼を、当然のものとは思っていません。それは、コードの中で下す決断を通じて、毎日獲得していくものです。