2016-11-14 11 views
2

私はセキュリティに敏感な操作を行う静的ライブラリを作成したいと考えています。静的ライブラリを使用する他のアプリケーションが静的ライブラリのデータにアクセスできないことは私にとって重要です。ios用の独立したサンドボックスtouch静的ライブラリ

実際には、ディスクに保存したデータと実行時にメモリに保存したデータの両方に、ホストアプリケーション経由でアクセスできないことが重要です。だから私の質問は、ホストアプリケーションがこれらの情報にアクセスできないように、静的ライブラリ用に別のサンドボックスを提供する方法です。

私は.aファイルを持っていると知っているいくつかのセキュリティに敏感なライブラリがあり、私は彼らのアプリケーションのセキュリティを提供する方法が不思議です。ここでpaypalのiOS SDKへのリンクです:

https://github.com/paypal/PayPal-iOS-SDK

が更新

開発者のリンクの下によると、我々は砂ボクシングを有効にするには、エンタイトルメントファイルで砂ボクシングのキーを使用することができます。 iOSアプリはデフォルトでサンドボックス化されています。 しかし、iOSの静的ライブラリはどうですか?彼らはあまりにも砂ボックスですか?いいえ、どうすればサンドボックスできますか?

https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html

更新

のAndroid OSで使用すると、プロジェクトライブラリを開発しているときは、別のプロセスに、ライブラリコードを実行するには、Android OSを強制するために、このプロジェクトのmanifestにタグを定義することができます(ところで、ホストプロセスはライブラリプロセスのランタイムメモリにアクセスできません)。だから私は、私たちもiOS上でこの動作の同等のオプションを持っているべきだと思います。

更新

私たちも、実行時にホストアプリagainsデータを保護することに注意してください。大きな問題の1つは、リフレクションによってUI要素のデータにアクセスすることです。誰かが自分のカードデータをPaypal SDKに入力しているとし、ホストは反映された入力データにアクセスできます。その後、ホストアプリケーションの開発者は、すべてのカード情報とその認証データにアクセスして、それらの用途に使用することができます。

+0

iOSセキュリティ・エンクレーブは何でも使用できますか? [記事](https://blog.trailofbits.com/2016/06/28/start-using-the-secure-enclave-crypto-api/)、[guide](https://www.apple.com/ business/docs/iOS_Security_Guide.pdf) –

+0

あなたのコメントが分かりません。詳細を指定してください。 –

+0

iOS Security Enclaveは秘密鍵のペアを生成することができます。秘密鍵の一部はセキュリティエンクレーブから離れることはありませんが、これを考えると、あなたの状況に役立つはっきりしません。あなたはライブラリを別のアプリケーションにラップすることができます(もちろんサンドボックスにすることもできます)。[カスタムURLスキーム](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter- AppCommunication/Inter-AppCommunication.html#// apple_ref/doc/uid/TP40007072-CH6-SW1)を使用してアプリとライブラリアプリの間の通信を行います。 –

答えて

1

ライブラリとフレームワークはホスティングアプリに属します。特に静的なlibのコードは、アプリケーションのバイナリに含まれており、分離はありません。 lib用に別のサンドボックスを作成することもできません。

静的なlibは、ディスク上のファイルを対称キーで暗号化してデータを保護する場合があります。しかし、攻撃者はあなたのlibから鍵を抽出し、データを解読するかもしれません。

+0

したがって、.aファイルを共有するペイパルや他の金融会社が第三者に必要なセキュリティを提供する方法を教えてください。 –

+0

私は分かりません。彼らはサーバーとの通信に実証済みの方法(例:TSL/HTTPS)を使用し、秘密のデータをキーチェーンに入れていると思います。彼らは自分のサンドボックスを持っていないことを知っています。静的ライブラリをリンクすることは、アプリケーションに.oファイルを追加することに似ています。 (注:静的ライブラリは 'ar'(1)というツールで作成し、_archive_の省略形)を作成します。 – clemens

+0

データを再度保護する必要があることに注意してください。キーチェーンにデータを保存すると、ホストアプリケーションもそれにアクセスできます。もちろん、主な問題はここにはありません。サーバからの安全なキーを使ってそれらを暗号化できるからです。主な問題は、ホストが3番目のライブラリUIに入力するものにアクセスできるときです。誰かが自分のカードデータをPaypal SDKに入力しているとし、ホストは反映された入力データにアクセスできます。 –

関連する問題