{"id":29831,"date":"2020-08-19T16:59:24","date_gmt":"2020-08-19T20:59:24","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=29831"},"modified":"2021-06-29T15:37:01","modified_gmt":"2021-06-29T19:37:01","slug":"apple-silicon-macs-to-require-signed-code","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2020\/08\/19\/apple-silicon-macs-to-require-signed-code\/","title":{"rendered":"Apple Silicon Macs to Require Signed Code"},"content":{"rendered":"<p><a href=\"https:\/\/developer.apple.com\/documentation\/macos-release-notes\/macos-big-sur-11-universal-apps-beta-release-notes\">Apple<\/a>:<\/p>\n<blockquote cite=\"https:\/\/developer.apple.com\/documentation\/macos-release-notes\/macos-big-sur-11-universal-apps-beta-release-notes\">\n<p>New in macOS 11 on Apple silicon Mac computers, and starting in the next macOS Big Sur 11 beta, the operating system will enforce that any executable must be signed with a valid signature before it&rsquo;s allowed to run. There isn&rsquo;t a specific identity requirement for this signature: a simple ad-hoc signature issued locally is sufficient, which includes signatures which are now generated automatically by the linker. This new behavior doesn&rsquo;t change the long-established policy that our users and developers can run arbitrary code on their Macs, and is designed to simplify the execution policies on Apple silicon Mac computers and enable the system to better detect code modifications.<\/p>\n<p>This new policy doesn&rsquo;t apply to translated x86 binaries running under Rosetta, nor does it apply to macOS 11 running on Intel platforms.<\/p>\n<\/blockquote>\n<p>For Mail plug-ins, this is the third time signed code has become a requirement, with other times in between where it was forbidden.<\/p>\n\n<p id=\"apple-silicon-macs-to-require-signed-code-update-2020-08-24\">Update (2020-08-24): See also: <a href=\"https:\/\/news.ycombinator.com\/item?id=24217388\">Hacker News<\/a>, <a href=\"https:\/\/www.reddit.com\/r\/apple\/comments\/icyif5\/apple_silicon_macs_to_require_signed_code\/\">Reddit<\/a>.<\/p>\n\n<p><a href=\"https:\/\/twitter.com\/tylerhall\/status\/1296781052678201346\">Tyler Hall<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/tylerhall\/status\/1296781052678201346\">\n<p>I wish they&rsquo;d tell us specifically what attack vectors they&rsquo;re protecting us from. Just a simple, real-world justification for why this is needed would go a long way towards assuaging our fears. Instead, it&rsquo;s just &ldquo;Trust us.&rdquo;<\/p>\n<\/blockquote>\n\n<p>I&rsquo;ve been trying to <a href=\"https:\/\/twitter.com\/mjtsai\/status\/1296274960856612870\">figure out<\/a> the benefits, and as far I can tell they only apply in very narrow circumstances. However, unless I&rsquo;m missing something, the cost of requiring signed code is also very low.<\/p>\n\n<p><a href=\"https:\/\/eclecticlight.co\/2020\/08\/22\/apple-silicon-macs-will-require-signed-code\/\">Howard Oakley<\/a>:<\/p>\n<blockquote cite=\"https:\/\/eclecticlight.co\/2020\/08\/22\/apple-silicon-macs-will-require-signed-code\/\">\n<p>Unlike developer signing and notarization, this isn&rsquo;t intended to prevent any modifications being made to executable code. Malicious software could always re-sign modified code using another signature, although in doing so it would lose access to resources which were tied to the original signing identity, of course. But it&rsquo;s intended to significantly reduce the surface area of attacks.<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2020\/08\/19\/cant-you-just-right-click\/\">Can&rsquo;t You Just Right-Click?<\/a><\/li>\n<\/ul>\n\n<p id=\"apple-silicon-macs-to-require-signed-code-update-2021-06-29\">Update (2021-06-29): <a href=\"https:\/\/twitter.com\/xoofx\/status\/1407276068051034113\">Alexandre Mutel<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/xoofx\/status\/1407276068051034113\">\n<p>The Burst team is fighting M1 support, awful platform to work with, requiring us to codesign native code... so every single piece of code that Burst produce has to go through a stupid codesign external exe to patch it... currently making Burst compiler x5 slower* on M1<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Apple: New in macOS 11 on Apple silicon Mac computers, and starting in the next macOS Big Sur 11 beta, the operating system will enforce that any executable must be signed with a valid signature before it&rsquo;s allowed to run. There isn&rsquo;t a specific identity requirement for this signature: a simple ad-hoc signature issued locally [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2020-08-19T20:59:27Z","apple_news_api_id":"5a794ef9-8e37-41eb-821f-5e7e323070ea","apple_news_api_modified_at":"2021-06-29T19:37:05Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAw==","apple_news_api_share_url":"https:\/\/apple.news\/AWnlO-Y43QeuCH15-MjBw6g","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[126,1941,466,255,30,1891,71,1227],"class_list":["post-29831","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-applemail","tag-arm-macs","tag-codesigning","tag-compiler","tag-mac","tag-macos-11-0","tag-programming","tag-top-posts"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/29831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=29831"}],"version-history":[{"count":3,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/29831\/revisions"}],"predecessor-version":[{"id":32961,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/29831\/revisions\/32961"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=29831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=29831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=29831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}