|
- Subs определяет множество субъектов в состоянии s;
- Objs определяет множество объектов в состоянии s;
- authlist – множество, состоящее из элементов в форме (sub, nc), где sub принадлежит множеству Subs, nc принадлежит множеству Objs; существование элемента (sub1, nc1) в множестве отмечает то, что субъект sub1 имеет право на связь с компонентом сети nc1;
- connlist – множество, состоящее из элементов в форме (sub, nc). Это множество отражает текущее множество допустимых соединений в данном состоянии;
- subcls – Sub -> SCls.
- subcls – функция, приписывающая каждому субъекту его степень доверия;
- objcls – Obj -> PS(SCls), где PS обозначает мощность множества.
Objcls – функция, приписывающая каждому объекту один или более уровней классификации. Предполагается, что входные устройства и информационные блоки имеют единственный уровень классификации, тогда как хосты могут иметь несколько классификаций;
curcls – Sub -> Scls.
curcls – функция, задающая текущую степень доверия субъекта.
subrefobj - Sub -> PS(Obj).
subrefobj – описывает множество объектов, к которым субъект может обратиться в данном состоянии.
role: Users->PS(Rset)
role описывает множество ролей, для которых авторизирован пользователь.
currole: Users-> Rset
currole описывает текущую роль пользователя.
term: Users->IOD
term определяет терминал, с которого пользователь вошел в систему.
contents-IU->strings
contents – функция, которая отображает множество информационных блоков в множество строк. Она выделяет содержание информационных объектов.
Для nc, принадлежащее множеству IOD\/OD, view(nc) – множество упорядоченных пар{(x1,y1), (x2,y2),…(xn,yn)}, где yi отображается на компоненте nc. Каждое xi – информационный блок и yi – результат применения функции contents к xi.
Предположения безопасности.
Модель сети содержит следующие предположения безопасности:
1. На хостах сети существует надежная схема пользовательской аутентификации. Каждый пользователь и процесс в сети имеет уникальный идентификатор.
2. Только пользователь с ролью администратор Безопасности Сети может присваивать классы безопасности субъектам и компонентам сети и роли пользователям.
3. Все сущности сети имеют сравнимые классы безопасности.
4. Имеет место надежная передача данных по сети.
Безопасное состояние.
Определим условия, при которых состояние сети безопасно. С целью определения данных условий, рассмотрим различные фазы через которые проходит система во время выполнения операций.
Фаза доступа к системе.
Предполагается, что существует надежный механизм идентификации-аутентификации. Эти аспекты не включены в данную модель. Но существует требование, по которому степень доверия пользователя должна быть больше или равна классификации терминала, с которого он получил доступ к системе. Более того, текущая степень доверия пользователя не должна быть больше его максимальной степени доверия, а его роль должна принадлежать к списку его авторизованных ролей. Это дает следующие ограничения.
Ограничения при доступе к системе.
Предложение 1. Состояние s удовлетворяет ограничениям при доступе к системе, если для любого x, принадлежащего множеству Users:
- subcls(x) ≥ objcls(term(x));- subcls(x) ≥ curcls(x);
- currole(x) принадлежит role(x).
Фаза установление связи.
После получения доступа к системе пользователь может захотеть установить связь с другими компонентами сети. Для определения доступных соединений должны поддерживаться дискретная и мандатная политика сети.
Ограничение связи.
Предложение 2. Состояние s удовлетворяет ограничением связи, если для любого (sub,nc), принадлежащего connlist:
- (sub, nc) принадлежит autlist;
- если nc не принадлежит OD, то curcls(sub) ≥ sup(oc1, oc2,… ocj), где objcls(nc)={oc1, oc2,… ocj};
- если nc принадлежит OD, то objcls(nc) ≥ subcls(sub).
Первое условие дает контроль дискретного доступа, т.е. объект, к которому осуществлён запрос на связь, должен находиться в списке объектов, к которым имеет доступ субъект.
Второе ограничение говорит о том, что если запрашиваемый сетевой компонент не устройство ввода, то для установления соединения текущая степень доверия к пользователю должна быть по крайней мере не меньше самой нижней классификации объекта.
Третье условие относится к устройствам вывода. Степень доверия к субъекту должна быть не больше класса безопасности компонента сети для предотвращения утечки информации через выходное устройство.
Другие условия
1. Классификация информации, которая может быть просмотрена через устройство ввода-вывода, должна быть не больше классификации данного устройства.
2. Роль пользователя в данном состоянии должна принадлежать к списку ролей, к которым авторизован пользователь.
Теперь определим безопасное состояние.
Определение. Состояние s безопасно, если:
1. s удовлетворяет Ограничениям при доступе к системе.
2. s удовлетворяет Ограничениям связи.
3. Для любого z, принадлежещего множеству IOD\/OD, для любого x, принадлежащего (x, contents(x)), который принадлежит view(x), следует, что objcls(z) ≥ objcls(x).
4. Для любого z, принадлежащего Users currole принадлежит role(u).
Начальное состояние.
Предполагается, что начальное состояние системы s0 определено таким образом, что оно удовлетворяет условиям безопасного состояния, описанным выше.
Операции.
Операция связи.
Операция connect(sub,nc) позволяет субъекту sub связаться с удалённым объектом сети nc.
Операции манипуляции информацией.
После установления связи с удаленным компонентом субъект может выполнять операции, которые требуют манипуляции с информационными объектами. Манипуляция информацией состоит из двух этапов: этап получения доступа к информации, на котором субъект связывается с информационным объектом, над которым он хочет произвести манипуляции, и этап манипуляции, на котором действуют ограничения, принятые в модели Белла-ЛаПадула для операции чтения, записи, добавления и выполнения. В данной модели рассматривается операция, выполняющая передачу информации от одного сетевого компонента к другому, как самая важная при рассмотрении сети(фактически данная операция является частью всех других операций).
Операция получения доступа.
Операция bind(iobj, nc) позволяет субъекту sub получить доступ к информационному объекту iuobj на сетевом компоненте nc.
Операция передачи информации.
Операция transfer(iuobj1, nc1. iuobj2, nc2) позволяет субъекту sub добавить содержание информационного блока объекта iuobj1 на сетевом компоненте nc1 к содержанию информационного блока объекта iuobj2 на сетевом компоненте nc2.
Операция освобождения.
Операция unbind(sub, iuobj) позволяет субъекту sub освободить связь с объектом iuobj. До выполнения данной операции iuobj принадлежит subrefobj(sub), а после выполнения iuobj не принадлежит subrefobj(sub).
Другие операции.
Рассмотрим другие операции, модифицирующие атрибуты безопасности субъектов и объектов. Обычно они включают операции, изменяющие степень доверия к субъектам, классификацию информационных блоков, а также множества доступа к информационным блокам. В случае модели безопасности сети, необходимо добавить операции, такие, как присвоение классификации сетевым компонентам и изменение ролей пользователей.
Присвоение классификации сетевому компоненту.
Операция assign-sclass-ncobj(nc, scls) позволяет субъекту sub установить классификацию сетевому компоненту nc. То есть objcls(nc)={scls}. Данная операция применима только в том случае, когда компонент не используется. Более того, только Администратор Безопасности Сети авторизован для проведения данной операции.
Присвоение степени доверия пользователю.
Операция assign-sclass-user(usr,scls) позволяет субъекту sub установить степень доверия пользователю usr.
Присвоение пользователю текущей степени доверия.
Операция assign-curclass-user(usr,scls) позволяет субъекту sub установить текущую степень доверия пользователю usr.
Присвоение пользователю роли.
Операция assign-role-user(usr, rlset) позволяет субъекту sub установить пользователю usr множество ролей.
Присвоение пользователю текущей роли.
Операция assign-currole-user(usr,rlset) позволяет субъекту sub изменить текущую роль пользователя usr.
Установка списка доступа.
Операция setauthlist(al) позволяет субъекту установить список доступа.
Функции системы.
Функции системы описывают переход системы из одного состояния в другое, после применения одиночной операции или их последовательности так, как это было описано выше. То есть:
А: Sub x O x S →S
s’=A(sub, op, s) – результатирующее состояние после применения операции o, принадлежащей О, примененной субъектом sub, принадлежащим Sub, в состоянии s, которое принадлежит S.
О функции А говорят, что переход безопасен, если он удовлетворяет условиям, описанным в предыдущих пунктах.
Динамические системы биометрической идентификации-аутентификации личности основаны на использовании в качестве признаков некоторых динамических параметров и характеристик личности (походка, рукописный и клавиатурный почерки, речь).
Применение принципов биометрической идентификации личности в системах информационной безопасности привело к созданию биометрических систем идентификации-аутентификации (БСИ) при доступе к объектам информатизации (в частности, к персональным компьютерам). Пользователи таких объектов для получения доступа к ним должны пройти процедуру биометрической идентификации-аутентификации.
Качество работы БСИ характеризуется процентом ошибок при прохождении процедуры допуска. В БСИ различают ошибки трех видов:
FRR (False Reject Rate) или ошибка первого рода – вероятность ошибочных отказов авторизованному пользователю (ошибочный отказ «своему»);
FAR (False Accept Rate) или ошибка второго рода – это вероятность допуска незарегистрированного пользователя (ошибочный пропуск «чужого»);
EER (Equal Error Rates) – равная вероятность (норма) ошибок первого и второго рода.
В зависимости от требований, предъявляемых к БСИ, формирование биометрического эталона пользователя также выполняется с заданной степенью строгости. Образцы, предъявляемые данным пользователем, должны соответствовать некоторой среднестатистической характеристике для данного пользователя. То есть после набора некоторой начальной статистики предъявление плохих образцов (образцов с большими отклонениями от среднестатистических) системой должно отвергаться. Отношение принятых системой образцов к общему числу предъявленных образцов характеризует степень устойчивости биометрических параметров данного пользователя.
Для экспериментальной проверки характеристики FRR системе последовательно n раз предъявляются биометрические характеристики пользователей, успешно прошедших регистрацию. Далее подсчитывается отношение числа n1 неудачных попыток (отказ системы в допуске) к общему числу попыток n. Указанное отношение дает оценку вероятности ошибки FRR. Оценка считается достоверной при значениях n ³ 1/FRR.
Для экспериментальной проверки характеристики FАR системе последовательно m раз предъявляются биометрические характеристики пользователей, не проходивших регистрацию. Далее подсчитывается отношение числа n2 удачных попыток (положительное аутентификационное решение) к общему числу попыток m. Указанное отношение дает оценку вероятности ошибки FАR. Оценка считается достоверной при значениях m ³ 1/FAR.
В БСИ по рукописному почерку ввод факсимильной подписи осуществляется со стандартного графического планшета в виде колебаний пера как функций времени. Графические планшеты бывают одно-, двух- или трехкоординатные. В зависимости от типа планшета колебания пера контролируются соответственно по одной продольной оси в виде функции x(t), по двум ортогональным осям в плоскости планшета в виде пары функций x(t), y(t) или, наконец, по трем ортогональным осям в виде тройки функций x(t), y(t), z(t). В трехкоординатном планшете колебания пера по вертикали (функция z(t)) контролируются в виде степени давления пера на плоскость планшета. Существуют также планшеты, контролирующие угол наклона пера к плоскости планшета. Число учитываемых параметров колебания пера определяет точность биометрических систем контроля допуска по рукописному почерку. Чем больше параметров учитывается, тем выше точность.
Для повышения точности БСИ по рукописному почерку прибегают к замене факсимильной подписи биометрическим паролем (любое слово, возможно даже бессмысленное, написание которого пользователь тщательно отрабатывает и хранит в тайне).
При вводе пользователем с графического планшета своей подписи (или парольного слова) индивидуальные особенности воспроизведения им этой подписи (парольного слова) отражены в частотной структуре функций x(t),y(t), z(t), и задача биометрического анализа сводится к извлечению этой информации.
Реализации функций x(t),y(t) можно трактовать как полигармонические процессы, протекающие в интервале времени Т, соответствующем времени воспроизведения подписи (пароля). Поэтому функции x(t), y(t) можно представить рядами Фурье с некоторым конечным числом членов разложения n:
где
основная угловая частота;
коэффициенты разложения;
период разложения.
Коэффициенты разложения вычисляются по формулам:
и являются искомыми информативными параметрами для идентификации.
Свойство линейности ортогональных функционалов позволяет осуществить операцию масштабирования вводимых подписей. Для определения неизвестного масштаба вводимой очередной подписи xa(t),ya(t) относительно первой введенной x1(t), y1(t) (как масштабного эталона) достаточно решить уравнения:
где mx, my – коэффициенты масштабирования.
Коэффициенты разложения вычисленные для членов разложения, в совокупности рассматриваются как N-мерный вектор информативных биометрических параметров (где N=4n):
Вектор V является исходным для последующей процедуры идентификации-аутентификации.
1.1. Защита на уровне расширений BIOS
При начальной загрузке ПЭВМ первичная активизация производится специальной программой процессора, которая хранится в памяти основного BIOS (базовая система ввода/вывода).
При включении питания управление передается на точку входа памяти, которая определяется производителем основного BIOS. Данный код BIOS производит тестирование оборудования, инициализацию векторов прерывания, активизацию видеосистемы и другие действия, которые зависят от специфики BIOS.
В состав BIOS входит типовая процедура поиска расширений BIOS (BIOS Extention). Расширение BIOS - это фрагмент исполняемого кода, который оформлен по следующим правилам:
Поиск расширений заключается в сканировании с шагом 512 байт области памяти с C000h до F000h с целью нахождения фиксированной двухбайтовой сигнатуры 55AAh.
После нахождения указанной сигнатуры анализируется следующий (третий, начиная с 55h) байт, который указывает область расширения BIOS в 512-байтных страницах (блоках).
Если в указанных позициях находится число, отличное от 0, то вычисляется арифметическая байтовая контрольная сумма от области памяти с байтом 55h на длину, указанную в третьем байте.
В случае совпадения этой суммы с нулем на четвертый (от первого байта 55h) байт передается управление.
Если в теле кода, на которое передано управление, встречается процедура REFT (с учетом состояния стека на момент вызова расширения), то произойдет возврат к основному BIOS, т.е. к процедуре дальнейшего поиска расширений.
Если фрагмент кода оформлен по заданным правилам, то на него передается управление в ходе поиска расширений BIOS.
Программирование расширенного BIOS дает возможность и механизм для реализации защитных функций на аппаратной уровне до загрузки операционной системы.
Объем расширения BIOS определяется объемом ПЗУ, где хранится BIOS. Поэтому на данном уровне может быть реализован достаточно небольшой объем функций безопасности компьютерной системы:
Идентификация и аутентификация пользователя (возможно с использованием аппаратного носителя).
Запрет несанкционированной загрузки операционной системы с избранных носителей (например, CD-ROM).
Контроль неизменности или целостности аппаратной или программной компоненты ПЭВМ.
Первый расширенный BIOS, код которого будет выполнен, - это расширение, которое определяет видеокарта (VideoBIOS). Оно размещено по адресу C000h.
Программирование расширенного BIOS связано с решением ряда проблем:
Программирование целесообразно с использованием языка низкого уровня в связи с малым объемом ПЗУ и необходимостью использования специальных функций низкого уровня.
Изменение состояний переменных кода при размещении данного кода в ПЗУ невозможно, что требует корректного перемещении кода в оперативную память с передачей управления.
На этапе выполнения кода BIOS доступен только ряд сервисных функций, которые могут быть использованы для программирования на низком уровне, - это сервис клавиатуры, реализованный в обработчиках 9h и 16h прерываний, видеосервис (10h прерывание) и сервисы диска (13h прерывание).
Если реализуемый пользователем код расширения содержит аварийные выходы, то корректное прерывание выполнения может быть выполнено только через аппаратную перезагрузку ПЭВМ.
Как можно реализовать расширения BIOS (возможность перепрограммирования ПЗУ)?
1.2. Пример программы расширения BIOS для троекратного запроса пароля до загрузки операционной системы
Рассмотрим пример программы расширения BIOS для парольной идентификации и аутентификации пользователей. Необходимо троекратно производить запрос пароля и при верном его наборе работа ПЭВМ продолжается, в противном случае - происходит перезагрузка ПЭВМ, и процедура повторяется заново.
Данная программа реализована на языке Ассемблер.
,MODEL
.CODE
; данный модуль троекратно производит запрос пароля
; при правильном наборе пароля ПЭВМ загружается
; при троекратном неправильном наборе пароля ПЭВМ перезагружается
; BIOS equ TRUE - данная переменная должна быть установлена
; для компиляции кода при записи его в ПЗУ
BIOS equ TRUE
; макрос запроса пароля
; заголовок макроса запроса пароля (pass_password)
pass_password MACRO
mov ch,10
mov cl,36
mov di,offset null_str
call Put_string
mov ch,11
mov cl,36
mov di,offset null_str
call Put_string
mov ch,12
mov cl,36
mov di,offset null_str
call Put_string
END MACRO
org 0
zamok:
; формирование сигнатуры расширения BIOS - 55AAh
; длина кода 8192 байта
; начало исполняемого кода
IFDEF BIOS
db 055h
db 0AAh
db 16
ENDIF
; переход к исполняемому коду
jmp zamok_start
include video.asm
; начало исполняемого кода
zamok_start:
; сохранение адреса кодового сегмента для его последующего вывода
; через последнее слово первой видеостраницы
mov ax,cx
mov bx,0B800h
mov es,bx
mov bx,4000
mov es:[bx],ax
IFDEF BIOS
; код для расширения BIOS, который переносит код в оперативную память
; по адресу 07C0:0 (в данный адрес далее считывается загрузчик ОС)
; в регистре ax запоминаем адрес оперативной памяти 07C0h
mov ax,07C0h
; данный адрес также запоминаем в регистре es
mov es,ax
; сохраняем регистр cx в стеке
push cx
; переписываем содержимое стека в регистр ds
pop ds
mov si,offset zamok
mov cx,offset ozu_group_c
sub cx,offset zamok
mov di,offset zamok
cld
rep movsb
; переход на метку m_go
; переход выполнен путем записи команды перехода (jmp) с аргументами в
; виде данных (сегмент 07C)
db 0EAh
dw offset m_go
dw 07C0h
; на эту точку произойдет переход, поскольку смещения в рамках
; сегмента не изменились, и переменные перенесены вместе с кодом
m_go:
; адрес сегмента изменился, извлекаем сохраненное значение из видеобуфера
mov bx,0B800h
mov es,bx
mov bx,4000
mov ax,es:[bx]
ENDIF
; копируем регистр cs в регистры ds и es через стек
push cs
pop ds
push cs
pop es
IFNDEF BIOS
push cs
pop ax
ENDIF
mov pzu_seg,ax
call clear_screen
mov pb_col,1Fh
; вывод титульного сообщения
mov di,offset title_string
mov ch,0
mov cl,60
mov ah,0Fh
call Put_string
; вывод значения сегмента памяти
mov ch,24
mov cl,10
mov ah,02h
mov di,offset num_mem
call Put_string
mov dx,pzu_seg
mov ah,dh
call Hex2Char
mov al,dl
call Put_byte
mov al,dh
call Put_byte
mov dx,pzu_seg
mov ah,dl
call Hex2Char
mov al,dl
call Put_byte
mov al,dh
call Put_byte
ws_is_pas:
; запрос пароля
mov ah,1Eh
promt_password
mov di,offset use_pas
; ввод пароля
mov ch,12
mov cl,42
; сравнение введенного пароля с эталонным
mov di,offset user_pas
mov si,offset_etal_pas
mov cx,9
cld
rep cmpsb
je ws_good_pas
; неверный пароль
mov di,offset bad_pas
mov ch,16
mov cl,44
mov ah,0Ch
call Put_string
mov ah,0
int 16h
mov di,offset null_str
mov ch,16
mov cl,32
mov ah,07h
call Put_string
; увеличение счетчика попыток
cmp c_oper,2
je ws_err_pas
inc c_oper
jmp ws_is_pas
ws_err_pas:
; пароль трижды введен неправильно
mov di,offset ill_pass
mov ch,16
mov cl,36
mov ah,0Сh
call Put_string
mov ah,0
int 16h
; аппаратная перезагрузка ПЭВМ при неправильном вводе пароля
IFDEF BIOS
db 0EAh
db 0FFF0h
dw 0F000h
ELSE
mov ah,4Ch
int 21h
ENDIF
; верный пароль
ws_good_pas:
call clear_screen
; очистка рабочих переменных, включая буфер клавиатуры и переменные,
; куда был считан пароль и с чем он был сравнен
push es
xor ax,ax
mov es,ax
cmp byte prt es:[417h],20h
mov byte prt es:[417h],0
pop es
; очистка рабочих переменных
mov di,offset ozu_group
mov cx,offset ozu_group_c
sub cx,offset ozu_group
clear_lock2:
mov byte prt [di],0
inc di
loop clear_lock2
; очистка буфера клавиш
push ex
xor ax,ax
mov es,ax
mov byte prt es:[41Ah],1Eh
mov byte prt es:[41Ch],1Eh
pop es
; возврат к основному BIOS
IFDEF
reft
ELSE
mov ax,04C00h
int 21h
ENDIF
; переменные ПЗУ
title_string db "Электронный замок ",0
num_mem db "Память = ",0
end_pass db " Введите пароль ",0
null_str db " ",0
good_pass db "Правильный пароль ",0
bad_pass db "Неправильный пароль ",0
ill_pass db "Рестарт ",0
; переменные ОЗУ
ozu_group:
id_string db "Замок"
user_pass db 32 dup (0)
etal_pas db "goodpas"
c_oper dw 0
pzu_seg dw 0
ozu_group_e:
end zamok
Далее приведен код процедур, которые используются в данной программе и описаны в файле video.asm.
; процедура вывода строки Put_string
; параметры
; регистр ah - цвет
; регистры es:di - строка (окончание /0)
; регистр cl - x - столбец
; регистр ch - y - столбец
Put_string proc near
\
; сохранение регистров
push ax bx dx si di es ds
mov dx,ax
; определение типа монитора
mov ah,0Fh
int 10h
cmp al,7
jnz color1
jmp mono1
mov ax,0B000h
color1:
mov ax,0B800h
mono1:
mov ds,axx
; вычисление смещения в буфере
push cx
xor ax,ax
push dx
mov al,ch
mov bx,160
mul bx
pop dx
xor ch,ch
add ax,cx
mov si,ax
mov ax,dx
pop cx
put_c:
mov al,byte prt es:[di]
cmp al,0
je put_e
mov word prt ds:[si],ax
add si,2
inc di
add cl,2
jmp put_c
put_e:
; окончание
pop ds es di si dx bx ex
ret
Put_string endp
; процедура вывода символа Put_byte
; ax - символ
; регистр cl - x - столбец
; регистр ch - y - столбец
; значение цвета - pb_col
Put_byte proc near
сохранение регистров
push ax bx dx si di es ds
mov dx,ax
; определение типа монитора
mov ah,0Fh
int 10h
cmp al,7
jnz color2
jmp mono2
mov ax,0B000h
color2:
mov ax,0B800h
mono2:
mov ds,axx
; вычисление смещения в буфере
push cx
xor ax,ax
push dx
mov al,ch
mov bx,160
mul bx
pop dx
xor ch,ch
add ax,cx
mov si,ax
mov ax,dx
pop cx
mov bx,word prt ds:[si]
mov bl,al
mov bh, byte prt cs:[pb_col]
mov word prt ds:[si],bx
add cl,2
; окончание
pop ds es di si dx bx ax
ret
pb_col db 0
Put_byte endp
Дата добавления: 2015-08-27; просмотров: 117 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |