为macOS的强化运行时和公证做好准备

苹果通过macOS Mojave引入了对强化运行时和公证服务的支持。 这两项服务旨在提高macOS上的应用程序安全性。 苹果最近表示


“从macOS 10.14.5开始,所有新的或更新的内核扩展以及从新开发人员到使用开发人员ID分发的所有软件都必须经过公证才能运行。 在未来的macOS版本中,默认情况下,所有软件都需要经过公证。”



今天将帮助您从Xamarin的角度理解新规则。
博客中的这篇文章

macOS的安全性


  • 代码签名-在macOS上, GateKeeper要求使用Apple开发人员帐户中的密钥对应用程序捆绑包进行加密签名。

    • 自macOS Lion(10.7)起,这是必需的。
    • 第一次就很难获得正确的密钥和证书。 因此,请参阅Xamarin.Mac签名文档
  • 强化运行时 -这是macOS Mojave(10.14)中引入的第二层安全性。 通过使用附加标志进行代码签名,Cocoa运行时将对应用程序运行施加许多限制。

    • 例如,一些限制包括拒绝执行自修改代码或加载未签名的动态库。
    • 可以通过使用特殊权利来选择每种限制类别。
  • 公证服务 -这是macOS Mojave(10.14)中也引入的第三层安全性。 这是一个代码扫描服务,它将扫描您的软件中是否包含恶意内容。 要通过公证扫描,您的应用程序必须已经选择进入强化运行时。

如何开始


要开始为这些新要求准备应用程序,请执行以下步骤:



配置您的权利


在我们为新选项实现IDE支持之前,需要两个手动步骤:



  1. 在文本编辑器中打开Xamarin.Mac应用程序.csproj并添加

    <UseHardenedRuntime>true</UseHardenedRuntime> 

    到发布部分
  2. 在文本编辑器中打开您的entitlements.plist文件并添加

     <key>com.apple.security.cs.allow-jit</key> <true/> 

启动您的应用程序并进行测试。 如果崩溃,则可能需要Apple提供的其他权利


公证您的应用


要进行公证,您需要执行以下两个步骤:


  1. 将您的构建上传到公证服务
  2. 订票到您的应用程序

你们都准备好了! 如果您对此过程有任何反馈意见,我们非常希望收到您的来信。 电子邮件david.ortinau@microsoft.com在GitHub上添加评论



大卫·奥蒂诺
大卫·奥蒂诺

移动开发人员工具高级程序经理

Source: https://habr.com/ru/post/zh-CN448804/


All Articles