Can someone help me to better understand the technical details of how full-disk encryption (FDE) works with FileVault2 on a Mac?
This is my layman's understanding...
- You turn on FileVault.
- macOS provides a Recovery Key.
- macOS takes your login password and somehow creates an "encryption key". (Presumably it takes your login password, "salts" it, runs it through some fancy algorithm, and produces a hashed value which serves as your "encryption key".)
- macOS uses this "encryption key" to encrypt your entire hard-drive.
- macOS also stores this "encryption key" somewhere on your hard-drive.
- Later on when you start up your Mac, and log in, macOS takes your login password, runs it through the same process it used earlier (e.g. salting + some algorithm) and creates a hashed value.
- macOS then compares this hashed value against the stored "encryption key" on your hard-drive.
- If the hashed value matches yours "encyption key" then macOS unlocks (i.e. decrypts) your hard-drive.
- If the hashed value doesn't match, then you cannot access your hard-drive or the data on it.
Does this sound accurate?
(The description above is the standard way that you would code a "Log in" screen for an application/website...)
This is my layman's understanding...
- You turn on FileVault.
- macOS provides a Recovery Key.
- macOS takes your login password and somehow creates an "encryption key". (Presumably it takes your login password, "salts" it, runs it through some fancy algorithm, and produces a hashed value which serves as your "encryption key".)
- macOS uses this "encryption key" to encrypt your entire hard-drive.
- macOS also stores this "encryption key" somewhere on your hard-drive.
- Later on when you start up your Mac, and log in, macOS takes your login password, runs it through the same process it used earlier (e.g. salting + some algorithm) and creates a hashed value.
- macOS then compares this hashed value against the stored "encryption key" on your hard-drive.
- If the hashed value matches yours "encyption key" then macOS unlocks (i.e. decrypts) your hard-drive.
- If the hashed value doesn't match, then you cannot access your hard-drive or the data on it.
Does this sound accurate?
(The description above is the standard way that you would code a "Log in" screen for an application/website...)