私はセキュリティに敏感なアプリを開発しました。TEAベースのアルゴリズムを使用してデータを暗号化/復号化し、サーバーと通信してサーバープロトコルに従う必要がありました。APIを使用する交通機関レベルの通信にAsyncSocketを使用しましCFNetwork
た。TEA
アルゴリズムはあまり安全ではなく、簡単にハッキングされる可能性があることに気づきました。さらに、AsyncSocket
ライブラリはAppleのセキュリティフレームワークを使用していませんどこでも。トランスポート層を書き直し、クライアントサーバーセキュリティプロトコルを再定義することを計画しています。私は、パフォーマンスへの影響がまったくないか最小限であり、破ることが難しいデータ保護にどのようなセキュリティアルゴリズムを使用すべきかを研究してきました。さらに、セキュリティフレームワークを使用していますが、このフレームワークを使用してトランスポート層を実装する例は見つかりませんでした。誰かがこれについて私を助けてくれませんか?セキュアなトランスポート層をコーディングするために従うべきことは何ですか?アプリに対して確認できるセキュリティ対策は何ですか?
1 に答える
@CodesInChaosが指摘しているように、これにはTLSを使用する必要があります。新しいトランスポートプロトコルを設計または実装することは絶対にしないでください。
CFNetworkがTLSをサポートしているという事実は、それを使用していることを意味するものではありません。積極的に使う必要があります。サーバーには、クライアントが信頼する証明書が必要であり、TLSセッションをネゴシエートする必要があります。一般に、HTTPSと標準NSURLConnection
ルーチンだけを使用する場合は、必要なもののほとんどを無料で入手できます。ただし、手動でビルドを開始する場合CFNetwork
は、正しく構成されていることを確認する必要があります。可能な限りHTTPSを使用することをお勧めします。シンプルで、さまざまな問題を解決できます。
とはいえ、トランスポートが保護されているからといって、アプリが「十分に保護されている」とは限りません。特に、サーバーは、セキュリティで保護されたトランスポートを介して通信している悪意のあるクライアントに対処できる必要があります。ユーザーを適切に認証し、悪意のあるデータを適切に処理する必要があります。データがサーバーに到達したら、安全に保存する必要があります。クライアントでデータを暗号化する必要がある場合があります。トランスポート以外のシステムを保護するには、多くの側面があります。