RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-03-22中級

Rork Max でアプリのセキュリティを強化する — Keychain・暗号化・生体認証の実装ガイド

Rork Max で開発するアプリのセキュリティを強化する方法を解説。Keychain によるトークン管理、データ暗号化、Face ID / Touch ID 連携、SSL ピン留めなど、実践的なセキュリティ対策を網羅します。

Rork Max230セキュリティ13Keychain3Face ID暗号化3iOS開発15生体認証3

なぜアプリのセキュリティが重要なのか

モバイルアプリにはユーザーの個人情報、認証トークン、決済データなど機密性の高い情報が扱われます。セキュリティが不十分なアプリは、データ漏洩やアカウント乗っ取りといった深刻な問題を引き起こし、ユーザーの信頼を失うだけでなく法的リスクも伴います。

Rork Max で開発する Swift ネイティブアプリでは、Apple が提供する Keychain Services、CryptoKit、LocalAuthentication フレームワークなどのセキュリティ機能をフル活用できます。これらを正しく組み合わせることで、エンタープライズレベルのセキュリティを個人開発のアプリにも実装することが可能です。

Keychain Services でトークンを安全に管理する

Keychain とは

Keychain は iOS が提供する暗号化されたストレージで、パスワード、認証トークン、証明書などの機密データを安全に保存するための仕組みです。UserDefaults やファイルシステムに直接保存する方法と異なり、Keychain に保存されたデータはハードウェアレベルで暗号化され、アプリのサンドボックス外からアクセスすることができません。

Rork Max での Keychain 実装

Rork Max では、プロンプトで「Keychain にアクセストークンを保存する機能を追加して」と指示するだけで、適切な Keychain ラッパーコードが生成されます。生成されるコードは通常、次のような構成になります。

まず KeychainHelper というユーティリティクラスが作成され、保存(save)、読み取り(read)、削除(delete)の3つの基本操作が実装されます。このクラスは Security フレームワークの SecItemAdd、SecItemCopyMatching、SecItemDelete を内部で使用し、エラーハンドリングも含めた堅牢な実装になります。

認証トークンを保存する際は、サービス名とアカウント名をキーとして指定します。たとえば、サービス名を「com.myapp.auth」、アカウント名を「accessToken」として保存すると、アプリ内のどこからでも同じキーでトークンを取得できます。

Keychain のベストプラクティス

Keychain を使う際に意識すべきポイントがいくつかあります。

アクセシビリティ属性の設定は特に重要です。kSecAttrAccessibleWhenUnlockedThisDeviceOnly を指定すると、デバイスがロック解除されている間のみデータにアクセスでき、かつ iCloud バックアップにも含まれません。これが最もセキュアな選択肢です。

アプリの再インストール時には Keychain データが残存する場合があります。初回起動時に古い Keychain データをクリアするロジックを入れておくと、認証エラーを防げます。

データ暗号化の実装

CryptoKit を使った暗号化

Rork Max のアプリでは、Apple の CryptoKit フレームワークを使って端末内のデータを暗号化できます。CryptoKit は AES-GCM、ChaChaPoly、SHA-256 などの最新の暗号化アルゴリズムをサポートしており、数行のコードで強力な暗号化を実現できます。

たとえばユーザーのメモやプライベートな日記データをローカルに保存する場合、AES-GCM で暗号化してから保存し、読み取り時に復号するというフローが一般的です。暗号化キーは Keychain に保存し、暗号化されたデータ本体はファイルシステムに保存するという二重の保護が推奨されます。

Rork Max での実装プロンプト例

Rork Max に暗号化機能を実装する際は、具体的な要件をプロンプトに記述する点が肝心です。「ユーザーのメモデータを AES-GCM で暗号化してローカルに保存する機能を実装して。暗号化キーは Keychain に保管し、アプリ起動時にキーが存在しなければ新しく生成して」といった指示が効果的です。

暗号化キーの管理については、Keychain とセットで考える必要があります。キーをハードコードしたり、UserDefaults に保存したりするのは絶対に避けてください。

Face ID / Touch ID による生体認証

LocalAuthentication フレームワーク

生体認証は、ユーザー体験を損なわずにセキュリティを強化できる優れた方法です。Rork Max では LocalAuthentication フレームワークを使って Face ID や Touch ID をアプリに組み込むことができます。

生体認証が使われる典型的なシーンとしては、アプリ起動時のロック解除、決済や重要な操作の前の本人確認、パスワードマネージャー系アプリでの認証などがあります。

実装のポイント

生体認証を実装する際は、LAContext を使ってデバイスが生体認証に対応しているかを事前にチェックします。canEvaluatePolicy メソッドで .deviceOwnerAuthenticationWithBiometrics ポリシーを評価し、利用可能であれば evaluatePolicy で認証を実行します。

生体認証が利用できないデバイスのためのフォールバックも重要です。パスコード認証(.deviceOwnerAuthentication)をフォールバックとして設定し、どのデバイスでもアプリが利用できるようにします。

Info.plist には NSFaceIDUsageDescription キーを追加して、Face ID を使用する理由をユーザーに説明する文言を設定します。これがないと App Store の審査でリジェクトされる可能性があります。

Keychain と生体認証の連携

Keychain アイテムに生体認証を紐づけることで、さらに強固なセキュリティを実現できます。Keychain の kSecAccessControl に SecAccessControlCreateWithFlags を使い、.biometryCurrentSet フラグを設定すると、そのアイテムにアクセスする際に必ず生体認証が要求されます。

この設定では、生体認証情報が変更された場合(たとえば新しい指紋が登録された場合)、既存の Keychain アイテムへのアクセスが無効化されます。これにより、デバイスのオーナーが変わった際のセキュリティリスクを軽減できます。

ネットワークセキュリティの強化

App Transport Security(ATS)

iOS はデフォルトで App Transport Security(ATS)を有効にしており、すべての HTTP 通信を HTTPS に強制します。Rork Max で開発するアプリでもこの設定は維持すべきです。開発中に HTTP 通信が必要な場合でも、NSExceptionDomains を使って特定のドメインのみ例外を設定し、ATS 全体を無効にすることは避けてください。

SSL ピン留め

より高度なセキュリティが必要な場合は、SSL ピン留め(Certificate Pinning)を検討します。これは、アプリが通信するサーバーの証明書をあらかじめアプリ内に埋め込み、通信時に証明書が一致するか検証する仕組みです。中間者攻撃(MITM)を防ぐ効果があります。

Rork Max で SSL ピン留めを実装する場合は、URLSession のデリゲートメソッドで証明書の検証ロジックを記述します。ただし、証明書の更新時にアプリのアップデートが必要になるため、公開鍵ピン留めの方が運用面で柔軟です。

セキュアコーディングのプラクティス

入力値のバリデーション

ユーザー入力はすべて信頼できないデータとして扱います。SQL インジェクション、XSS、パストラバーサルなどの攻撃を防ぐために、入力値の検証とサニタイズを徹底します。Rork Max で API 連携を実装する際も、サーバーからのレスポンスを盲目的に信頼せず、型チェックと範囲チェックを行うようにプロンプトで指示してください。

デバッグ情報の除去

本番ビルドでは、デバッグログや開発用の API エンドポイントが含まれていないことを確認します。Rork Max でリリースビルドを作成する際は、コンソール出力やデバッグフラグが自動的に除去されますが、カスタムログ出力を追加している場合は注意が必要です。

Jailbreak 検知

セキュリティが重要なアプリ(金融、医療系など)では、Jailbreak されたデバイスでの動作を制限することも検討します。Jailbreak 検知は完全ではありませんが、一般的なチェック(Cydia の存在確認、システムファイルの書き込みテスト、サンドボックスの整合性チェック)を組み合わせることで、多くのケースをカバーできます。

App Store 審査とセキュリティ

App Store に提出する際、Apple はアプリのセキュリティに関するいくつかのチェックを行います。特に注意すべき点は以下の通りです。

プライバシーマニフェスト(PrivacyInfo.xcprivacy)の提出が必須になっています。アプリが収集するデータの種類、使用目的、サードパーティとの共有有無を正確に申告する必要があります。

また、Keychain を使用する場合は Keychain Sharing のエンタイトルメントが正しく設定されているか確認してください。不要な Capability が有効になっていると審査で指摘を受ける場合があります。

暗号化機能を使用するアプリは、米国の輸出規制に関する質問に回答する必要があります。CryptoKit や HTTPS 通信を使っている場合は「はい」と回答し、該当する免除区分を選択します。

全体を振り返って

Rork Max を使えば、セキュリティの専門知識がなくても Keychain、CryptoKit、LocalAuthentication といった Apple のセキュリティフレームワークを活用したアプリを構築できます。重要なのは、セキュリティは後から追加するものではなく、設計段階から組み込むものだということです。

認証トークンは必ず Keychain に保存し、機密データは暗号化してからストレージに書き込み、生体認証でユーザー体験を損なわずにセキュリティを強化します。これらの基本を押さえることで、ユーザーに安心して使ってもらえるアプリを開発できます。

シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

開発ツール2026-04-02
Rork アプリ完全セキュリティ実装ガイド — 生体認証・暗号化・セキュアストレージ・証明書ピンニング
Rork で本番リリースするアプリに必須のセキュリティ実装を徹底解説。生体認証・AES暗号化・セキュアストレージ・証明書ピンニング・ルート検出・ATTまで、実践コード付きで網羅します。
開発ツール2026-06-21
Rork アプリの認証トークンはどこに保存すべきか — expo-secure-store と生体認証ゲートの設計
Rork で生成したアプリの認証トークンを AsyncStorage から expo-secure-store へ移し、生体認証を読み出しの前段に挟むまでの設計をまとめました。サイズ制限や失効処理など、運用で踏んだ落とし穴も添えています。
開発ツール2026-05-17
Rork Max の SwiftUI 機能を壁紙アプリ開発で検証した結果 — 実際に動いた機能と手を入れた機能
累計5,000万DLの壁紙アプリを開発してきた立場で、Rork MaxのSwiftUIネイティブ生成機能を実際に検証しました。「動いた機能」「手を入れた機能」「生成を諦めた機能」を具体的なコードと共に解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →