Skip to content
Elliot Jordan edited this page Feb 27, 2024 · 11 revisions

This page contains common questions relating to aspects of Escrow Buddy usage.


Basic usage

How long after login should the recovery key appear in my MDM?

After login, the key will be stored locally until the next SecurityInfo MDM command. The response to this command will store the recovery key in MDM. The timing of this command/response varies by MDM vendor. See the Troubleshooting section below for details.

The method outlined in this blog post may be of interest to those who wish to minimize the time between FileVault key generation and escrow.

What happens to the old recovery keys I have stored elsewhere?

Once a new key is generated, the old key is no longer valid. You can discard them.

What if a user wants to have a copy of their own key?

Power users can use the fdesetup binary to generate a new key visible to them, which will also be escrowed to MDM.

sudo fdesetup changerecovery -personal

Is there any harm in leaving Escrow Buddy installed after the FileVault key has been escrowed successfully?

No, although you may want to be proactive about testing new releases of macOS to ensure Escrow Buddy (and any other authorization plugins you use) continues working as expected.

Why do I need to set the GenerateNewKey preference? Should I bundle it with the install itself?

MDM administrators may want to deploy Escrow Buddy to managed Macs that already have valid FileVault keys escrowed. In this situation, it would be undesirable and unnecessary to generate and escrow a new key.

Additionally, some Macs may need a FileVault key generated and escrowed at multiple times in its lifecycle. Installing Escrow Buddy each time would be unnecessary, if it was already previously installed and working.

Therefore, we recommend keeping the Escrow Buddy install logic separate from (but parallel to) the GenerateNewKey configuration action. See the Examples section for tips on doing this in specific MDMs.

Can I force users to log out in order to generate a new key?

Escrow Buddy does not include any user interface or notifications, and we don't recommend wrapping it in one. If you already have other enforcement active that requires a logout or restart (for example, timely installation of macOS updates), you probably don't need to do anything extra to get users to log out.

However, a few reminder and enforcement options are outlined in this blog post.


Advanced usage

How do I view Escrow Buddy's logs?

Escrow Buddy logs useful information to the macOS unified log during the login process. To view this in real time (typically while connected via SSH from another device), use this command:

log stream --level debug --predicate 'subsystem == "com.netflix.Escrow-Buddy"'

Or to view the logs retroactively, use this command:

log show --predicate 'subsystem == "com.netflix.Escrow-Buddy"' --style syslog --debug --info --last 24h

(Adjust 24h to the desired timeframe.)

If failures are happening at installation/deployment time rather that at login time, check for clues in /var/log/install.log as you would with any macOS installer.

After a macOS update/upgrade, Escrow Buddy is no longer in the authorization database. Why?

Some macOS updates and upgrades reset the authorization database to its default state, which will deactivate Escrow Buddy and prevent FileVault key generation upon next login.

Although this behavior adds friction to administering Escrow Buddy on your Macs, it's actually a great opportunity to test new macOS versions and ensure Escrow Buddy (or any authorization plugin) works as expected before reflexively re-enabling.

Once you've tested and are confident that Escrow Buddy works with the versions of macOS your company Macs are running, you can run this command (in root context) to re-enable Escrow Buddy in the authorization database:

/Library/Security/SecurityAgentPlugins/Escrow\ Buddy.bundle/Contents/Resources/AuthDBSetup.sh

Tips for configuring this on various MDMs can be found in the Examples wiki page.

Also see this related blog post: Managing login mechanisms in the macOS authorization database

Why doesn't Escrow Buddy include a launchdaemon that fixes the authdb automatically after macOS upgrades?

As of macOS Ventura, installation of background items like launchdaemons cause a user-visible notification to appear. Properly managing this notification depends on things well outside of Escrow Buddy's core focus, so we opted to keep things simple and focused.

However, if you're interested in building your own daemon for authdb maintenance, executing the above-referenced AuthDBSetup.sh script from your daemon might be worth trying.

Will Escrow Buddy automatically update on my managed Macs when new versions are available?

No. You'll need to download, test, and deploy new versions. Consider using these AutoPkg recipes to streamline this process.

Can I use Escrow Buddy to change from institutional to personal recovery keys?

Yes! Since Apple no longer recommends institutional recovery keys (IRK), administrators can use Escrow Buddy as a means to switch those Macs to use personal recovery keys (PRK) instead. Follow the Deployment steps and set GenerateNewKey to true on Macs with IRKs, and a new PRK will be generated and escrowed at next login.

Does Escrow Buddy call back to my MDM to determine which Macs need a key?

No, Escrow Buddy doesn't communicate to your MDM at all.

For input, Escrow Buddy relies on (among other things) the value of the GenerateNewKey preference: if that preference is True upon login, Escrow Buddy generates a new key. If that preference is False or unset, Escrow Buddy takes no action. For MDMs that support criteria-based dynamic scripting, you can set the GenerateNewKey preference based on the escrow status of each Mac in the MDM, and Escrow Buddy will act accordingly.

For output, Escrow Buddy simply provides the needed credentials in-memory to fdesetup. The work of actually generating the new personal recovery key and escrowing to the MDM is handled entirely by macOS first-party mechanisms, not by Escrow Buddy directly.


MDMs and other tools

Does Escrow Buddy work with any MDM?

Yes, as long as your MDM meets these requirements:

  • supports FileVault recovery key escrow
  • can deploy a configuration profile with the FDERecoveryKeyEscrow payload
  • has the ability to install packages and run shell scripts

Does Escrow Buddy support escrowing keys to a Crypt Server or non-MDM location?

No. If you're using Crypt, you're already benefitting from automatic key remediation at the login window, and you don't need to use Escrow Buddy. Escrow Buddy is specifically for organizations who escrow their FileVault recovery keys in MDM.

Can I use the standalone Crypt agent in place of Escrow Buddy?

Yes! If you're considering implementing Crypt in the future and want to get a head start on its deployment, the Crypt agent includes Escrow Buddy's key remediation feature, along with numerous other features like FileVault enablement and key rotation after usage.

Escrow Buddy is meant for organizations who only want the basic feature of remediating missing recovery keys at the login window, without the codebase and documentation associated with other features of Crypt.

Does Escrow Buddy work with other authorization plugins like Jamf Connect?

Yes! Escrow Buddy should be able to coexist with most other authorization plugins, as long as those plugins don't also generate/rotate FileVault recovery keys (which as of version 2.24.0, Jamf Connect does not).

What if my MDM cannot run scripts or install packages?

If your MDM doesn't have a local agent that it uses for running scripts and installing packages, you may want to look into using the InstallEnterpriseApplication command to install a tool like Munki during your Mac provisioning process. Munki can be used in tandem with an MDM to deploy software and scripts. See specific details here.


Security

Does Escrow Buddy access the FileVault Recovery Key?

No, Escrow Buddy does not need or seek access to the recovery key itself; that key is stored by fdesetup and retrieved during the response to the MDM SecurityInfo command, as mentioned here.

Does Escrow Buddy store the user's password?

Escrow Buddy sends the username and password provided at macOS login directly (and only) to the fdesetup command for purposes of generating a new personal recovery key. Escrow Buddy does not store these credentials or use them for anything other than authorizing that task.

Importantly, all macOS authorization plugins including Escrow Buddy have the capability to access certain data within the authorization "environment." Some of these are documented in Apple's Authorization Name Tags documentation, including kAuthorizationEnvironmentUsername and kAuthorizationEnvironmentPassword. To fully validate the behavior of Escrow Buddy or any open source authorization plugin, you or your company should audit the source code. (Hint: search for the constants listed in Apple's Authorization Name Tags documentation, then follow the variables they're assigned to.)

Is Escrow Buddy signed and notarized?

Yes, the installer package published on the GitHub releases page is signed and notarized by the Mac Admins Open Source (T4SK8ZXCXG) development team.

Clone this wiki locally