Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Команды контроллеров жестких дисков для поддержки защиты от несанкционированного доступа (ликбез).

Команды контроллеров жестких дисков для поддержки защиты от несанкционированного доступа (ликбез).

Процессор управляет внешними устройствами, выполняя соответствующую программу ввода/вывода, где он с помощью команд IN,OUT (чтение порта, запись в порт) имеет доступ к программно-доступным регистрам контроллера устройства. В регистр управления процессор записывает команду, из регистра состояния читает информацию о состоянии устройства и контроллера, в регистр данных записывает выводимые на устройство данные, или читает из регистра данных считываемую с устройства информацию и т. д.

Начиная еще со стандарта АТА-3, в набор команд контроллеров жестких дисков была введена группа команд защиты. Поддержка команд этой группы определяется содержимым слова (с порядковым номером 128), полученным по команде идентификации. Это слово содержит статус секретности:

- бит 0 - поддержка секретности (0 - отсутствует, 1 - имеется);

- бит 1 - использование секретности (0 - запрещено, 1 - разрешено);

- бит 2 - блокировка режима секретности (0 - отсутствует, 1 - имеется);

- бит 3 - приостановка режима секретности (0 - отсутствует, 1 - имеется);

- бит 4 - счетчик секретности (0 - отсутствует, 1 - имеется);

- бит 5 - поддержка улучшенного режима стирания (0 - отсутствует, 1 - имеется);

- биты 6-7 зарезервированы;

- бит 8 - уровень секретности (0 - высокий, 1 - максимальный);

- биты 9-15 зарезервированы.

Если защита поддерживается, то устройство должно отрабатывать все команды группы Security. С точки зрения защиты, устройство может находиться в одном из трех состояний:

1. Устройство открыто (unlocked) - контроллер устройства выполняет все свойственные ему команды. Устройство с установленной защитой можно открыть только командой Security Unlock, в которой передается блок данных, содержащий установленный при защите пароль. Длина пароля составляет 32 байта, а для исключения возможности подбора пароля путем полного перебора имеется внутренний счетчик неудачных попыток открывания, по срабатывании которого команды открывания будут отвергаться до выключения питания или аппаратного сброса.

2. Устройство закрыто (locked) - контроллер устройства отвергает все команды, связанные с передачей данных и сменой носителя. Допустимы лишь команды общего управления, мониторинга состояния и управления энергопотреблением. Из команд защиты допустимы лишь команды стирания (Security Erase) и открывания (Security Unlock). В это состояние устройство с установленной защитой входит каждый раз по включению питания.

3. Устройство заморожено (frozen) - устройство отвергает все команды управления защитой, но выполняет все остальные. В это состояние устройство переводится командой Security Freeze Lock или автоматически по срабатыванию счетчика попыток открывания устройства с неправильным паролем. Из этого состояния устройство может выйти только по аппаратному сбросу или при следующем включении питания. Срабатывание счетчика попыток отражается установкой бита 4 (EXPIRE) слова 128 блока параметров, бит сбросится по следующему включению питания или по аппаратному сбросу.

Производитель выпускает устройства с неустановленной защитой (по включению оно будет открыто). Система защиты поддерживает два пароля:

- главный (master password);

- пользовательский (user password).

В системе защиты имеются два уровня:

- высокий (high);

- максимальный (maximum).

При высоком уровне защиты устройство можно открывать любым из двух паролей. При максимальном уровне устройство открывается только пользовательским паролем, а по главному паролю доступна только команда стирания (при этом вся информация с носителя будет стерта).

Для установки защиты и пароля используется команда Security Set Password, которую выполняет только открытое устройство. При установке пароля пользователя устанавливается и защита, при установке главного пароля состояние и уровень защиты не меняется. В передаваемом блоке данных (512 байт - 256 слов) нулевое слово является управляющим:

- бит 0 определяет тип пароля (0 - User, 1 - Master);

- бит 8 при установке пользовательского пароля определяет степень защиты (0 - High, 1- Maximum).

Слова 1-16 содержат пароль; слово 17 - код номера главного пароля (Master Password Revision Code), требуется при установке главного пароля; остальные слова игнорируются.

Главный пароль устанавливается изготовителем или продавцом устройства, впоследствии он может быть переопределен пользователем. Код номера главного пароля (master password revision code) сообщается словом 92 в блоке параметров устройства, он может быть в диапазоне 1 - FFFEh. Значения 0000 или FFFFh указывают на то, что код номера пароля не поддерживается устройством (изготовитель выпускает устройство с номером пароля FFFEh).

Снять защиту можно командой Security Disable Password (предъявив один из двух паролей), которую выполняет только открытое устройство. После снятия защиты устройство не будет переходить в состояние закрыто, пароль пользователя перестает действовать, но главный пароль сохраняется (он будет снова активирован при последующем задании пароля пользователя).

Для предотвращения несанкционированных попыток смены пароля или уровня защиты служит команда Security Freeze Lock, после которой в устройстве «замораживается» состояние защиты.

Команда защитного стирания Security Erase UNIT подразумевает передачу устройству блока данных в 256 слов. Нулевое слово является управляющим, в нем определены только 2 бита:

- бит 0 определяет тип пароля (0 - User, 1 - Master);

- бит 1 определяет уровень защитного стирания (0 - обычное, 1 - расширенное).

Слова 1-16 содержат пароль, остальные игнорируются.

При обычном стирании устройство заполняет двоичными нулями всю область данных, видимую пользователем. При расширенном стирании заполняется весь носитель, включая и области, ранее переназначенные устройством (по угрозе неисправимых ошибок). Кроме того, вместо двоичных нулей используется образец данных, заданный производителем (им заполняются новые устройства). После стирания защита снимается, но главный пароль сохраняется. Чтобы застраховаться от случайного стирания, непосредственно перед этой командой должна быть выполнена команда Security Erase Prepare, иначе команда стирания будет отвергнута устройством.

Команды защиты в АТА-4 были дополнены ограничением максимального адреса, доступного пользователю (сообщаемого в блоке параметров идентификации), командой Set Max Address. Узнать реальный максимальный адрес позволяла команда Read Native Address, В АТА/АТАРI-5+ команды Set Max были расширены (введено их паролирование) за счет введения подкоманд, задаваемых через FR. Идея паролирования отличается от общей защиты: после включения питания можно ограничить максимальный адрес (но только один раз) или же ограничить доступ к этой команде. Все эти команды неприменимы для устройств со сменными носителями.

Определены следующие подкоманды:

- 00 - Set Max Address, ограничение размера доступной области. В регистрах СН, CL, D/H и SN задается адрес последнего доступного сектора (в режиме CHS или LBA), в регистре SC бит 0 ( W - Value Volatile) определяет, сохранится ли установленное значение после выключения питания (1 - да, 0 - нет). Непосредственно перед данной командой должна быть успешно выполнена команда Read Native Address. Результат команды отражается в словах 1, 54, 57, 60 и 61 идентификатора устройства.

- 01 - Set Max Set Password, задание пароля для команд Set Max. Пароль содержится в словах 1-16 блока данных (512 байт), передаваемых в режиме РIO (слова 0 и 17-255 не используются). Пароль сохраняется и после последующего включения питания.

- 02 - Set Max Lock, включение парольной защиты для команд Set Max - перевод в состояние Set Max Locked, в котором из команд Set Max исполняются только Set Max Unlock и Set Max Freeze Lock. Состояние сохраняется до выключения питания или успешного выполнения этих команд.

- 03 - Set Max Unlock, ввод пароля (см. выше), по которому устройство переводится в состояние Set Max Unlocked, в котором все команды Set Max доступны. Если пароль неправильный, то декрементируется счетчик попыток (по включению устанавливается 5 попыток), а по его обнулению устройство перестает воспринимать эти команды до следующего включения питания.

- 04 - Set Max Freeze Lock, «замораживание» команд Set Max. После нее все вышеприведенные команды будут отвергаться до повторного включения питания.

Любая подкоманда Set Max, введенная сразу после чтения настоящего максимального адреса, будет трактоваться устройством как Set Max Address.

 


Лицензия