2016-02-03 4 views
5

iOS 9でATSを有効にすると、多くのお客様が転送秘密の要件を満たすことができません。ただし、httpsとTLS 1.2の要件を満たすことができます。このため、httpsとTLS 1.2を適切に保ちながら転送秘密の要件を緩和したいと思います。誰もがすべてのドメインのための前進の秘密保持を無効にするNSExceptionRequiresForwardSecrecyまたはNSThirdPartyExceptionRequiresForwardSecrecyを使用する方法を考え出した場合iOS 9 ATS - すべてのドメインの転送秘密を無効にする

私は思っていました。

* NSExceptionDomainsまたは* .comに*を使用しましたが、問題リンクが動作しなかったときに使用しました。 domain.comを使用すると、問題のリンクが読み込まれます。私はそれにApple Docsを見ていたが、私の目標を達成するための方法を見ていない。

NSAppTransportSecurity/NSAllowsArbitraryLoadsをtrueに設定してATSを完全に無効にすることができるように、すべてのドメインの転送秘密を無効にすることはできますか?

ありがとうございました!

+0

を特定の例外を追加することができます。 ATSの例外のすべてのお客様のドメインを一覧表示するか、任意の負荷を許可します。両方を行うこともできますので、ATSは既知のドメインに対してはTLS 1.2を使用します(ただし、転送秘密を使用しません)。未知のドメインに対しては無効にします。 –

+0

アレックス、私は同じ結論に至りました、私たちはドメインベースで例外のサポートを追加しました。 –

答えて

5

はい、可能です。確かに接続するドメインが少なくとも1つはあります。真実でない場合は、信頼できるウェブサイト(google.com、facebook.comなど)を使用してみてください。 あなたは次のようにNSAppTransportSecurity設定を指定することで、このドメインのNSExceptionDomainsルールを追加する必要があります

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>google.com</key> 
      <dict> 
       <key>NSIncludesSubdomains</key> 
       <true/>     
       <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
       <false/> 
      </dict> 
     </dict> 
    </dict> 

はFYI、Facebookアプリは NSAppTransportSecurityの同じ構成を使用しています。

+0

上記の設定でTLS 1.2のWebサーバーに接続できましたが、承認プロセス中にWebサーバーから生成されたチケットは、Windowsアプリケーション用に生成されたチケットサーバーよりもずっと短くなっています(このWindowsチケット)、私はチケットを持つサーバーに別の呼び出しを投稿するとき、サーバーはチケットを認識できませんでした。私は何を間違えたの? – Aviva

1

可能な場合は、お試しください。

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

でも私はそれは不可能だと思う、

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionDomains</key> 
    <dict> 
     <key>testdomain.com</key> 
     <dict> 
      <key>NSIncludesSubdomains</key> 
      <false/> 
      <key>NSExceptionAllowInsecureHTTPSLoads</key> 
      <false/> 
      <key>NSExceptionRequiresForwardSecrecy</key> 
      <true/> 
      <key>NSExceptionMinimumTLSVersion</key> 
      <string>TLSv1.2</string> 
      <key>NSThirdPartyExceptionAllowInsecureHTTPSLoads</key> 
      <false/> 
      <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
      <true/> 
      <key>NSThirdPartyExceptionMinimumTLSVersion</key> 
      <string>TLSv1.2</string> 
      <key>NSRequiresCertificateTransparency</key> 
      <false/> 
     </dict> 

     ... 

    </dict> 
</dict> 
関連する問題