安全与文件保险箱
使得OpenCore与众不同的正是其内在的安全性,所以下面我们来一起体验和设置OpenCore的这些安全性的特点:
FileVault
FileVault是macOS的内置驱动器加密,OpenCore的支持使得FileVault相对于Clover有了巨大的改进。
开始前,你需要先放入如下 .efi
驱动:
FwRuntimeServices.efi
对于不支持UEFI的主板,还需要加入 AppleUsbKbDxe.efi
不要在OpenCore中使用 VirtualSMC.efi,因为已经集成到了OC中(OC 0.5.5开始)。
在你的 config.plist中进行如下设置:
Misc -> Boot
PollAppleHotKeys
设置成 YES
Misc -> Security
AuthRestart
设置成YES(可选,开启后FileVault2的Authenticated restart可以不需要密码)
NVRAM -> Add -> 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
UIScale
设置成02
,为了防止在高分屏中,OC的UI太小
UEFI -> Input
KeySupport
设置成 YES(在需要使用OC内置的输入使用,如果用了UsbKbdxe则不需要开启)
UEFI -> Protocols
FirmwareVolume
设置成 YES对于Haswell以及更老的CPU芯片架构(包括X99)需要开启
HashServices
,对于出现SHA-1错误的一些系统也需要开启此项AppleSmcIo
设置为YES(用于替换 VirtualSMC.efi)
UEFI -> Quirks
ProvideConsoleGOP
设置为 YESRequestBootVarRouting
设置为 YES如果遇到了
Still waiting for root device
,则需要将ExitBootServicesDelay
设置为5
上面的工作都做完后,就可以在设置中开启FileVault了。
Vault
什么是vaulting(保险箱)?
保险箱是关于两样东西的,vault.plist 和vault.sig:
vault.plist: EFI的一个快照
vault.sig: 用于验证vault.plist
也可以看成是OpenCore的安全启动,在没有你的授权的情况下,任何人都无法改动
Vaulting的详细内容是vault.plist的一个256字节的RAS-2048密钥(或者说Hash),改内容会放进你的opencore.efi。这个密钥可以在编译之前写入 OpenCoreVault.c ,但是你如果是用的已经编译好的opencore.efi,则可以使用sign.command
来完成。
注意 nvram.plist 不会被装进保险箱,也就是说其他人任然可以修改你的NVRAM变量。
设置你的 config.plist:
开启
Misc -> Security -> RequireSignature
开启
Misc -> Security -> RequireVault
设置vault:
下载OpenCorePkg 然后打开CreateVault
文件夹,然后你会发现:
create_vault.sh
RsaTool
sign.command
最后一个就是我们关心的 sign.command
当我们运行这个命令的时候,它会在Utilities的同级目录寻找EFI文件夹,所以我们可以把EFI文件夹放到OpenCorePkg 文件夹中或者把Utilities 放到EFI文件夹中。
现在就可以准备执行sign.command
:
设置vault后如何关闭
如果使用过程中遇到了问题或者只是想要关掉vault,主要需要做如下设置:
获得一个新的OpenCore.efi
关闭
Misc -> Security -> RequireSignature
关闭
Misc -> Security -> RequireVault
ScanPolicy
这个设置是用于阻止扫描未信任的来源或者从其中启动,设置为0可以扫描所有可启动的设备,但是使用更精确的值会更好。
为了计算ScanPolicy的值,你需要做一点简单的16进制加法,计算完成后将其转换为10进制然后填进去即可,使用macOS的自带的计算器便可以计算,而且很方便。
0x00000001 (bit 0)
— OC_SCAN_FILE_SYSTEM_LOCK只扫描已知的文件系统,这一项不影响dmg文件的挂载。已知的文件系统通OC—SCAN_ALLOW_FS来配置
0x00000002 (bit 1)
— OC_SCAN_DEVICE_LOCK只扫描已知的设备,已知的设置通过OC_SCAN_ALLOW_DEVICE配置
0x00000100 (bit 8)
— OC_SCAN_ALLOW_FS_APFS允许扫描 APFS 文件系统
0x00000200 (bit 9)
— OC_SCAN_ALLOW_FS_HFS允许扫描 HFS 文件系统
0x00000400 (bit 10)
— OC_SCAN_ALLOW_FS_ESP允许扫描 EFI系统分区
0x00010000 (bit 16)
— OC_SCAN_ALLOW_DEVICE_SATA允许扫描 SATA 设备
0x00020000 (bit 17)
— OC_SCAN_ALLOW_DEVICE_SASEX允许扫描 SAS 和Mac NVMe 设备
0x00040000 (bit 18)
— OC_SCAN_ALLOW_DEVICE_SCSI允许扫描 SCSI 设备
0x00080000 (bit 19)
— OC_SCAN_ALLOW_DEVICE_NVME允许扫描 NVMe 设备
0x00100000 (bit 20)
— OC_SCAN_ALLOW_DEVICE_ATAPI允许扫描 CD/DVD 设备
0x00200000 (bit 21)
— OC_SCAN_ALLOW_DEVICE_USB允许扫描 USB 设备
0x00400000 (bit 22)
- OC_SCAN_ALLOW_DEVICE_FIREWIRE允许扫描 FireWire 设备
0x00800000 (bit 23)
— OC_SCAN_ALLOW_DEVICE_SDCARD允许扫描 读卡器设备
默认的情况下,ScanPolicy的值是0xF0103
(983,299) ,也就是下面几个值的和:
OC_SCAN_FILE_SYSTEM_LOCK
OC_SCAN_DEVICE_LOCK
OC_SCAN_ALLOW_FS_APFS
OC_SCAN_ALLOW_DEVICE_SATA
OC_SCAN_ALLOW_DEVICE_SASEX
OC_SCAN_ALLOW_DEVICE_SCSI
OC_SCAN_ALLOW_DEVICE_NVME
这里给出一个简单的例子,比如你想要添加OC_SCAN_ALLOW_DEVICE_USB,也就是允许扫描USB设备:
0x00200000
+ 0xF0103
= 0x2F0103
然后转换为10进制就是3,080,451
Last updated