FileVault Recovery-Key Escrow

Athena can hold the FileVault personal recovery key of each Mac you manage. From a Mac's FileVault tab you have the Mac generate a new personal recovery key, Athena stores it encrypted on your own server, and an authorised administrator can reveal it later with a reason. Every reveal is audited. This is the macOS counterpart of BitLocker recovery-key escrow. Keys never leave your network, so it works on an air-gapped network.

Scope
  • macOS agents only, version 1.2.123 or later. On a Windows or Linux agent the FileVault tab only explains that the feature is for macOS. To update agents, see Agent Binaries & Updates.
  • Licensed with BitLocker. FileVault escrow is not a separate product. It is included in the BitLocker module (module.bitlocker). Without it, nothing is sent to your Macs. See Separately licensed modules.
  • FileVault must already be on. Athena escrows and rotates the personal recovery key of a Mac that is already encrypted. It does not turn FileVault on or off.
  • The personal recovery key only. Athena does not create or manage an institutional recovery key.

How it works#

macOS never hands out a Mac's existing personal recovery key. The only way to get a key into Athena is to have the Mac make a new one. So in Athena, escrowing a key and rotating it are the same action:

  1. You click Escrow / rotate key on the Mac's FileVault tab.
  2. The agent asks macOS for a new personal recovery key. From that moment the Mac's previous personal recovery key no longer works, including any copy a user wrote down.
  3. The agent sends the new key to the server, which stores it encrypted and confirms. The tab updates by itself and shows "The new FileVault recovery key is escrowed."

macOS requires authentication for a rotation, even for an agent running as root. The first time, you supply it (see First escrow). After that, Athena authenticates every later rotation with the key it already holds, so nothing else is needed.

Athena keeps only the current key for each Mac. There is no key history, because a rotated-away key no longer unlocks anything.

Rotating replaces iCloud recovery

If the Mac uses iCloud (an Apple Account) to unlock or reset FileVault, rotating removes that option. The new personal recovery key, escrowed in Athena, becomes the Mac's recovery method. The rotate dialog shows this warning every time.

The FileVault tab#

Open Agents, select a Mac, and choose the FileVault tab (right after BitLocker). The tab is headed Personal recovery key and shows one of these:

The tab showsMeaning
No FileVault recovery key is escrowed in Athena for this Mac.No key has been escrowed yet. Use Escrow / rotate key to do the first escrow.
Escrowed with a date and time, and a Reveal buttonAthena holds the Mac's current personal recovery key. The time is when it was escrowed. Reveal appears only if you may reveal keys.
Last rotation failed with a time and a reasonThe latest rotation did not happen. The Mac's previous key, and the key Athena holds (if any), are still valid. See When a rotation fails.

The Escrow / rotate key button appears only if you may manage keys (see Permissions). The tab updates by itself when the Mac reports a new key or a failed rotation. You don't need to reload the page.

The Boot & Security section of the agent's inventory also shows the Mac's FileVault state. With agent 1.2.123 or later it shows the state (On, Off, Encrypting, Decrypting or Enable pending, with a percentage while it is encrypting or decrypting), plus the rows FileVault Unlock Users, Personal Recovery Key, Institutional Recovery Key and Deferred Enablement. Those rows are inventory only. The FileVault tab is where escrow happens.

First escrow#

When Athena holds no key for the Mac yet, the Escrow / rotate recovery key dialog asks for one of these, because macOS will not rotate without it:

Then click Rotate now (it stays disabled until the second field is filled in). What you type is sent to the Mac once for this rotation. It is never stored, never logged and never written to an audit entry, and it is cleared when the dialog closes.

Rotating a key#

Once a key is escrowed, the dialog says "Athena authenticates with the key it already holds; nothing else is needed." Click Rotate now. Rotate after you have revealed a key to someone, for example, so the key they saw stops working.

After you click Rotate now you see one of these messages:

MessageMeaning
Sent: the Mac is rotating its recovery key.The request reached the Mac. The tab updates when the new key is escrowed, or shows the reason if the rotation fails.
No key is escrowed yet: enter the current recovery key or an unlock user's password.The first escrow needs a credential. See First escrow.
The escrowed key could not be decrypted: enter the current recovery key or an unlock user's password.See Troubleshooting.
Nothing was sent: the Mac is offline or not licensed.The Mac is not connected, or your licence does not include the BitLocker module. Nothing changed on the Mac.
You are not allowed to rotate recovery keys.Your role lacks Manage BitLocker.

A new key is never lost

The agent saves the new key on the Mac, readable by root only, before it sends it, and deletes that copy only after the server confirms it has stored the key. If the confirmation is lost (for example the network drops or the server restarts), the server asks for the key again the next time the agent connects, and the agent sends it. While a key is waiting for confirmation, the agent refuses a new rotation and re-sends the waiting key instead, so a second rotation can never replace a key the server does not have yet.

When a rotation fails

If macOS does not rotate the key, the Mac's previous key stays valid, you see "The Mac could not rotate its FileVault recovery key; the previous key is still valid.", and the tab shows Last rotation failed with one of these reasons:

ReasonWhat to do
FileVault is off.Turn FileVault on for the Mac first. Athena does not do this.
FileVault is busy (encrypting or decrypting).Wait until the Boot & Security FileVault state is On, then rotate again.
Authentication failed: the recovery key or the user's password was not accepted.Check the key or the password, and that the user is a FileVault unlock user.
fdesetup rejected the input. / fdesetup could not change the recovery key. / fdesetup failed (exit N).macOS refused the change. Any extra detail macOS gave follows the reason.
This agent does not support FileVault escrow - update the macOS agent to 1.2.123 or later.Update the agent. See Agent Binaries & Updates.

A successful rotation clears the Last rotation failed line.

Revealing a key#

To read a Mac's escrowed key to a user, for example at the FileVault unlock screen, click Reveal on its FileVault tab. Revealing follows the same rules as a BitLocker recovery-password reveal:

Rotate after you reveal

Once a key has been read out, anyone who saw it can unlock that Mac. Click Escrow / rotate key afterwards to replace it. Athena authenticates with the key it holds, so no credential is needed.

Permissions#

FileVault has no permissions of its own. It uses the BitLocker permissions, so one role setup covers disk encryption on Windows and macOS. See BitLocker permissions and Roles & Permissions.

PermissionKeyDefault rolesOn the FileVault tab
View BitLockerbitlocker.viewHelpdesk, Operator, AdminSee the tab and the escrow state (never the key).
Manage BitLockerbitlocker.manageOperator, AdminEscrow / rotate key.
Reveal BitLocker recovery keysbitlocker.revealAdminReveal.

How keys are stored#

Escrowed FileVault keys are encrypted on your Athena server with the same protection as BitLocker recovery passwords, which depends on the server's certificate authority. A key is decrypted only for a reveal or to authenticate a rotation. Keys and credentials are never written to logs or audit entries. See Certificates & PKI and back up the CA together with the database.

Audit events#

FileVault actions appear in the audit log with these event types. No row ever contains a recovery key or a credential.

Event typeSeverityWritten when
filevault.key-rotation-requestedWarningSomeone clicks Rotate now (or calls the API), whatever the outcome. It records the user and how the rotation was authenticated: escrowed-key, recovery-key or user-password (with the unlock user's name).
filevault.key-escrowedInformationThe server stored a Mac's new key. The description notes that the previous key no longer unlocks the Mac. The user is system.
filevault.key-rotation-failedWarningThe Mac reported a failed rotation, with the reason. The user is system.
filevault.key-revealedWarningA key was revealed, with the user and the reason.
filevault.key-reveal-failedWarningA reveal was refused (no permission, no reason, no escrowed key, or the key could not be decrypted).

REST API#

Everything the tab does is also available over the REST API (see API Reference and API Tokens). Responses use Athena's usual envelope, with the result in data. {id} is the agent's id.

Method & pathPermissionDescription
GET /api/filevault/agents/{id}/escrowbitlocker.viewEscrow state, never the key: agentId, hasKey, escrowedAt, lastError, lastErrorAt. All empty when nothing has been escrowed.
POST /api/filevault/agents/{id}/rotatebitlocker.manageEscrow or rotate. Body {"username": "…", "secret": "…"}: secret alone is the Mac's current personal recovery key; with username it is that unlock user's password; send an empty body to authenticate with the escrowed key. 200 with data = "Sent"; 400 no key is escrowed yet and no credential was given; 500 the escrowed key could not be decrypted; 403 missing permission; 409 nothing was sent (the agent is offline, not a Mac, or the module is not licensed).
POST /api/filevault/agents/{id}/revealbitlocker.revealBody {"reason": "…"}. 200 with the key in data (sent with Cache-Control: no-store); 400 reason missing; 404 no key is escrowed; 403 missing permission; 500 the reveal could not be audited (key withheld) or the key could not be decrypted.

For example, to rotate a Mac's key using the key Athena already holds:

curl -k -X POST -H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
  -d '{}' \
  "https://<server>:8443/api/filevault/agents/<agent-id>/rotate"

A 200 means the request reached the Mac. Check GET …/escrow afterwards: a new escrowedAt means the key was escrowed, and a new lastError means the rotation failed. There is no PowerShell cmdlet for FileVault escrow in this release.

Troubleshooting#

SymptomWhat to check
No Escrow / rotate key buttonYour role lacks bitlocker.manage (Operator and Admin have it by default).
No Reveal buttonNo key is escrowed yet, or your role lacks bitlocker.reveal (Admin by default).
Rotate now is greyed outThis is the first escrow: enter the current recovery key, or an unlock user's name and password.
"Nothing was sent: the Mac is offline or not licensed."The agent must be connected, and the licence must include the BitLocker module. See Agent Status and Licensing.
"The escrowed key could not be decrypted…" when rotating, or "The stored recovery key could not be decrypted." when revealingThe server's CA key material is not the one that protected the key (for example the PKI was replaced). Restore the matching CA, or rotate with a credential (the current recovery key or an unlock user's password) to escrow a fresh key.
"The reveal could not be audited, so the key was withheld."Athena could not write the audit entry. Check the server's audit and database health, then try again.
The user's written-down recovery key no longer worksExpected after any rotation. Reveal the key Athena holds.
The Mac no longer offers iCloud to unlock or reset FileVaultExpected after a rotation. The key escrowed in Athena is now the recovery method.