私のiOSアプリケーションでは、iPadsが互いに通信するための安全な方法が必要です。iPads間の安全な通信
最初の(安全ではない)実装では、1つのiPadがWebサーバーをセットアップし、他のiPadsは通常のNSURLSession要求でそれと通信するということでした。
Appleは、(App Transport Securityを通じて)HTTPSの使用をより厳しくしているので、私はこの問題に取り組み、iPadsの間にセキュリティのレイヤーを追加したいと思います。
私はGCDAsyncSocket(既にウェブサーバー用に使用しています)のTLS実装を見てきました。しかし、それは難しい証明書の問題をもたらします.IPadsはLANでオフラインで作業でき、IPアドレスでお互いに接続できるはずです。
ATSは、既知のCAによって発行される証明書を強制します。私は顧客に自分のiPadsにカスタムCA証明書をインストールさせることはできません。たとえそれができたとしても、それらのiPadsの証明書を生成することはおそらく悪夢になるでしょう。
私の次のアイデアは、TLSに似たレイヤーで自分のプロトコルを実装することです。しかし、私はもちろん、TLSのような十分にテストされたメカニズムを使用することを好むでしょう。
私はあなたに良い提案があることを願っています。多くの人がリモートサーバーに依存しているように見えますが(そして私は本当にオフライン機能が必要です)、私はこのようなケースの最初の人にはなり得ないような気がします。
私の最低iOS要件はiOS 9(iPad 2互換)です。
ありがとうございました。私は無線LANのセキュリティにのみ依存しないことを好みます。多くのお客様が、お客様のWi-Fiをゲストと共有することをお約束します。カスタムCAの設定、iPads証明書の割り当て、ホスト名検証の迂回(そしてTLSの使用)を行うことができます。しかし、私はATSがiOS 9の下でIPアドレスに適用されると信じています.AppleはiOS 10のATSで起こりそうな事件のいくつかを修正しましたが(例えば、あなたが書いたNSAllowsLocalNetworkingキーを導入するなど)、iOS 9の頭痛になります。 – Zyphrax
私はそのドキュメントがiOS 10用であることを確認できます.iOS 9では、IPアドレスのHTTPリクエストはATSによってブロックされています。 – Zyphrax