<- ^ -> [Contents]
Предыдущий: 2.3 Общие принципы реализации Выше: 2. Идея реализации файловой Следующий: 3. Реализация файловой системы

2.4 Недостатки реализации ext2_crypt

Единственным, но очень существенным недостатком ext2_crypt, является неустойчивость этой системы к сбоям. Суть этого явления заключается в следующем: дело в том, чтобы работать с системой, необходимо расшифровать суперблок, а в файловой системе UNIX в процессе работы суперблок переодически записывается на диск. То есть, в какой-то момент времени на диске будет лежать расшифрованный суперблок. Следовательно, при отмонтировании файловой системы суперблок необходимо вновь зашифровать. Но и этого оказывается недостаточно, ведь если в момент работы с ext2_crypt перезагрузить компьютер, суперблок останется в незащищенном виде. Этого избежать не удалось, так как механизм перезаписи на диск достаточно сложен и затрагивает не только саму файловую систему ext2_crypt, но и другие модули ядра LINUX, и если производить в них изменения, то теряется модульность реализации. Однако, был воплощен в жизнь способ монтирования системы даже в случае такого сбоя: к стандартному набору полей было добавлено еще одно поле -- s_second_magic (оно находится в самом конце суперблока). При создании файловой системы зашифровывается весь суперблок, а при монтировании расшифровывается весь, за исключением последнего поля, то есть s_second_magic хранится всегда в зашифрованном виде. При распознавании пароля сначала проверяется s_magic на совпадение с EXT2_CRYPT_SUPER_MAGIC. Если имеет место совпадение, то расшифровывается s_second_magic и сравнивается с EXT2_CRYPT_SUPER_MAGIC. При совпадении происходит монтирование.

Общая схема проверки пароля указана на рисунке.


  
Рисунок 8: Общая схема проверки пароля
[IMAGE ]