СИСТЕМА И СПОСОБ ИЗМЕНЕНИЯ МАСКИ ЗАШИФРОВАННОЙ ОБЛАСТИ ПРИ ВОЗНИКНОВЕНИИ СБОЯ В КОМПЬЮТЕРНОЙ СИСТЕМЕ
SYSTEM AND METHOD FOR CHANGING MASK OF ENCRYPTED REGION DURING BREAKDOWN IN COMPUTER SYSTEM

Область техники
Изобретение относится к компьютерным системам и более конкретно - к системам и способам защиты компьютерных устройств и данных конечных пользователей от несанкционированного доступа.
Уровень техники
В современном обществе требования к сохранности конфиденциальных данных постоянно возрастают. Количество случаев краж и потерь данных постоянно возрастает. Тем не менее, даже в таких случаях шифрование данных позволяет предотвратить прочтение конфиденциальной информации. Одним из наиболее защищенных типов шифрования является полнодисковое шифрование, при котором все содержимое диска шифруется как единое целое. В таком случае доступ к отдельным файлам зашифрованного диска осуществляется с помощью расшифровки данных «на лету» - расшифровываются отдельные секторы диска, содержащие запрашиваемый файл, в то время как остальная часть диска остается зашифрованной. При завершении работы с файлом, его зашифровывают также «на лету» - файл разбивают на части, равные объему сектора диска, которые зашифровывают и сохраняют на диск.
Процесс первичного шифрования всего диска требует значительных вычислительных ресурсов процессора, вызывает повышенный износ диска и может занимать продолжительное время (от нескольких часов до нескольких суток или даже недель). Данные диска разбиваются на блоки заданного размера, после чего каждый блок атомарно зашифровывается и сохраняется на диск. Для поддержания актуальной информации о зашифрованных блоках данных обычно используется битовая карта зашифрованной области. Каждый бит карты равен единице для зашифрованных блоков и нулю для расшифрованных. Для уменьшения износа диска битовая карта может сохраняться на диск периодически. В то же время в случае возникновения системного сбоя карта зашифрованной области должна соответствовать состоянию зашифрованных блоков данных на диске. Таким образом, возникает необходимость защиты маски зашифрованной области при возникновении сбоя системы при полнодисковом шифровании.
В патентной заявке US 20120173882 A1 описывается возможность возобновления операции шифрования/расшифрования при перезагрузке или случайном сбое системы. Авторы указывают, что пользователь может получить информацию о текущем статусе шифрования: количество зашифрованных блоков данных, битов информации, процент зашифрованной информации. Однако в заявке не уточняется, как используется данная информация при возобновлении шифрования после системного сбоя.
Анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий, недостатки которых решаются настоящим изобретением, а именно системой и способом изменения маски зашифрованной области при возникновении сбоя в компьютерной системе.
Раскрытие изобретения
Настоящее изобретение относится к системам и способам защиты компьютерных устройств и данных конечных пользователей от несанкционированного доступа.
Технический результат настоящего изобретения заключается в обеспечении защиты маски зашифрованной области при возникновении сбоя системы в процессе полнодискового шифрования за счет восстановления маски зашифрованной области с использованием журнала защиты.
Согласно варианту реализации используется система изменения маски зашифрованной области, содержащей информацию о каждом блоке данных, является ли он зашифрованным, при возникновении сбоя в компьютерной системе, содержащая: по крайней мере один журнал защиты, содержащийся на диске и необходимый для хранения блоков данных; средство конверсии, связанное с журналом защиты и предназначенное для: сохранения в ходе процесса полнодискового шифрования зашифрованных блоков данных в журнал защиты; сохранения маски зашифрованной области на диск при выполнении заданных условий; изменения показателя шифрования в маске зашифрованной области для каждого сохраненного блока данных, при этом измененный показатель шифрования указывает, что сохраненный блок данный является зашифрованным; средство изменения маски, связанное со средством конверсии, с журналом защиты и предназначенное для: считывания с диска сохраненной маски зашифрованной области при возникновении сбоя системы в процессе шифрования; определения блоков данных, содержащихся в журнале защиты, для которых в маске зашифрованной области на диске показатель шифрования указывает, что упомянутые блоки данных являются расшифрованными; изменения значения показателя шифрования на противоположное значение для определенных блоков данных.
Согласно одному из частных вариантов реализации средство конверсии маски предназначено для сохранения на диск маски зашифрованной области при выполнении по крайней мере одного из следующих заданных условий с момента последнего сохранения упомянутой маски зашифрованной области на диск: в журнал защиты сохранили определенное количество зашифрованных блоков данных; по прошествии заданного промежутка времени.
Согласно другому частному варианту реализации средство изменения маски дополнительно предназначено для определения блоков данных, у которых последовательный номер изменения блока данных больше последовательного номера изменения маски, при этом: упомянутый последовательный номер изменения блока равен числу, итеративно возрастающему для каждого записанного на диск зашифрованного блока данных; упомянутый последовательный номер изменения маски равен максимальному значению среди последовательных номеров изменения блоков данных, для которых в последней маске зашифрованной области на диске показатель шифрования определяет, что упомянутый блок данных является зашифрованным.
Согласно еще одному частному варианту реализации средство конверсии дополнительно предназначено для сохранения последовательного номера изменения блока в журнал защиты.
Согласно одному из частных вариантов реализации средство конверсии дополнительно предназначено для сохранения последовательного номера изменения маски на диск.
Согласно другому частному варианту реализации маска зашифрованной области является: битовой картой; деревом двоичного поиска; интервальным графом.
Согласно варианту реализации используется способ изменения маски зашифрованной области, содержащей информацию о каждом блоке данных, является ли он зашифрованным, при возникновении сбоя в компьютерной системе, в котором: с помощью средства конверсии сохраняют в ходе процесса полнодискового шифрования зашифрованные блоки данных в журнал защиты; с помощью средства конверсии изменяют показатель шифрования в маске зашифрованной области для каждого сохраненного блока данных, при этом измененный показатель шифрования указывает, что сохраненный блок данный является зашифрованным; с помощью средства конверсии сохраняют маску зашифрованной области на диск при выполнении заданных условий; с помощью средства изменения маски считывают с диска сохраненную маску зашифрованной области при возникновении сбоя системы в процессе шифрования; с помощью средства изменения маски определяют блоки данных, содержащиеся в журнале защиты, для которых в маске зашифрованной области на диске показатель шифрования указывает, что упомянутые блоки данных являются расшифрованными; с помощью средства изменения маски изменяют значение показателя шифрования на противоположное значение для определенных на предыдущем шаге блоков данных.
Согласно одному из частных вариантов реализации с помощью средства конверсии маску зашифрованной области сохраняют на диск при выполнении по крайней мере одного из следующих заданных условий с момента последнего сохранения упомянутой маски зашифрованной области на диск: в журнал защиты сохранили определенное количество зашифрованных блоков данных; по прошествии заданного промежутка времени.
Согласно другому частному варианту реализации с помощью средства изменения маски определяют блоки данных, у которых последовательный номер изменения блока данных больше последовательного номера изменения маски, при этом: упомянутый последовательный номер изменения блока равен числу, итеративно возрастающему для каждого записанного на диск зашифрованного блока данных; упомянутый последовательный номер изменения маски равен максимальному значению среди последовательных номеров изменения блоков данных, для которых в маске зашифрованной области на диске показатель шифрования определяет, что упомянутый блок данных является зашифрованным.
Согласно еще одному частному варианту реализации с помощью средства конверсии в журнал защиты дополнительно сохраняют последовательный номер изменения блока.
Согласно одному из частных вариантов реализации с помощью средства конверсии на диск дополнительно сохраняют последовательный номер изменения маски.
Согласно другому частному варианту реализации маска зашифрованной области является: битовой картой; деревом двоичного поиска; интервальным графом.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
На Фиг. 1 представлена общая схема системы шифрования.
На Фиг. 2 представлен возможный пример маски зашифрованной области.
На Фиг. 3 представлен вариант способа определения маски зашифрованной области.
На Фиг. 4 представлена общая схема процесса инициации полнодискового шифрования диска.
На Фиг. 5 представлен вариант способа определения маски зашифрованной области в процессе полнодискового шифрования.
На Фиг. 6 представлен способ изменения маски зашифрованной области.
Фиг. 7 представляет пример компьютерной системы общего назначения.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
В общем случае компьютерная система шифрования 100 может иметь вид, представленный на Фиг. 1. Компьютерная система 100 содержит запоминающее устройство 101 (для ясности далее будет использоваться термин «диск»), предназначенное для хранения данных. Диск 101 может быть любым известным из уровня техники носителем информации с произвольным доступом и возможностью многократной перезаписи содержимого носителя, как например: магнитный диск, твердотельный накопитель, магнитооптический диск. Диск 101 характеризуется параметрами диска, среди которых могут быть: размер диска, тип (например, магнитный диск, твердотельный накопитель, магнитооптический диск), количество дорожек и секторов диска, количество поврежденных секторов диска и пр. Диск 101 может содержать несколько логических разделов, на одном из которых может быть установлена операционная система (ОС), такая как: Microsoft Windows, Unix, Mac OS и пр.
Во время выполнения полнодискового шифрования для увеличения скорости шифрования и реализации отказоустойчивости системы шифрования диск разбивается на блоки данных равного размера. В то же время при выполнении процесса расшифрования полностью зашифрованного диска, он уже будет разделен на блоки данных. Стоит отметить, что система и методы, используемые как при шифровании, так и расшифровании, в большой степени совпадают. Поэтому далее, для краткости, при описании вариантов реализации будут описываться методы, применимые для полнодискового шифрования. При этом подразумевается, что для расшифрования используются аналогичные модули системы и шаги метода. Если же конкретные шаги способа или модули системы будут отличаться от метода расшифрования диска, об этом будет упомянуто при описании вариантов реализации.
За определение размера блока данных отвечает модуль определения маски 102, кроме этого предназначенный для определения параметров диска. Например, в ОС Windows размер диска может быть определен с помощью кода управления IOCTL_DISK_GET_LENGTH_INFO функции DeviceloControl из Windows API (application programming interface). С целью обеспечения сохранности данных и возможности возобновления процесса шифрования после сбоя системы в начале процесса шифрования создается маска зашифрованной области, содержащая информацию о каждом блоке данных, является ли он зашифрованным. Примером сбоя системы может быть, например, отключение электропитания, возникновение ошибок в системе (например сбой при инициализации системы ввода-вывода) и пр. Для создания маски зашифрованной области также используется модуль определения маски 102. Ниже, в описании к Фиг. 2 приведен частный пример маски зашифрованной области.
В одном примере реализации система шифрования 100 содержит журнал защиты 103, необходимый для хранения данных пользователя в процессе шифрования. Данные пользователя могут включать, например, файлы и содержимое каталогов учетной записи пользователя. Данные пользователя также могут включать все данные, хранящиеся на диске. В предпочтительном примере реализации журнал защиты 103 может иметь структуру кольцевого буфера. Стоит отметить, что журнал защиты 103 может иметь любую другую структуру данных, известную из уровня техники, например связный список.
В частном примере реализации в системе содержится журнал хранения маски 104, необходимый для хранения нескольких версий маски зашифрованной области во время выполнения шифрования диска. Каждая из масок зашифрованной области содержит информацию о зашифрованных блоках данных в разные моменты времени. В примере реализации система 100 содержит средство конверсии 105, связанное с модулем определения маски и предназначенное для загрузки с диска в оперативную память блоков данных, их последующего шифрования и записи зашифрованных блоков данных в журнал защиты 103. В еще одном примере реализации журнал хранения маски 104 может содержаться на диске в нескольких экземплярах с целью обеспечения дополнительной защиты маски зашифрованной области и возможности возобновления процесса шифрования при возникновении системного сбоя. В примере реализации несколько журналов хранения маски могут находиться в разных областях диска. Таким образом, если в одной области диска возникнет большое количество поврежденных секторов, вероятность одновременного возникновения аналогичной ситуации в другой области диска будет крайне мала. В другом примере реализации маски зашифрованной области разных версий могут содержаться непосредственно на диске 101.
В примере реализации система 100 содержит модуль шифрования 106, связанный со средством конверсии 105 и предназначенный для зашифровывания и расшифровывания данных пользователя, записываемых или читаемых из зашифрованной области диска, и создания на диске файла журнала защиты 103.
В частном примере реализации средство конверсии 105 дополнительно предназначено для записи зашифрованных блоков данных на диск 101 и в журнал защиты 103. В другом примере реализации средство конверсии 105 дополнительно предназначено для создания на диске файла маски зашифрованной области и помещения в него маски зашифрованной области, определенной модулем определения маски 102. В еще одном примере реализации средство конверсии 105 дополнительно предназначено для обновления маски зашифрованной области при записи на диск зашифрованных блоков данных. В частном примере реализации средство конверсии 105 дополнительно предназначено для сохранения маски зашифрованной области в журнал хранения маски 104.
В другом примере реализации средство конверсии 105 дополнительно предназначено для сохранения маски зашифрованной области на диск при выполнении определенных условий. Например, маска может сохраняться из оперативной памяти на диск периодически, а также при частичном или полном обновлении журнала защиты 103.
В одном примере реализации система 100 содержит средство изменения маски 107, предназначенное для считывания последней сохраненной маски зашифрованной области из журнала хранения маски 104. Средство изменения маски 107 также предназначено для изменения в маске зашифрованной области значения показателя, определяющего, что блоки данных являются зашифрованными, на противоположное значение. Далее, для краткости, показатели, определяющие, является ли блок данных зашифрованным, будут упоминаться как показатели шифрования. Кроме этого, средство изменения маски 107 служит для определения блоков данных, содержащихся в журнале защиты 103, для которых показатель шифрования в маске зашифрованной области отличается от состояния блоков данных на диске. В частном варианте реализации на диске может содержаться файл метаданных 108, в свою очередь содержащий указатели на журнал защиты 103 и на журнал хранения маски 104, а также показатель, определяющий, является диск зашифрованным или находится в процессе шифрования.
В частном примере реализации для определения порядка, в котором происходит сохранение зашифрованных блоков данных на диск, используется последовательный номер изменения блока, равный числу, итеративно возрастающему для каждого записанного на диск зашифрованного блока данных. В примере реализации в журнал защиты 103 вместе с каждым блоком данных дополнительно сохраняется последовательный номер изменения блока с помощью средства конверсии 105. В частном примере реализации с помощью средства конверсии 105 в журнал защиты 103 может сохраняться дополнительная информация, например: указатель на начало зашифрованного блока данных на диске, контрольная сумма от этого блока данных вместе с дополнительной информацией, указанной выше. В примере реализации при сохранении на диск нового зашифрованного блока данных обновляется маска зашифрованной области, таким образом, создается новая маска зашифрованной области. Для отображения соответствия между маской зашифрованной области и последним зашифрованным и записанным на диск блоком данных может быть использован последовательный номер изменения маски. В частном варианте реализации значение последовательного номера изменения маски равно максимальному значению последовательного номера изменения среди блоков данных, для которых в маске зашифрованной области содержится измененный показатель шифрования.
В частном примере реализации средство конверсии 105 дополнительно предназначено для сохранения последовательного номера изменения маски в журнал хранения маски 104. В примере реализации средство изменения маски 107 дополнительно предназначено для считывания последовательного номера изменения блока в журнале защиты 103, для считывания последовательного номера изменения маски в журнале хранения маски 104, а также для изменения значения показателя шифрования на противоположное значение.
В примере реализации в журнал хранения маски 104 вместе с каждой маской зашифрованной области дополнительно сохраняется последовательный номер изменения маски. В частном примере реализации в журнал хранения маски 104 может сохраняться дополнительная информация, например: указатель на начало последнего сохраненного блока данных на диске, контрольная сумма от маски зашифрованной области вместе с дополнительной информацией, указанной выше.
В частном примере реализации на диске 101 содержится пользовательский образ MBR (master boot record - главная загрузочная запись для BIOS систем), отличающийся от основного MBR тем, что вместе с кодом, активирующим среду предзагрузочной аутентификации (preboot authentication), или в отсутствие такового может дополнительно содержать указатели на файл метаданных 108, агент предзагрузки, содержащийся на диске (на Фиг.1 не отображено), журнал защиты и указатель на журнал хранения маски 104. Пользовательский образ MBR может также содержать показатель, определяющий, является ли диск зашифрованным, или же диск находится в процессе шифрования.
На Фиг. 2 представлен возможный пример маски зашифрованной области 201. В данном примере маска зашифрованной области 201 представлена в виде битовой карты. Каждому блоку данных диска 100 соответствует бит в маске зашифрованной области 201. При этом значение бита в маске зашифрованной области 201 определяет, является ли соответствующий блок данных зашифрованным (например бит может принимать значение 1, когда блок данных зашифрован, и 0 - когда блок данных находится в расшифрованном состоянии). В данном примере, блоки данных 1, 3, 6, 7 зашифрованы, в то время как блоки 2, 4, 5 расшифрованы. Для такого диска маска зашифрованной области будет принимать значение 1010011.
Для ясности представленная на Фиг. 2 структура маски зашифрованной области будет использоваться при описании вариантов реализации изобретения. Стоит отметить, что на Фиг. 2 представлен лишь предпочтительный пример маски зашифрованной области 201, и в общем случае маска зашифрованной области может иметь различное представление. В частном примере реализации маска зашифрованной области может быть представлена в виде дерева двоичного поиска, интервального графа, в виде многоуровневой битовой карты и пр.
На Фиг. 3 представлен вариант способа определения маски зашифрованной области. На первом шаге 301 с помощью модуля определения маски 102 определяют параметры диска, которые могут включать: размер диска, тип, количество поврежденных секторов диска и пр. Далее, на этапе 302, с помощью модуля определения маски 102 задают размер блока данных, который зависит от параметров диска. На последнем шаге 303 в зависимости от размера блока данных с помощью модуля определения маски 102 определяют маску зашифрованной области, содержащую показатель шифрования для каждого блока данных и изначально соответствующую незашифрованному состоянию для всего диска (все биты маски зашифрованной области могут равняться нулю). Размер маски зашифрованной области задают исходя из размера блока данных (например, размер диска, деленный на размер блока данных).
При шифровании блока данных на диске 101 он будет перезаписан единым целым. Таким образом, для обеспечения наилучшей производительности при шифровании диска размер блока данных будет кратен размеру физического сектора или размеру блока стирания (для твердотельного накопителя).
В частном примере реализации размер блока данных может быть равен квадратному корню от объема диска в байтах. Например, для диска объемом 1 терабайт размер блока данных будет равен 1 мегабайт. В этом случае размер маски зашифрованной области будет равен отношению объема диска к размеру блока данных и может составлять 128 килобайт для представления в виде линейной двоичной битовой карты.
В другом примере реализации маска зашифрованной области может иметь структуру многоуровневой битовой карты. Например, для битовой карты в виде матрицы размер блока данных может быть сопоставим с кубическим корнем от объема диска в октетах. Таким образом, для диска объемом 1 терабайт размер блока данных может составлять 16 килобит.
На Фиг. 4 представлена общая схема процесса инициации полнодискового шифрования. Вначале, на шаге 401, происходит инициация процесса шифрования - модуль шифрования 106 создает пустые файлы журнала защиты 103 и журнала хранения маски 104. В частном примере реализации процесс шифрования может быть также инициирован средством конверсии 105. Стоит отметить, что файлы журналов к этому моменту могут уже быть размещены на диске 101. В этом случае их содержимое будет очищено. Далее, на шаге 402, на компьютерной системе с помощью модуля шифрования 106 устанавливают средство конверсии 105 и набор системных программных компонентов, необходимых для выполнения полнодискового шифрования и для обеспечения выполнения аутентификации на этапе предзагрузки системы (РВА - pre-boot authentication). После этого может быть произведена перезагрузка компьютерной системы для проверки корректной работы драйверов. Например, если после перезагрузки возникли ошибки системы, при последующей загрузке система может быть восстановлена из последней точки восстановления системы, однако в этом случае полнодисковое шифрование может быть отменено.
На шаге 403 модуль шифрования 106 передает средству конверсии 105 команду о необходимости шифрования. В частном варианте реализации перед началом шифрования на диске может быть создан файл метаданных 108, который, в свою очередь, может содержать указатели на журнал защиты и на журнал хранения маски 104, а также показатель, определяющий, является диск зашифрованным, находится в процессе шифрования или шифрования диска еще не началось - диск расшифрован. В другом варианте реализации на диске может быть сохранено несколько копий файла метаданных 108 для обеспечения дополнительной надежности при возобновлении шифрования в случае возникновения системного сбоя.
Далее, на шаге 404, с помощью средства конверсии создают маску зашифрованной области. В частном примере реализации при выполнении процесса полнодискового шифрования все биты созданной маски зашифрованной области могут равняться нулю. В другом примере реализации при расшифровании зашифрованного диска все биты созданной маски зашифрованной области могут равняться единице. Далее маска зашифрованной области может быть сохранена в журнал хранения маски 104.
На шаге 405 с помощью модуля шифрования создают пользовательский образ MBR. После создания пользовательский образ MBR сохраняется на место исходного MBR, который обычно расположен в нулевом секторе диска. При загрузке компьютерной системы BIOS передает управление пользовательскому MBR, который обеспечивает загрузку агента предзагрузки и передачу ему выполнения. Копия основного MBR может быть сохранена в файле метаданных 108. Агент предзагрузки обеспечивает аутентификацию пользователя, загрузку основного MBR из файла метаданных 108, который в итоге передает управление операционной системе.
В итоге, на шаге 406, средство конверсии приступает к шифрованию диска. Более подробно процесс шифрования описывается ниже.
На Фиг. 5 представлен вариант способа определения маски зашифрованной области в процессе полнодискового шифрования. При начале шифрования маска зашифрованной области может быть целиком заполнена нулями - все блоки данных диска не зашифрованы. Если же происходит расшифровывание диска, все биты маски зашифрованной области будут единичными - все блоки данных на диске зашифрованы.
Таким образом, в начале шифрования диска средство конверсии с использованием маски зашифрованной области считывает незашифрованные блоки данных с диска (в маске зашифрованной области таким блокам данных соответствует нулевой бит). Далее средство конверсии 105 зашифровывает считанный блок данных, после чего, на шаге 501, блоки данных записываются в журнал защиты 103. В частном варианте реализации в журнал защиты 103 также может быть записан последовательный номер изменения блока и дополнительная информация (например, указатель на начало зашифрованного блока данных на диске, контрольная сумма).
В частном варианте реализации блок данных может быть зашифрован с использованием симметричного шифрования, например блочным шифром. Ключи шифрования могут быть созданы, например, средством шифрования 105, зашифрованы с использованием пароля пользователя компьютерной системы в качестве ключа шифрования и сохранены на диск. Далее, на этапе 502, в маску зашифрованной области добавляют показатели шифрования для зашифрованных блоков данных. Например, при использовании битовой карты в ней изменяют соответствующий зашифрованному блоку данных бит на единицу. В частном варианте реализации обновленная маска может быть сохранена на диск на следующем шаге 503. В другом варианте реализации маска зашифрованной области может сохраняться на диск каждый раз после записи блоков данных в журнал защиты.
Однако частая перезапись содержимого журнала хранения маски 104 может увеличить износ диска. Поэтому в предпочтительном варианте реализации маска зашифрованной области сохраняется на диск в журнал хранения маски 104 при выполнении определенных условий, которые проверяются на шаге 504. В одном примере реализации маска зашифрованной области сохраняется на диск, если в журнал защиты было сохранено определенное количество зашифрованных блоков данных с момента последнего сохранения маски зашифрованной области в журнал хранения маски 104 (например при перезаписи журнала защиты 103 наполовину).
В другом примере реализации маска зашифрованной области может сохраняться на диск по истечению определенного промежутка времени (например каждые 10 секунд). В еще одном примере реализации сохранение маски зашифрованной области на диск происходит при запросе сквозной записи данных на диск.
Так или иначе, условие сохранения маски зашифрованной области на диск будет таким, что при возникновении системного сбоя в произвольное время, зашифрованных блоков данных, сохраненных в журнал защиты 103, а также последней сохраненной маски зашифрованной области будет достаточно для восстановления (изменения) маски зашифрованной области для всех зашифрованных блоков данных, которые были сохранены на диск или в журнал защиты 103 к моменту сбоя системы. Более подробно вариант способа изменения маски зашифрованной области будет описан ниже, при описании Фиг. 6.
В итоге, при выполнении условий, определенных на шаге 504, маска зашифрованной области сохраняется на диск на шаге 503, процесс шифрования продолжается. В противном случае процесс шифрования продолжается без сохранения на диск маски зашифрованной области. Т.к. маска зашифрованной области в общем случае сохраняется на диск реже, чем зашифрованные блоки данных, то при возникновении системного сбоя маска зашифрованной области, содержащаяся на диске, может не полностью соответствовать состоянию зашифрованных блоков данных на диске. В этом случае после перезагрузки системы 100 потребуется обновить маску зашифрованной области до новой версии, чтобы новая маска зашифрованной области полностью характеризовала состояние зашифрованных блоков данных на диске 101. Способ изменения маски зашифрованной области после системного сбоя и перезагрузки системы приводится ниже, в описании Фиг. 6.
После успешной записи в журнал защиты 103, блок данных записывается непосредственно на диск 101, на место исходного блока данных.
Процесс шифрования будет завершен, когда все блоки данных будут зашифрованы и сохранены на диск 101, а все биты маски зашифрованной области будут единичными.
В частном примере реализации после завершения процесса шифрования, маска зашифрованной области будет удалена из памяти, а также с диска. В другом примере реализации после завершения процесса шифрования журнал защиты также может быть очищен, что позволит освободить дополнительное место на диске.
Стоит отметить, что в предпочтительном варианте реализации этап 503 выполняется без прерывания процесса шифрования блоков данных.
На Фиг. 6 представлен способ изменения маски зашифрованной области. В процессе шифрования может возникнуть системный сбой, в результате которого компьютерная система будет перезагружена. Маска зашифрованной области сохраняется на диск реже, чем происходит сохранение на диск зашифрованных блоков данных. Таким образом, в маске зашифрованной области на диске для некоторых зашифрованных блоков данных могут отсутствовать показатели шифрования. Для возобновления процесса шифрования показатели шифрования, содержащиеся в маске зашифрованной области, должны соответствовать зашифрованным блокам данных на диске.
Для этого на шаге 601 с помощью средства изменения маски считывают последнюю сохраненную на диске маску зашифрованной области. Далее, на шаге 602, с помощью средства изменения маски определяют блоки данных, для которых показатель шифрования в маске зашифрованной области не соответствует состоянию блока данных в журнале защиты (например, диск зашифровывается, блок данных в журнале защиты присутствует, однако в маске зашифрованной области ему соответствует нулевой бит). Стоит отметить, что в частном варианте реализации средство конверсии может обращаться не к журналу защиты, а непосредственно к диску, чтобы определить, является ли блок данных на диске зашифрованным и соответствует ли эта информация показателю шифрования в маске зашифрованной области.
В итоге, на этапе 603, с помощью средства изменения маски в маске зашифрованной области изменяют значения показателей шифрования для определенных блоков данных на противоположное. Таким образом, маска зашифрованной области будет соответствовать журналу защиты и, следовательно, состоянию блоков данных на диске. Новая маска зашифрованной области может быть сохранена на диск и загружена в память для продолжения прерванного процесса шифрования.
В частном варианте реализации для изменения маски зашифрованной области используется последовательный номер изменения блока, который содержится вместе с каждым зашифрованным блоком данных в журнале защиты пользователя 103, а также последовательный номер изменения маски, который содержится вместе с маской зашифрованной области на диске 101. Так, на шаге 601 дополнительно для каждого блока данных в журнале защиты 103 с помощью средства изменения маски 107 считывают последовательный номер изменения блока. На шаге 602 в журнале хранения маски 104 с помощью средства изменения маски 107 дополнительно считывают последовательный номер изменения маски, соответствующий последней сохраненной маски зашифрованной области. В итоге, на шаге 603, с помощью средства изменения маски 107 в маске зашифрованной области для блоков данных, у которых последовательный номер изменения блока данных больше последовательного номера изменения маски, дополнительно изменяют значение показателя шифрования на противоположное значение.
Фиг. 7 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш-карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 7. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В соответствии с описанием, компоненты, этапы исполнения, структура данных, описанные выше, могут быть выполнены, используя различные типы операционных систем, компьютерных платформ, программ.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.