Защита данных от несанкционированного доступа

Автор работы: Пользователь скрыл имя, 22 Декабря 2010 в 20:48, курсовая работа

Описание

Появившиеся в начале 80-ых персональные ЭВМ (ПЭВМ или ПК) прочно вошли во все сферы человеческой деятельности. Вместе с ними у эксплуатирующих ПЭВМ организаций и ведомств возникли и многочисленные проблемы. Одна из них — защита информации. Согласно статистическим данным более 80% компаний и агентств несут финансовые убытки из-за нарушения безопасности данных.
Проблема защиты информации представляет собой совокупность тесно связанных проблем в областях права, организации управления, разработки технических средств, программирования и математики. Одна из центральных задач проектирования систем защиты состоит в рациональном распределении имеющихся ресурсов.

Содержание

Введение . . . . . . . . . . . 3
1. Постановка задачи . . . . . . . . . 4
1. 1. Организационно-экономическая сущность задачи . . . . 4
1. 2. Входные данные . . . . . . . . . 6
1. 3. Постоянная информация . . . . . . . . 6
1. 4. Выходная данные . . . . . . . . . 6
2. Вычислительная система . . . . . . . . 7
2. 1. Операционная система . . . . . . . . 7
2. 2. Технические средства реализации задачи . . . . . . 8
2. 3. Программные средства . . . . . . . . 8
3. Алгоритм задачи . . . . . . . . . 10
4. Описание программы . . . . . . . . . 14
5. Описание применения программы . . . . . . 16
6. Заключение . . . . . . . . . . 17
Приложение 1. Листинг программы . . . . . . . 18
Приложение 2. Листинг библиотек . . . . . . . 39
Приложение 3. Пример работы программы . . . . . . 45
Список литературы . . . . . . . . . 47

Работа состоит из  1 файл

Защита данных от несанкционированного доступа.DOC

— 201.50 Кб (Скачать документ)

         int  21h

         inc  bx

         cmp  bx, len_enter

         jb  pr_ent

         push  cx

         mov  cx, len_pas                       ;Ввести пароль

         lea  di, buff

rd_pass:

         mov  al, 7

         mov  ah, 0Ch

         int  21h

         stosb

         loop  rd_pass

         pop  cx

         mov  bx, 0

cmp_p:

         mov  al, password[bx]              ;Сравнить пароль с введенным

         sub  al, 60h

         cmp  al, buff[bx]

         jne  repeat

         inc  bx

         cmp  bx, len_pas

         jb  cmp_p

equal:

         pop  ds                                ;Пароль верный

         pop  es                                    ;Перейти к основной

         db  0CBh                                   ;программе

repeat:

         loop  pr_1

dos:

         jmp  cs_1

ms_1     db  '*', 10, 13, '$'

cs_1:

         mov  ah, 9                                 ;Пароль не верный

         lea  dx, ms_1

         int  21h                                   ;Вывести сообщение

         mov  ah, 4Ch

         int  21h                                   ;Выйти в DOS

copyright db       'Copyright(C) Юзефович Артем ( МГВРК,'

            db       ' Минск ), 1996'

              db       0Dh, 0Ah, 'Запрос'

             db       ' пароля.', 0Dh, 0Ah

                db       0Dh, 0Ah, 0Dh, 0Ah, '$'

code     ends

end  start 

{****************************************************************************}

{****************************************************************************}

{**                                                                        **}

{**                     КП "ЗАЩИТА ДАННЫХ ОТ НСД"                          **}

{**              Выполнил учащийся гр.46491 ЮЗЕФОВИЧ АРТЕМ                 **}

{**                                 1996                                   **}

{**                                                                        **}

{**                           Ключевая дискета                             **}

{****************************************************************************}

{****************************************************************************}

code  segment

         assume  cs: code, ds:code, es: code, ss: code

         org  100h   ;Счетчик команд-100h

start:   jmp  print

recsize  equ  512                          ;Размер сектора

buffer   db  recsize dup(?)      ;Буферы ввода-вывода

bufrez   db  recsize dup(?)

buffer1  db  recsize dup(?)

protect    label  byte

         db  'T'+60h,'h'+60h,'i'+60h,'s'+60h

         db   80h, 80h

         db  'i'+60h,'s'+60h

         db   80h, 80h

         db  'k'+60h,'e'+60h,'y'+60h

         db   80h, 80h

         db  'd'+60h,'i'+60h,'s'+60h,'k'+60h

len_enter2 equ  $-protect         ;Длина сообщения 

dsk_key label  byte

         db  'Э'+10h,'т'+10h,'о'+10h

         db   30h, 30h

         db  'н'+10h,'е'+10h

         db   30h, 30h

         db  'к'+10h,'л'+10h,'ю'+10h,'ч'+10h

         db  'е'+10h,'в'+10h,'а'+10h,'я'+10h

         db   30h, 30h

         db  'д'+10h,'и'+10h,'с'+10h,'к'+10h

         db  'е'+10h,'т'+10h,'а'+10h

         db  6Ah-50h, 6Dh-50h

len_enter1 equ  $-dsk_key       ;Длина сообщения 

enter_pas label  byte

         db  'В'+10h, 30h,'с'+10h, 30h,'т'+10h, 30h,'а'+10h, 30h

         db  'в'+10h, 30h, 'ь'+10h, 30h, 'т'+10h, 30h, 'е'+10h, 30h

         db   30h, 30h, 30h

         db  'к'+10h, 30h,'л'+10h, 30h,'ю'+10h, 30h,'ч'+10h, 30h

         db  'е'+10h, 30h,'в'+10h, 30h,'у'+10h, 30h,'ю'+10h, 30h

         db   30h, 30h, 30h

         db  'д'+10h, 30h,'и'+10h, 30h,'с'+10h, 30h,'к'+10h, 30h

         db  'е'+10h, 30h,'т'+10h, 30h,'у'+10h, 30h

         db   30h, 30h, 30h

         db  'и'+10h

         db   30h, 30h, 30h

         db  'н'+10h, 30h,'а'+10h, 30h,'ж'+10h, 30h,'м'+10h, 30h

         db  'и'+10h, 30h,'т'+10h, 30h,'е'+10h, 30h

         db   30h, 30h

         db  'В'+10h, 'В'+10h, 'О'+10h, 'Д'+10h

         db  6Ah-50h, 6Dh-50h

len_enter  equ  $-enter_pas      ;Длина сообщения

print:

         push  es                         ;Сохранение регистров

         push  ds

         push  cs

         push  cs

         pop  ds                        ;cs=>ds

         pop  es                         ;cs=>es 

         mov  ah, 2

         mov  bx, 0

pr_ent:

         mov  dl, enter_pas[bx] ;Вывод сообщения

         sub  dl, 10h

         int  21h

         inc  bx

         cmp  bx, len_enter

         jb  pr_ent

         mov  ah, 08h           ;Ожидание нажатия Ввода

         int  21h

         mov  al, 0

         mov  cx, 1

         mov  dx, 1

         mov  bx, offset buffer

         int  25h    ; считали FAT

         pop  dx                        ;25h и 26h оставляют лишнее

         mov  al, 0                       ;слово в стеке, извлекаем его

         mov  cx, 1

         mov  dx, 1

         mov  bx, offset bufrez ;Сохраняем резервную копию

         int  25h                       ;FAT

         pop  dx

         mov  bx, offset buffer ;Процедура,которая определяет

         mov  ax, 118                  ;запись FAT по номеру сектора

         mov  cx, ax

         shl  ax, 1

         add  ax, cx

         test  ax, 1

         pushf

         shr  ax, 1

         add  bx, ax

         mov  ax, [bx]

         popf

         jnz  getFAT11

         and  ax, 0FFFh

         jmp  getFAT21 

getFAT11:

         shr  ax, 4

getFAT21:

         cmp  ax, 0ff7h      ;1-ая проверка. BAD-?

         jne  no_disk1            ;НЕТ 

         mov  bx, offset buffer   ;ДА

         mov  ax, 120

         mov  cx, ax

         shl  ax, 1

         add  ax, cx

         test  ax, 1

         pushf

         shr  ax, 1

         add  bx, ax

         mov  ax, [bx]

         popf

         jnz  getFAT111

         and  ax, 0FFFh

         jmp  getFAT212

getFAT111:

         shr  ax, 4

getFAT212:

         cmp  ax, 0ff7h        ;2-ая проверка. BAD-?

         jne  no_disk1             ;НЕТ

         jmp  f1

no_disk1:

           jmp  no_disk

f1: 

good  macro  x, y                     ;Макроопределение, которое

         mov  bx, offset buffer   ;помечает сектор, как

         mov  ax, x                    ;свободный(занятый, плохой)

         mov  cx, ax

         shl  ax, 1

         add  ax, cx

         test  ax, 1

         pushf

         shr  ax, 1

         add  bx, ax

         popf

         mov  ax, y

         mov  [bx], ax

      endm

         

      good  118, 0h              ;Пометить, как свободный

         good  120, 0h                    ;Пометить, как свободный 

fat  macro  b

         mov  al, 0

         mov  cx, 1

         mov  dx, 1

         mov  bx, offset b

         int  26h                     ;Записали 1-ую копию FAT

         pop  dx

      endm 

         fat  buffer                  ;Запись FAT

Информация о работе Защита данных от несанкционированного доступа