通过HTTPs和iPv6-Clarifications应用新的安全策略

时间:2015-09-25 05:22:41

标签: ios iphone wcf xamarin

我们现有iPhone / ipad应用程序,目前我们正在使用HTTP soap和Rest服务。 根据Apple的新规则和规定,我们是否需要将现有的HTTP服务转换为HTTP?

我们可以在服务器中使用自签名证书来使服务SSL启用吗? 如果我们使用自签名证书,苹果有问题吗?或者我们是否需要购买新的SSL证书?

目前我还通过ipv4地址访问webservices。 我需要将其更改为ipv6吗?

苹果什么时候开始审查这些条件?我想在下个月发布我的应用程序的更新版本。我是否需要在下一次构建时遵循这些规则?

2 个答案:

答案 0 :(得分:2)

就ATS(App Transport Security)而言,是对运行使用Xcode 7构建的应用程序的所有iOS 9设备的新要求。

https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/

  

使用NSURLConnection,CFURL或NSURLSession API的所有连接   在为iOS 9.0构建的应用程序中使用App Transport Security默认行为   或更高版本,以及OS X v10.11或更高版本。不遵循的连接   要求将失败。

但是您的应用程序可以根据需要通过向Info.plist添加例外来明确选择退出,至少在Apple更改之前,假设将来某个时候他们将强制执行100%合规,可能是iOS 10发布(?),可能更早(?)...

选择退出示例:

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

通过:Google广告开发者:http://googleadsdeveloper.blogspot.ch/2015/08/handling-app-transport-security-in-ios-9.html

注意:您可以通过OS-X 10.11安装使用“nscurl --ats-diagnostics”来测试您的应用将使用的URL上的ATS合规性。我强烈建议在应用(重新)提交之前这样做,以确保您不需要通过Info.plist请求例外。

除非您添加签名CA详细信息并信任它,或者再次通过Info.plist异常禁用ATS,否则自签名证书将不起作用。省去麻烦,只需购买符合要求的SSL证书。

  

目前我正在通过ipv4访问webservices   地址。我需要将其更改为ipv6吗?

不,您的服务器不需要运行IPv6,它们应该但这取决于您和您的托管服务提供商,因为一些移动运营商由于缺少IPv4地址而已迁移到IPv6,但是当然,他们正在为IPv4提供NAT转换。

您的应用IPv6 enabled/ready以便与这些提供商合作,否则您将获得拒绝应用。我强烈建议您阅读Apple doc

有几种情况可能会阻止应用支持IPv6并被拒绝:

  • 协议中嵌入的IP地址文字。许多通信协议,例如会话发起协议(SIP),文件传输协议(FTP),WebSockets和对等协议(P2PP),包括协议消息中的IP地址文字。请参阅使用高级网络框架,不要使用IP地址文字。
  • 配置文件中嵌入的IP地址文字。配置文件通常包含IP地址文字。请参阅不使用IP地址文字。 网络预检。许多应用程序尝试通过将IP地址文字传递给网络可访问性API来主动检查Internet连接或活动的Wi-Fi连接。
  • 使用低级网络API。某些应用程序直接使用套接字和其他原始网络API,例如gethostbyname,gethostbyname2和inet_aton。这些API容易被滥用或者只支持IPv4 - 例如,解析AF_INET地址系列的主机名,而不是AF_UNSPEC地址系列。
  • 使用小型地址系列存储容器。某些应用程序和网络库使用地址存储容器,例如uint32_t,in_addr和sockaddr_in,它们是32位或更小。

有关详细信息以及如何解决/解决上述问题,请参阅:  https://developer.apple.com/library/prerelease/ios/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW1

答案 1 :(得分:0)

iOS9要求服务器仅支持 TLSv1.2 并支持完美的前向安全性。

同样必须要求应用支持 IPV6 ,包括不使用硬编码的IP地址。

服务器上的证书必须由授权CA 签名。

新的安全功能,可阻止应用中的非HTTPS流量。但是,这是一项新功能,仅适用于今天使用 X Code 7和iOS 9 SDK构建的应用。它不会破坏现有应用。

对于非生产环境和调试中的应用,您可以从plist 禁用ATS

感谢。