{"id":4252,"date":"2017-06-12T12:09:44","date_gmt":"2017-06-12T16:09:44","guid":{"rendered":"https:\/\/www.thesslstore.com\/blog\/?p=4252"},"modified":"2020-08-24T15:51:25","modified_gmt":"2020-08-24T19:51:25","slug":"crypto-ssl-improvements-high-sierra-ios-11","status":"publish","type":"post","link":"https:\/\/www.thesslstore.com\/blog\/crypto-ssl-improvements-high-sierra-ios-11\/","title":{"rendered":"Crypto and SSL Improvements in High Sierra and iOS 11"},"content":{"rendered":"<h2>Announced at WWDC: LibreSSL, TLS 1.3 Beta, New Revocation Checking, &amp; More<\/h2>\n<p>Last week Apple hosted their annual WWDC conference for developers. One of the big announcements was the new versions of their operating systems: High Sierra for macOS, iOS 11, tvOS 11, and watchOS 4.<span id=\"newline\"><\/span><\/p>\n<p>Apple took some time to talk about the improvements they have made to their platforms\u2019 cryptographic libraries and SSL\/TLS support.<\/p>\n<p>We have summarized all the changes below. The majority of these were announced at the session \u201cYour Apps and Evolving Network Security Standards.\u201d You can <a href=\"https:\/\/developer.apple.com\/videos\/play\/wwdc2017\/701\/\" rel=\"nofollow\">stream that session here<\/a> (Safari and iOS devices only).<\/p>\n<span style=\"display:none\" class=\"tl-placeholder-f-type-shortcode_12753\"><\/span>\n<h2>New Certificate Error UI<\/h2>\n<p>The certificate error UI has been redesigned in High Sierra\u2019s certificate viewer and in Safari.<\/p>\n<p>In Safari, the new error page has been designed to give a plain-English explanation of the problem without invoking jargon-y words like \u201cProtocol\u201d or \u201cSignature.\u201d There are a few similarities to Chrome\u2019s UI.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-4262 size-full\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/06\/0.jpg\" alt=\"ssl changes in high sierra and iOS 11\" width=\"720\" height=\"540\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/06\/0.jpg 720w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/06\/0-300x225.jpg 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/p>\n<p>The certificate viewer also has more specific messaging. In the screenshot below you can see that a warning is displayed for the specific trust error. In this case, the error reads \u201cThis certificate cannot be verified (weak digest algorithm)\u201d because it is signed with SHA-1.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4257\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/06\/safari-certificate-details.png\" alt=\"ssl changes in high sierra and iOS 11\" width=\"975\" height=\"619\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/06\/safari-certificate-details.png 975w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/06\/safari-certificate-details-300x190.png 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/06\/safari-certificate-details-768x488.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/p>\n<h2>Improved Revocation Checking<\/h2>\n<p>Apple unveiled a new revocation checking method for their platforms. It has not been given a proper name, but it operates similar to <a href=\"https:\/\/www.thesslstore.com\/blog\/what-is-onecrl\/\">Mozilla\u2019s OneCRL<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4256\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/06\/Revocation-checking.png\" alt=\"ssl changes in high sierra and iOS 11\" width=\"645\" height=\"408\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/06\/Revocation-checking.png 645w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/06\/Revocation-checking-300x190.png 300w\" sizes=\"auto, (max-width: 645px) 100vw, 645px\" \/><\/p>\n<p>Apple\u2019s method starts by scanning Certificate Transparency logs to discover certificates trusted on their platforms. It then queries the revocation status of discovered certificates from the Certificate Authorities. All the information about revoked certificates is bundled together and automatically distributed to client devices (like Macbooks and iPhones) silently and at regular intervals.<\/p>\n<p>When a TLS connection is made, the client checks to see if the certificates is marked as revoked in the centralized list. If it is marked as revoked, the client will then perform a live OCSP check to confirm that is accurate. Once confirmed, the client understands the certificate is revoked and refuses to make a connection. If the server provides a stapled OCSP response, it will use that as confirmation instead of performing the live check.<\/p>\n<p>If the certificate is not marked as revoked by the centralized list, then OCSP is not used.<\/p>\n<h2>Ditching OpenSSL For LibreSSL<\/h2>\n<p>In High Sierra, Apple <a href=\"https:\/\/twitter.com\/bitsweat\/status\/871951880498409472\" rel=\"nofollow\">has switched<\/a> SSL libraries from OpenSSL 0.9.8zh to LibreSSL 2.2.7. <a href=\"https:\/\/www.libressl.org\/\" rel=\"nofollow\">LibreSSL<\/a> is a fork of OpenSSL supported by OpenBSD.<\/p>\n<p>Secure Transport is Apple\u2019s own API for SSL\/TLS but it is primarily used for their first-party software. LibreSSL will serve as the SSL library for third-party software.<\/p>\n<p>This was not included in any WWDC sessions but has been observed by High Sierra beta users.<\/p>\n<h2>Expanded ATS Exemptions<\/h2>\n<p>Chris Wood, Secure Transports Engineer at Apple talked about the adoption and use of App Transport Security (ATS). Wood explained that Apple is expanding support for ATS exemptions after receiving developer feedback that transitioning was taking longer than expected.<\/p>\n<p>Wood noted that Apple is still fully committed to HTTPS via ATS and that developers reliance on these exemptions should be temporary while they work on a proper transition to HTTPS.<\/p>\n<p>New Apple OSes will now support ATS exemptions for the following frameworks: AVFoundation, WebView, and Webkit. Exemptions will also be configurable for local network connections (IP addresses and unqualified hostnames).<\/p>\n<p>Exemptions can be scoped to a specific domain name, or for the entire app. There will also be a way to indicate if you want to have a hostname\u2019s certificate checked for Certificate Transparency compliance.<\/p>\n<h2>TLS 1.3 Beta<\/h2>\n<p>The latest version of TLS, version 1.3, has not yet been finalized by the IETF. High Sierra and iOS 11 support a draft specification for TLS 1.3, which will be very similar to its final form. This allows developers to begin testing TLS 1.3 ahead of its official finalization.<\/p>\n<p>Chris Wood highlighted the faster handshake time of TLS 1.3. He shared Apple analytics which found that 10% of TLS connections made over cellular connection take 800ms or longer, and on Wifi 10% of connections took 500ms or longer. With TLS 1.3\u2019s more efficient handshake that time can be reduced by a third.<\/p>\n<p>You can enable TLS 1.3 on iOS 11 by downloading and <a href=\"developer.apple.com\/go\/?id=tls13-mobile-profile\" rel=\"nofollow\">installing a profile from this link<\/a> (Apple Developer account required).<\/p>\n<p>The TLS 1.3 draft can be enabled on macOS High Sierra with the following terminal command:<\/p>\n<p>defaults write \/Library\/Preferences\/com.apple.networkd tcp_connect_enable_tls13 1<\/p>\n<h2>Ending Support for SHA-1 and &lt;2048-bit Private Keys<\/h2>\n<p>Apple\u2019s platforms are catching up with industry-standard deprecations of aging hashing algorithms and cryptography.<\/p>\n<p>Certificates signed with SHA-1 and\/or using private keys under 2048-bits will no longer be trusted on High Sierra, iOS 11, watchOS 4, or tvOS 11.<\/p>\n<p>There will be some exemptions to this change. Certificates distributed through Mobile Device Management (MDM), or by the user through Safari, Mail, or Keychain Access can continue to use these weak hashes and keys. Client certificates (used in mutual authentication) are also unaffected.<\/p>\n<p>SHA-1 signed root certificates are also not affected as signature verification works differently for these certificates. Roots using &lt;2048-bit keys have already been removed from Apple platforms in 2015.<\/p>\n<p>These requirements should not cause any concern for those using modern, CA-signed certificates. SSL industry standards have forbidden these weak practices for some time.<\/p>\n<p>Developers will be able to identify this problem by a unique error code: \u201cInvalidCertChain (-9807).\u201d This will be returned in URLSession \/ URLConnection. Because Apple is totally dropping support in these cases, the only way to resolve the error is to replace your certificate.<\/p>\n<h2>Future Removal Of RC4 and 3-DES<\/h2>\n<p>Bailey Basile, Secure Transports Engineer, noted that two aging cipher algorithms, RC4 and 3-DES, would be removed from Apple platforms \u201cin the future.\u201d No specific date was given but developers should begin migrating away from these ciphers which have been known to be weak for quite some time.<\/p>\n<p>Basile also recommended avoiding AES in CBC mode (AES-CBC). The recommended ciphersuites are AES-GCM or ChaCha20-Poly1305.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Announced at WWDC: LibreSSL, TLS 1.3 Beta, New Revocation Checking, &amp; More Last week Apple hosted their annual WWDC conference for developers. One of the big announcements was the new&#8230;<\/p>\n","protected":false},"author":2,"featured_media":4255,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":"","tve_updated_post":"","tve_custom_css":"","tve_user_custom_css":"","tve_globals":{},"tcb2_ready":0,"tcb_editor_enabled":0,"tve_landing_page":"","_tve_header":"","_tve_footer":""},"categories":[17],"tags":[134,202,467,3195],"class_list":["post-4252","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-industry-lowdown","tag-apple","tag-ios","tag-ssltls","tag-wwdc","post-with-tags"],"views":31609,"jetpack_featured_media_url":"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2017\/06\/iStock-501581158.jpg","_links":{"self":[{"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/posts\/4252","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/comments?post=4252"}],"version-history":[{"count":0,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/posts\/4252\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/media\/4255"}],"wp:attachment":[{"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/media?parent=4252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/categories?post=4252"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/tags?post=4252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}