設計の概要
| 教材 | アプリに同梱した読み取り専用コンテンツ。学習中に外部教材APIを呼びません。 |
|---|---|
| 学習データ | SwiftDataで端末へ即時保存。iCloud利用時はAppleのCloudKit Private Databaseで同期します。 |
| 購入 | AppleのStoreKitだけを使用。商品価格はApp Storeから取得し、署名検証済みの権利だけを有効にします。 |
| Live Practice | 会話AIへ送信しません。利用者が確認した練習用テキストをクリップボードへ書き込むだけです。 |
| 公式サイト | Cloudflare Pagesの静的ファイル。サーバーサイド処理、フォーム、Cookie、広告、ランタイムJavaScriptはありません。 |
アプリの保護
- マイク、カメラ、位置情報、連絡先、写真への権限を要求しません。
- CloudKit同期に失敗しても別の空データベースへ切り替えず、履歴が消えたように見える事態を避けます。
- 学習試行は追記型イベントとして保存し、端末間競合で習熟状態が巻き戻らないよう再投影します。
- 購入権利はローカルのBoolやCloudKitを正とせず、StoreKitの検証済みトランザクションを確認します。
- 10日間の無償利用は、本番ではApple署名済みの初回取得日を基準にします。
- 端末日時の巻き戻し等を検知した場合は確認案内を表示し、利用者が明示的に選んだときだけAppleへ再照会します。正当性を確認できるまで新しい無償権利は付与しません。
- 利用者は学習データをJSONで書き出し、端末とPrivate Databaseから削除できます。
Webサイトの保護
- HTTPSのみで配信し、HSTSを設定します。
- Content Security Policyでスクリプト、外部接続、フォーム、埋め込みを禁止します。
- クリックジャッキング、MIME推測、不要なブラウザ権限をレスポンスヘッダーで制限します。
- 法定情報などの必須項目が未設定なら、Cloudflareの本番ビルドを失敗させます。
- 問い合わせフォームを置かず、本サイト側に入力内容を保存しません。
暗号化について
通信の保護は、iOS・iPadOS、AppleのCloudKit・StoreKit、CloudflareのHTTPSに依存します。本アプリ独自の暗号アルゴリズムや暗号ライブラリは実装していません。端末内データの保護は、OSのデータ保護、パスコード、端末の安全な利用にも依存します。
外部の会話AIとの境界
本アプリはChatGPTその他の会話AIを起動、認証、操作、監視せず、会話内容や回答を取得しません。利用者がコピーした練習設定を外部サービスへ入力した後は、そのサービスの規約・プライバシーポリシーが適用されます。実在する顧客名、認証情報、未公開コード、インシデント詳細などを入力しないでください。
確認済みでない保証
SOC 2、ISO 27001、第三者侵入テスト、バグバウンティなどの認証・監査を取得済みとは表示していません。「完全な安全性」や「すべての保存データをアプリ独自に暗号化している」といった保証も行いません。確認できる実装と運用だけを公開します。
脆弱性の報告
本アプリまたは本サイトにセキュリティ上の問題を見つけた場合は、support@supportxxx.comへご連絡ください。
- 対象のアプリバージョンまたはURL
- 再現手順と想定される影響
- 可能であれば画面、ログ、概念実証(個人情報や機密情報を除く)
他の利用者のデータへのアクセス、サービス妨害、ソーシャルエンジニアリング、公開前の無断開示は行わないでください。受領後に内容を確認し、必要に応じて追加情報をお願いします。
インシデント対応
問題の報告を受けた場合、影響範囲の確認、封じ込め、修正、再発防止を行います。法令上または利用者保護のため通知が必要な場合は、影響を受ける方と関係機関へ適切にお知らせします。