Алгоритм Гутмана
Алгоритм Гутмана — это метод безвозвратного удаления данных с магнитных жёстких дисков (HDD), основанный на многократной перезаписи информации с использованием определённых шаблонов (паттернов). Разработан американским специалистом в области компьютерной безопасности Питером Гутманом (Peter Gutmann) и впервые описан в его работе «Secure Deletion of Data from Magnetic and Solid-State Memory» (1996). Алгоритм предназначен для предотвращения восстановления конфиденциальных данных с помощью специализированного оборудования, способного считывать остаточную намагниченность (магнитные остатки) предыдущих записей.
История и предпосылки создания
В середине 1990-х годов, когда магнитные жёсткие диски стали основным носителем информации в компьютерах, возникла проблема безопасного удаления данных. Стандартные операции удаления файлов (например, через корзину) лишь помечали пространство как свободное, не стирая физические магнитные следы. Специализированные лаборатории, включая государственные, могли восстанавливать данные с помощью сканирующих магнитометров (например, магнитных силовых микроскопов), анализируя остаточную намагниченность дорожек.
Питер Гутман, профессор Оклендского университета (Новая Зеландия), исследовал физические принципы хранения данных на магнитных носителях и пришёл к выводу, что однократная перезапись случайными данными не гарантирует полного уничтожения информации. В своей работе он предложил метод, учитывающий особенности кодирования данных (например, MFM, RLL, PRML) и плотность записи на дисках того времени.
Принцип работы
Алгоритм Гутмана предполагает последовательную перезапись каждого сектора диска определённым набором из 35 проходов (passes). Каждый проход использует один из заранее заданных шаблонов, которые имитируют типичные сигналы, используемые в различных методах кодирования данных. Цель — многократно изменить магнитное состояние поверхности, чтобы устранить любые остаточные следы предыдущих записей.
Шаблоны перезаписи
Алгоритм включает 35 проходов, разделённых на четыре группы:
- Проходы 1–4: Случайные или псевдослучайные данные. Первые четыре прохода выполняются с использованием случайных шаблонов, чтобы нарушить исходную структуру данных.
- Проходы 5–31: 27 шаблонов, соответствующих различным методам кодирования (например, MFM, RLL, (1,7) RLL, (2,7) RLL). Каждый шаблон представляет собой последовательность битов, которая при записи создаёт определённый магнитный рисунок. Эти проходы нацелены на уничтожение следов, оставленных конкретными кодеками, использовавшимися в старых дисках.
- Проходы 32–35: Повторение первых четырёх проходов (случайные данные). Завершающие проходы закрепляют результат.
Полный цикл из 35 проходов выглядит следующим образом:
- Проход 1: случайные данные
- Проход 2: случайные данные
- Проход 3: случайные данные
- Проход 4: случайные данные
- Проход 5: 0x55 (01010101)
- Проход 6: 0xAA (10101010)
- Проход 7: 0x92 (10010010)
- Проход 8: 0x49 (01001001)
- Проход 9: 0x24 (00100100)
- Проход 10: 0x92 (10010010)
- Проход 11: 0x49 (01001001)
- Проход 12: 0x24 (00100100)
- Проход 13: 0x92 (10010010)
- Проход 14: 0x49 (01001001)
- Проход 15: 0x24 (00100100)
- Проход 16: 0x92 (10010010)
- Проход 17: 0x49 (01001001)
- Проход 18: 0x24 (00100100)
- Проход 19: 0x92 (10010010)
- Проход 20: 0x49 (01001001)
- Проход 21: 0x24 (00100100)
- Проход 22: 0x92 (10010010)
- Проход 23: 0x49 (01001001)
- Проход 24: 0x24 (00100100)
- Проход 25: 0x92 (10010010)
- Проход 26: 0x49 (01001001)
- Проход 27: 0x24 (00100100)
- Проход 28: 0x92 (10010010)
- Проход 29: 0x49 (01001001)
- Проход 30: 0x24 (00100100)
- Проход 31: 0x92 (10010010)
- Проход 32: случайные данные
- Проход 33: случайные данные
- Проход 34: случайные данные
- Проход 35: случайные данные
Шаблоны 5–31 основаны на исследовании Гутманом типичных кодов, используемых в контроллерах жёстких дисков. Например, шаблон 0x55 (01010101) соответствует минимальному расстоянию между переходами намагниченности, а 0xAA (10101010) — максимальному.
Применение и эффективность
Алгоритм Гутмана применяется в программных утилитах для безопасного удаления данных, таких как:
- Darik's Boot and Nuke (DBAN) — свободное программное обеспечение, использующее алгоритм как один из методов.
- Eraser — утилита для Windows, поддерживающая множество стандартов удаления.
- Shred (в составе GNU Coreutils) — команда Linux, которая может выполнять многократную перезапись.
- BCWipe — коммерческое решение для Windows и Unix.
В сфере информационной безопасности алгоритм использовался для уничтожения данных на жёстких дисках, выводимых из эксплуатации, особенно в государственных учреждениях и банках, где требовалась высокая степень защиты от восстановления.
Критика и устаревание
Современные исследования и практика показали, что алгоритм Гутмана избыточен для большинства современных жёстких дисков. Основные причины:
- Высокая плотность записи. Современные HDD (начиная с 2000-х годов) используют технологии PRML (Partial-Response Maximum-Likelihood) и TDMR (Two-Dimensional Magnetic Recording), которые делают остаточные магнитные следы практически нечитаемыми даже для специализированного оборудования. Однократная перезапись случайными данными (например, по стандарту NIST SP 800-88) считается достаточной для уничтожения информации на современных дисках.
- Время выполнения. 35-проходная перезапись требует значительно больше времени (в десятки раз дольше, чем однократная перезапись), что делает её непрактичной для массового уничтожения данных.
- Неприменимость к SSD. Алгоритм Гутмана разработан для магнитных носителей и неэффективен для твердотельных накопителей (SSD), где данные хранятся в ячейках флеш-памяти. Для SSD используются команды ATA Secure Erase или методы шифрования.
- Изменение методов кодирования. Шаблоны, предложенные Гутманом, были ориентированы на кодеки, использовавшиеся в 1980-х и начале 1990-х годов. Современные диски используют другие схемы кодирования, и эти шаблоны могут не соответствовать физическим процессам записи.
Сам Питер Гутман в 2001 году отметил, что его алгоритм был предназначен для дисков с низкой плотностью записи и что для современных носителей достаточно однократной перезаписи. В официальных рекомендациях (например, от NIST, NSA, ЦБ РФ) для HDD обычно указывается один-три прохода (например, запись нулей, затем единиц, затем случайных данных).
Сравнение с другими методами
Алгоритм Гутмана часто сравнивают с другими методами безопасного удаления:
| Метод | Количество проходов | Применимость | Скорость |
|---|---|---|---|
| Однократная перезапись (нули или случайные данные) | 1 | HDD, SSD (с ATA Secure Erase) | Высокая |
| Стандарт DoD 5220.22-M (США) | 3 (нули, единицы, случайные) | HDD | Средняя |
| Стандарт NIST SP 800-88 | 1 (для HDD) | HDD, SSD | Высокая |
| Алгоритм Гутмана | 35 | HDD (устаревшие) | Очень низкая |
| Физическое уничтожение (дробление, размагничивание) | — | Любые носители | Мгновенно |
Интересные факты
- Алгоритм Гутмана лёг в основу популярного мифа о том, что для безопасного удаления данных с любого жёсткого диска необходимо 35 проходов. На практике это верно лишь для очень старых дисков (1980-х годов).
- В некоторых утилитах (например, DBAN) алгоритм Гутмана реализован как опция «Gutmann Wipe», но разработчики часто предупреждают, что он не рекомендуется для современных дисков.
- Питер Гутман также известен своими работами в области криптографии, в частности, анализом протоколов шифрования PGP и SSL.
Источники
- Gutmann, P. (1996). Secure Deletion of Data from Magnetic and Solid-State Memory. Proceedings of the 6th USENIX Security Symposium.
- NIST Special Publication 800-88 Rev. 1 (2014). Guidelines for Media Sanitization.
- Hughes, G. F., Coughlin, T. (2007). Secure Erase of Magnetic and Solid-State Memory. IEEE Transactions on Magnetics.
- Документация к утилите Darik's Boot and Nuke (DBAN) версии 2.2.7.
- Стандарт Министерства обороны США DoD 5220.22-M (National Industrial Security Program Operating Manual).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →