Когда на самом деле происходит шифрование в зашифрованных томах MacOS/OS X?

Я заметил своего рода стратегию ленивого/последующего шифрования в MacOS/OS X с включенным FileVault и в зашифрованных резервных копиях Time Machine, и мне любопытно, когда происходит фактическое шифрование.

  • Когда я копирую видео с незашифрованных внешних томов USB 3 на зашифрованный том FileVault, моя скорость записи составляет 100+ МБ/с. Однако я не думаю, что мой macbook (Intel Core i7-4980) способен так быстро шифровать на лету.
  • Когда я завершаю резервное копирование машины времени, происходит длительный шаг «шифрования ...», но он продолжается без проблем после размонтирования / повторного монтирования. Это более очевидно, когда происходит шифрование, но остаются ли данные открытыми до завершения шифрования?

Когда происходит фактическое шифрование? Есть ли период времени, когда мои файлы уязвимы в незашифрованном виде?

Ответы (2)

На самом деле ваш Mac способен так быстро шифровать (возможно, вы путаете его с шифрованием + сжатием ).

Ваш процессор имеет специальный набор инструкций Intel AES-NI , специально разработанный для оптимизации скорости шифрования. Глядя на некоторые тесты производительности для этого процессора, тест AES показывает колоссальные 8,87 ГБ/с для многоядерных и 2,94 ГБ/с для одноядерных. Здесь нет узкого места, но я могу себе представить некоторую задержку при обработке тысяч маленьких файлов вместо одного большого, как в тесте.

Чтобы устранить путаницу в вашем вопросе:

  • При входе в систему шифрование происходит «на лету», когда вы читаете/записываете откуда угодно на зашифрованный диск FileVault2.
  • Машина времени передает данные в незашифрованном виде на внешний диск, а затем шифрует. Я предполагаю, что они разработали его таким образом, чтобы быть более отказоустойчивым с более медленными привередливыми внешними носителями.
Насколько я знаю, нет «задержки при обработке тысяч маленьких файлов», поскольку шифруется весь том, а не отдельные файлы.

Когда вы шифруете или расшифровываете, macOS преобразует все данные в томе основного хранилища. Пока этот процесс не завершен, некоторые данные в разделе могут оставаться незашифрованными, т. е. незащищенными. Процесс можно приостановить, например, при выключении системы. Он автоматически продолжится при загрузке. Чтобы проверить текущий статус шифрования, вы можете использовать:

diskutil cs list

или

fdesetup status

Шифрование данных на лету вполне возможно, и обычно вы не заметите снижения производительности.