Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Современное развитие человеческой цивилизации, вступившей в двадцать первый век, характеризуется наиболее интенсивным использованием компьютерных информационных технологий во всех сферах 19 страница



; процедура пароля

 

E_Passw proc near

 

; регистр cl - x - столбец

 

 

; регистр ch - y - столбец

 

 

push ax cx bx di es

push cs

pop ds

 

; очистка строки пароля

 

 

push cx

mov cx,32

xor bx,bx

xor al,al

e_passw_0:

mov byte prt es:[di+bx],al

inc bx

loop e_passw_0

pop cx

 

; чтение символов пароля

 

 

xor bx,bx

e_passw_1:

mov ah,0

int 16h

cmp al,13

je e_passw_3

cmp al,8

jne e_passw_11

cmp bx,0

je e_passw_12

dec bx

mov byte prt es:[di+bx],0

jmp e_passw_12

e_pass_11:

mov byte prt es:[di+bx],al

inc bx

 

; вывод звездочек

 

 

push cx si

push cx

xor si,si

e_passw_121:

mov al,pb

call Put_byte

cmp si,32

je e_passw_122

inc si

jmp e_passw_121

e_passw_122:

pop cx

xor si,si

e_passw_123:

cmp si,bx

je e_pass_124

mov al,zw

call Put_byte

int si

jmp e_pass_123

e_passw_124:

pop si cx

jmp e_pass_14

e_passw_14:

cmp bx,32

je e_passw_3

jmp e_passw_1

e_passw_3:

pop es di bx cx ax

ret

E_Passw endp

zw db "*"

pb db " "

 

; процедура очистки экрана

 

clear_screen proc near

push ax bx cx dx ds

mov ah,0Fh

int 10h

cmp al,7

jnz clear1

jmp clear2

mov ax,0B000h

clear1:

mov ax,0B800h

clear2:

mov ds,ax

 

; очистка экрана

 

xor bx,bx

mov cx,4000

clear3:

mov word prt ds:[bx],0000h

add bx,2

loop clear3

pop ds dx cx bx ax

ret

ckear_screen endp

 

; макросы

 

view_byte MACRO

mov ah,byte prt [di]

call Hex2Char

mov al,dl

call Put_byte

mov al,dh

call Put_byte

inc di

ENDM

 

Byte2Hex MACRO reg

cmp reg,10

jc $+5

add reg,'A'-10-'0'

add reg,'0'

ENDM

 

; процедура преобразование регистра ah в dx

 

Hear2Char proc near

push bx cx; регистры bx и сx в стек

mov bl,ah

and bl,0F0h

mov cl,4

sar bl,cl

and bl,0Fh

Byte2Hex bl

mov dl,bl

mov bl,ah

and bl,0Fh

Byte2Hex bl

mov dh,bl

pop cx bx

ret

Head2Char endp

2. Защита на уровне загрузчиков операционной системы

 

Локализация защитных механизмов в структурах, связанных с начальной загрузкой операционной системы, позволяет решать ряд важных задач компьютерной безопасности. Это следующие задачи:

 

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

Защита от несанкционированной загрузки операционной системы.

Получение специального вида загрузочных носителей.

 

Решение этих задач не всегда возможна с помощью расширений BIOS.

 

 

Первая проблема возникает в том случае, если процедуры идентификации и аутенфикации не решаются на этапе ранней аппаратной компоненты ПЭВМ. Этот вопрос можно решить при помощи разделения действий с процедурами начальной загрузки на ранней стадии сеанса работы пользователя - на уровне загрузчиков операционной системы.

 

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



 

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

 

Решение этих проблем связана с программированием модифицированного загрузчика операционной системы.

 

Рассмотрим процесс первоначальной загрузки операционной системы после выполнения всех процедур, реализованных в BIOS (в том числе расширенного BIOS):

 

 

Считывается сектор с номером 1 в дисководе A - с нулевой дорожки нулевой поверхности, либо с дисковода с адресом 80h в зависимости от установки Setup в BIOS.

 

Считанный код размером 512 байт загружает его с адреса 0:7С00h в оперативную память, после чего управление передается на данный адрес.

 

На дискете в этом месте находится программа начальной загрузки (BOOT - сектор), на жестком диске в первом секторе размещается Master Boot Records, который адресует выполнение активного загрузчика операционной системы.

 

Для модификации загрузчика необходимо в общем случае проделать следующие операции:

 

заместить первичный код загрузчика собственным фрагментом;

сохранить исходный код загрузочного сектора (в случае необходимости его выполнения;

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

 

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

Для дискеты предлагался следующий способ. Нулевая дорожка дискеты целиком копируется на место k-й дорожки. Исходная нулевая дорожка заполняется нулями (или модифицируется как-то иначе для получения нужного вида дискеты). На место загрузочного сектора устанавливается программа, код которой приводится ниже.

 

Предлагаемый способ позволяет исключить пользование изготовленной дискетой без загрузки с нее. Дополнив DOS программами проверки целостности, можно добиться соблюдения всех требований изолированности программно-аппаратной среды.

 

Важным моментом является также необходимость немедленного после загрузки DOS входа в прикладные программы и выхода из них только путем "холодной" перезагрузки ПЭВМ.

 

Код модифицированного загрузчика последовательно производит следующие действия:

 

очищает текстовый видеобуфер;

фиксирует адрес прерывания работы с диском int 13h;

 

уменьшает на один килобайт размер ОЗУ в переменной ROM Bios;

 

перемещает резидентную часть модифицированного загрузчика в область памяти, которая после коррекции размера будет недоступна;

переопределяет вектор int 13h на установленный "резидентно" обработчик;

 

перемещает код на 512 байт назад и производит чтение исходного (первичного) загрузчика.

 

 

.MODEL TINY

 

.CODE

 

org 0

 

start:

 

; установка DS на экран

 

mov ax,0B800h

mov ds,ax

; очистка экрана

 

xor bx,bx

mov cx,4000

m17:

mov word prt ds:[bx],0700h

add bx,2

loop m17

; чтение адреса старого прерывания int 13h в переменную old_13

 

cli

xor ax,ax

mov ds,ax

mov bx,13h*4

mov ax,ds:[bx]

mov word prt cs:[old_13+7C00h],ax

add bx,2

mov ax,ds:[bx]

mov word prt cs:[old_13+7C02h],ax

sti

; уменьшение на килобайт объема доступной памяти

 

xor ax,ax

mov es,ax

mov bx,413h

mov ax,es:[bx]

dec ax

mov cx,ax

; вычисление физического адреса этой точки

 

mov bx,040h

mul bx

mov dx,cx

mov es,ax

mov ax,cs

mov ds,ax

; установка резидентной части в вычисленное место

 

mov cx,120

mov si,offset new_13

add si,7C00h

mov di,offset new_13

cld

rep movsw

; установка измененного объема доступной памяти

 

xor bx,bx

mov ds,bx

mov bx,413h

mov ds:[bx],dx

; подмена прерывания int 13h

 

cli

xor ax,ax

mov ds,ax

mov bx,13h*4

mov word prt ds:[bx],offset new_13

mov ax,es

add bx,2

mov ds:[bx],ax

sti

; перемещение кода на 512 байт назад

 

xor ax,ax

mov es,ax

mov ds,ax

mov cx,200h

mov di,7E00h

mov si,7C00h

cld

rep movsb

; переход на перемещенный код

 

db 0EAh

dw 07E889h

dw 0

; в эту точку загрузка старого BOOT сектора

 

mov ax,0201h

mov ch,0

mov cl,1

mov dh,0

mov dl,0

mov bx,cs

mov es,bx

mov bx,7C00h

int 13h

; блокирование клавиатуры

 

mov al,2

out 21h,al

; переход обратно на 0:7C00h

 

db 0EAh

db 07C00h

dw 0

; резидентная часть

 

new_13:

pushf

cmp cs:[tg],1

je ost

cmp dl,0

jne ost

cmp ah,3

jne read

cmp ch,0

jne ost

mov ch,10

jmp ost

read:

cmp ah,2

jne ost

cmp ch,0

jne ost

move ch,10

ost:

popf

jmp dword prt cx:[old_13]

old_13 dd 0

tg dw 0

db 291 dup(0)

db 55h

db 0AAh

end start

По коду резидентной части легко видеть, что k=10 в данном случае. Если нулевая дорожка копируется не на 10-ю, а на дорожку с другим номером, то обработчик должен быть скорректирован (возможно, динамически по бинарному коду) в нужных позициях.

 

 

После установки нового обработчика int 13h, как легко видеть, процедура чтения загрузчика, выполненная штатным образом приведет к чтению BOOT сектора с k-й дорожки (где и находится исходный BOOT сектор). Кроме того, все последующие процедуры операционной среды и прикладного ПО, работающего в загруженной таким образом ОС, будут работать с дискетой так, как с дискетой исходного формата (перемещения нулевой дорожки не было).

 

 

Рассмотренная технология соответствует исторически самому раннему способу построения ИПС- "невидимая дискета". Этот способ заключается в том, что критичное к воздействию РПВ программное обеспечение выносится на системную дискету, пользование которой (в том числе и выполнение программ) невозможно без загрузки DOS именно с этой дискеты. Практически такая дискета выглядит довольно нетривиально: будучи вставленной в дисковод она выглядит как неформатированная (или, в исходном варианте, пустая). После загрузки с такой "пустой" дискеты пользователь сразу входит в заданную программную среду и работает с ней.

 

Приложение

 

 

Основные функциональные регистры микропроцессора

 

 

Состав регистров идентичен для всех 32-разрядных регистров микропроцессоров семейства Pentium.

Группа содержит следующие регистры:

 

Регистры общего назначения (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP), предназначенные для хранения данных и адресов. Младшие 16 разрядов этих регистров доступны под именами AX, BX, CX, DX, SI, DI, BP, SP. При операциях с байтами регистров AX, BX, CX, DX можно отдельно обращаться к старшим байтам (разряды 15..8) - под именами AH, BH, CH, DH и к младшим байтам (разряды 7..0) - под именем AL, BL, CL, DL.

 

 

Сегментные регистры (CS, SS, DS, ES, FS, GS), определяющие адресуемый сегмент памяти. В реальном режиме содержимое этих регистров непосредственно задает значение базового адреса соответствующего сегмента.

 

Указатель команд EIP, представляющий собой 32-разрядный регистр, содержимое которого используется в качестве смещения при определении адреса следующей выполняемой команды. Смещение задается относительно базового адреса, задаваемого регистром CS. Младшие 16 бит EIP (биты 15..0) содержит 16-разрядный указатель команд с именем IP, который используется при 16-разрядной адресации. Содержимое EIP(IP) изменяется при выполнении команд передачи управления и прерываний.

 

 

Регистр флагов EFLAGS, содержащий:

 

биты (CF, AF, PF, ZF, SF, OF) признаков состояния, отражающего результат выполнения команды;

 

бит управления DF, определяющего направление изменения индексных регистров;

 

биты (TF, IF, IOPL, NT, RF, VM, AC, VIF, VIP, ID) системных признаков, которые устанавливаются операционной системой. Младшие шестнадцать бит данного регистра (биты 15..0) представляют регистр флагов для микропроцессоров 8086, 80286.

 

 

Форматы команд и методы адресации

 

 

Набор команд процессора PS обеспечивает выполнение операций над операндами, которые могут содержать 8, 16 или 32 разряда и находится в регистре, памяти или непосредственно в команде. Набор включает безадресные, одно- и двух адресные команды. Для различных типов команд определены форматы, задающие порядок размещения информации о выполняемой операции и способов выбора операндов. Команда может содержать от 1 до 12 байт. Общий формат команды содержит следующие поля:

 

 

Код операции OPC. Это поле занимает 1 или 2 байта.

 

Байты адресации MODR/M, SIB. Байт адресации MODR/M содержит три поля. Поля MOD и R/M задают адрес одного из операндов, который может хранится в регистре или ячейке памяти. Поле REG/OPC в одноадресных командах содержит дополнительные биты кода операции, в двухадресных командах - код регистра, в котором хранится второй из операндов. Байт SIB содержит 3-битные поля INDEX и BASE, определяющие выбор индексного и базового регистров, и поле ЫЫ, задающее масштабный коэффициент для модификации значения индекса.

 

 

Процессор реализует ряд способов адресации операндов. К ним относятся:

 

непосредственная;

регистровая;

косвенно-регистровая;

прямая базовая;

косвенная базовая.

9.1. Протокол идентификации и аутентификации в ОС Windows 2000

При входе в систему пользователь передает в системную функцию LogonUser свое имя, пароль и имя рабочей станции или домена, в котором данный пользователь зарегистрирован. Если пользователь успешно идентифицирован, функция LogonUser возвращает указатель на маркер доступа пользователя, который в дальнейшем используется при любом его обращении к защищенным объектам системы. Механизм идентификации и аутентификации пользователя в ОС Windows 2000 реализуется специальным процессом Winlogon, который активизируется на начальном этапе загрузки ОС и остается активным на протяжении всего периода ее функционирования. Ядро операционной системы регулярно проверяет состояние данного процесса и в случае его аварийного завершения происходит аварийное завершение работы всей операционной системы. Помимо идентификации пользователя Winlogon реализует целый ряд других функций, таких, как переключение рабочих полей (desktop), активизация хранителей экрана, а также ряд сетевых функций.

 

Процесс Winlogon состоит из следующих модулей:

 

ядра процесса Winlogon.exe;

библиотеки GINA (Graphic Identification aNd Autentication - графической библиотеки идентификации и аутентификации) - динамической библиотеки функций, используемых для «локальной» идентификации пользователя (идентификации пользователя на рабочей станции);

библиотек сетевой поддержки (Network Provider DLLs), реализующих «удаленную» идентификацию пользователей (идентификацию пользователей, обращающихся к ресурсам сервера через сеть). В каждый момент времени Winlogon может находиться в одном из следующих состояний:

 

Рис.9.1. Временная диаграмма процессов аутентификации

 

Когда пользователь еще не вошел в систему, Winlogon находится в состоянии 1, пользователю предлагается идентифицировать себя и предоставить подтверждающую информацию (в стандартной конфигурации - пароль). Если информация, введенная пользователем, дает ему право входа в систему, активизируется оболочка системы (как правило, Program Manager) и Winlogon переключается в состояние 2.

 

Хотя в состоянии 1 ни один пользователь не может непосредственно взаимодействовать с системой, в случае, если на рабочей станции запущен Server Service, пользователи могут обращаться к ресурсам системы через сеть.

 

Когда пользователь вошел в систему, Winlogon находится в состоянии 2. В этом состоянии пользователь может прекратить работу, выйдя из системы, или заблокировать рабочую станцию. В первом случае завершает все процессы, связанные с завершающимся сеансом, и переключается в состояние 1. Во втором случае Winlogon выводит на экран сообщение о том, что рабочая станция заблокирована и переключается в состояние 3.

 

В состоянии 3 Winlogon выводит на экран приглашение пользователю идентифицировать себя и разблокировать рабочую станцию. Это может сделать либо заблокировавший ее пользователь, либо администратор. В первом случае система возвращается в то состояние, в котором находилась непосредственно перед блокировкой, и переключается в состояние 2. Во втором случае все процессы, связанные с текущим сеансом, завершаются, и Winlogon переключается в состояние 1.

 

Когда рабочая станция заблокирована, фоновые процессы, запущенные пользователем до блокировки, продолжают выполняться. Сразу после загрузки Winlogon инициализирует GINA, вызывая последовательно ее функции WlxNegotiate и Wlxlnitialize. Рабочая станция переходит в состояние «Пользователь не вошел в систему».

 

Когда пользователь собирается войти в систему с помощью комбинации клавиш Ctrl-Alt-Del, Winlogon вызывает функцию WlxLoggedOutSas библиотеки GINA. WlxLoggedOutSas осуществляет попытку входа в систему, вызывая системную функцию LogonUser. В зависимости от информации, введенной пользователем, GINA возвращает процессу Winlogon одно из следующих значений:

 

WLX_SAS_ACTION_LOGON - пользователь вошел в систему. Получив это значение, Winlogon вызывает функцию WlxActivateUserShell библиотеки GINA, которая загружает индивидуальную оболочку пользователя;

WLX_SAS_ACTION_NONE - пользователь не смог войти в систему. Состояние системы не изменяется;

WLX_SAS_ACTION_SHUTDOWN - пользователь потребовал завершить работу системы. Получив данное возвращаемое значение, Winlogon последовательно вызывает функции библиотеки GINA WlxLogojfn WlxShutdown.

Если пользователь нажал комбинацию Ctrl-Alt-Del, уже войдя в систему, Winlogon вызывает функцию WlxLoggedOnSas. GINA выводит на экран диалоговое окно и, в зависимости от решения пользователя, выполняет следующие действия:

 

если пользователь решил не предпринимать никаких действий, GINA возвращает в Winlogon значение WLX_SAS_ACTION_NONE. Winlogon возвращает систему в то же состояние, в котором она была до нажатия комбинации Ctrl-Alt-Del;

если пользователь желает просмотреть список активных процессов, GINA возвращает значение WLX_SAS_ACTION_TASKLIST. Winlogon возвращает систему в состояние, в котором она была до нажатия комбинации Ctrl-Alt-Del и активизирует процесс Task Manager,

если пользователь желает заблокировать рабочую станцию, GINA возвращает значение WLX_SAS_ACTION_LOCK_WKSTA. Winlogon блокирует систему;

если пользователь желает выйти из системы, GINA возвращает значение WLX_SAS_ACTION_LOGOFF. Winlogon в ответ вызывает функцию GINA WlxLogoff;

если пользователь желает завершить работу с компьютером, GINA возвращает значение WLX_SAS_ACTION_SHUTDOWN, Winlogon последовательно вызывает функции GINA WlxLogoff к WlxShutdown.;

если пользователь желает перезагрузить компьютер, GINA возвращает значение WLX_SAS_ACTION_SHUTDOWN_REBOOT. Winlogon последовательно вызывает функции GINA WlxLogoff и WlxShutdown. По окончании выгрузки системы компьютер автоматически перезагружается;

если пользователь желает, закончить работу с компьютером и выключить его, GINA возвращает значение WLX_SAS_ACTION_SHUTDOWN_ REBOOT_ POWER_OFF. Winlogon последовательно вызывает функции GINA WlxLogoff и WlxShutdown. По окончании выгрузки системы компьютер автоматически выключается. Если аппаратная часть компьютера не допускает программного отключения питания, данное возвращаемое значение имеет тот же эффект, что и WLX_SAS_ACTION_ SHUTDOWN;

если пользователь желает изменить свой пароль, GINA выводит на экран соответствующее диалоговое окно, по окончании ввода пользователем нового пароля вызывает функцию WlxChangePasswordNotify и затем возвращает в Winlogon значение WLX_SAS_ACTION_PWD_ CHANGED.

Когда рабочая станция заблокирована, а пользователь нажал комбинацию Ctrl – Alt - Del, Winlogon вызывает функцию GINA WlxWkstaLockedSas. GINA запрашивает у

пользователя параметры идентификации и проверяет их. В зависимости от результата проверки GINA возвращает одно из следующих значений:

WLX_UNLOCK_WKSTA - разблокировать рабочую станцию;

WLX_FORCE_LOGOFF - принудительный выход из системы с последующим входом в систему администратора;

WLX_NO_ACTION - рабочая станция остается заблокированной.

Если пользователь вошел в систему и один из процессов вызывает системную функцию ExitWindowsEx, Winlogon в зависимости от параметров ExitWindowsEx вызывает либо WlxLogoff, либо последовательно WlxLogoff и WlxShutdown. При этом соответственно, либо пользователь выходит из системы, либо система завершает работу.

Если GINA получает от пользователя нестандартную SAS, она вызывает функцию Winlogon WlxSasNotify, после чего Winlogon вызывает одну из вышеперечисленных функций GINA, в зависимости от контекста, в котором была получена SAS.

 

9.2. Протокол аутентификации Kerberos

 

Windows 2000 поддерживает несколько технологий аутентификации для различных целей. Основным методом идентификации в Windows 2000 является протокол аутентификации Kerberos.

 

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

 

Аутентификация выполняется следующим образом:

 

1. Клиент посылает запрос серверу аутентификации (Authentication Server, AS) на информацию, однозначно идентифицирующую некоторый нужный клиенту сервер.

 

2. Сервер AS передает требуемую информацию, зашифрованную с помощью известного пользователю ключа. Переданная информация состоит из билета сервера и временного ключа, предназначенного для шифрования (часто называемого ключом сеанса) С.

 

3. Клиент пересылает серверу билет, содержащий идентификатор клиента и ключ сеанса, зашифрованные с помощью ключа, известного серверу.

 

4. Теперь ключ сеанса известен и клиенту, и серверу. Он может быть использован для аутентификации клиента, а также для аутентификации сервера.

 

Ключ сеанса можно применять для шифрования передаваемой в сеансе информации или для взаимного обмена ключами подсеанса, предназначенными для шифрования последующей передаваемой информации.ъ

 

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

 

Протокол Kerberos состоит из нескольких субпротоколов (или протоколов обмена сообщениями). Существует два метода, которыми клиент может запросить у сервера Kerberos информацию, идентифицирующую определенный сервер. Первый способ предполагает, что клиент посылает AS простой текстовый запрос билета для конкретного сервера, а в ответ получает данные, зашифрованные с помощью своего секретного ключа. Как правило, в данном случае клиент посылает запрос на билет, позволяющий получить билет (Ticket Granting Ticket, TGT), который в дальнейшем используется для работы с выдающим билеты сервером (Ticket Granting Server, TGS). Второй способ предполагает, что клиент посылает TGT-билеты на TGS-сервер так же, как будто он обменивается информацией с другим сервером приложений, требующим аутентификации Kerberos.

 

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

 

Для идентификации партнеров по транзакции клиент посылает билет на сервер. Поскольку посылаемый билет "открыт" (некоторые его части зашифрованы, но они не помешают выполнить посылку копии) и может быть перехвачен и использован злоумышленником, для подтверждения истинности партнера, пославшего билет, передается дополнительная информация, называемая аутентификатором. Она зашифрована с помощью ключа сеанса и содержит отсчет времени, подтверждающий, что сообщение было сгенерировано недавно и не является копией оригинальной посылки. Шифрование аутентификатора с помощью ключа сеанса доказывает, что информация была передана истинным партнером по обмену данными. Поскольку, кроме запрашивающего партнера и сервера, никто не знает ключ сеанса (он никогда не посылается по сети в открытом виде), с его помощью можно полностью гарантировать истинность партнера. Целостность сообщений, которыми обмениваются партнеры, гарантируется с помощью ключа сеанса (передается в билете и содержится в информации идентификации партнера). Этот подход позволяет обнаружить атаки типа посылки злоумышленником перехваченной копии запроса и модификации потока данных. Это достигается генерированием и пересылкой контрольной суммы (хэш-функции) сообщения клиента, зашифрованной с помощью ключа сеанса. Безопасность и целостность сообщений, которыми обмениваются партнеры, может быть обеспечена шифрованием передаваемых данных с помощью ключа сеанса, передаваемого в билете и содержащегося в информации идентификации партнера.

 

9.3. Cсохранность паролей учетных записей

 

Несомненно, самым главным аспектом при анализе безопасности Windows 2000 является сохранность паролей учетных записей с правами Администратора, т.к. знание пароля позволяет получить полный доступ к этому компьютеру как локально, так и по сети.

 

Информация об учетных записях пользователей хранится в "HKEY_LOCAL_MACHINE SAM" (SAM - Security Account Manager) реестра. А так как в Windows 2000 все ветки реестра "физически" расположены на диске в каталоге %SystemRoot%System32Config в нескольких файлах, то и эта ветка - не исключение. Она располагается в файле SAM. Этот файл по умолчанию недоступен для чтения никому, даже Администратору, но все-таки к нему можно получить доступ. К файлу SAM (а также к остальным файлам без расширений в этой директории - system, software и др.) нет доступа по той причине, что Windows 2000 используют реестр "на лету" - т.е. при внесении в реестр изменений они становятся доступны сразу же и перезагрузка компьютера не требуется, но для этого системе нужно иметь монопольный доступ к файлам реестра.


Дата добавления: 2015-08-27; просмотров: 156 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.044 сек.)







<== предыдущая лекция | следующая лекция ==>