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

Автор: Пользователь скрыл имя, 26 Декабря 2011 в 13:54, курсовая работа

Краткое описание

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

Оглавление

Введение . . . . . . . . . . . 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 файл

KP_MAX.DOC

— 201.50 Кб (Скачать)

    — “Блокировать винчестер” (запрет записи любых данных на винчестер); 

    КП 46.41010.301 ПЗ

  1. “Ключевая дискета”:

    — “Добавить проверку по ключу” (защита EXE- и COM-файлов с помощью

          ключевой дискеты);

  1. “Криптография”:

    — “Зашифровать файл данных” (зашифрование выбранного файла);

    — “Расшифровать файл данных” (расшифрование выбранного файла);

  1. “Настройки”:

    — “Криптография” (изменение настроек криптографии);

    — “Пароли” (изменение пароля входа в систему);

  1. “О Программе” (информация о программе).

    Во всех случаях , кроме блокировки винчестера, сначала необходимо выбрать файл для работы. Для установки защиты паролем или по ключевой дискете выбирается EXE- или COM-файл, для шифрования — файл любого типа. 

    6. Заключение 

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

    RANKпакет защиты от НСД. Этот пакет реализует функцию контроля доступа к EXE- и COM-файлам. Следует отметить, что анализ разграничения доступа к программам ставит под серьезное сомнение возможность реализации такой функции без дополнительных мероприятий.

    LATCH — комплекс программ защиты ПЭВМ от НСД. Этот комплекс обеспечивает безопасность данных , хранящихся на винчестере. При несанкционированном доступе происходит “зависание” ПЭВМ или не обнаруживается НЖМД.

    Тезис о невозможности обнаружения НЖМД вызывает серьезные сомнения: например, для контроллеров SCSI не требуется определение типа НЖМД в памяти CMOS, так как параметры винчестера могут быть считаны с помощью команды контроллера. 
 
 
 
 
 
 
 
 
 
 

    Приложение 1

    Листинг программы 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

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

{**                                                                        **}

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

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

{**                                 1996                                   **}

{**                                                                        **}

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

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

{$M 10240, 0,20480} {Распределение памяти}

Program Sub_Rosa;

Uses

  App, Dialogs, Drivers, Menus, MsgBox, Objects,

  Validate, Views, Memory, StdDlg, Editors, {Модули Turbo Vision, далее - TV}

  CRT, DOS, {Стандартные модули}

  SetConf; {Модуль функции привязки к BIOS}

Var

  MyRes                : TResourceFile; {Переменная файла ресурсов, TV}

  FName, MainDir, DName: string; {Переменные работы с файлами и каталогами}

  MainPass, Pass       : string; {Переменные паролей}

  Pos                  : string[3];

  FilePass             : file of char; {Переменная файла паролей}

  OptFile, OptInd      : word; {Переменные опций}

  Int09_Save           : pointer; {Переменная адреса 09h прерывания} 

Const {Константы кодов команд, TV}

  cmAboutBox  =  700; {Окно "О Программе"}

  cmCode      = 1001; {Кодировать файл}

  cmDeCode    = 1002; {Декодировать файл}

  cmSetPass   = 1005; {Установить пароль на вход в систему}

  cmLockDisk  = 1006; {Запретить доступ к винчестеру}

  cmOptions   = 1007; {Опции криптографии}

  cmKeyDisk   = 1008; {Ключевая дискета}

  cmPasswords = 1009; {Пароль на исполняемый файл}

  cmChangePass= 1010; {Сменить пароль на вход в систему} 

  SetPass     = 'passw.com';

  KeyDisk     = 'keydisk.com'; 

  RMenuBar: TStreamRec = (            {Запись для работы с потоком, TV}

    ObjType: 2000;

    VmtLink: Ofs(TypeOf(TMenuBar)^);

    Load: @TMenuBar.Load;

    Store: @TMenuBar.Store); 

Type 

  {Установка опций криптографии}

  POptions = ^TOptions;

  TOptions = object(TDialog)

    constructor Init;

  end; 

  {Объект для работы с текстом}

  PMyStaticText = ^TMyStaticText;

  TMyStaticText = object(TStaticText)

    function GetPalette: PPalette; virtual; {Переопределение палитры}

  end; 

  {Объекты для работы с файлами и каталогами}

  PMyFDialog = ^TMyFDialog;

  TMyFDialog = object(TFileDialog)

    function GetPalette: PPalette; virtual;

  end; 

  PMyFileDialog = ^TMyFileDialog;

  TMyFileDialog = object(TMyFDialog)

    constructor Init(AWildCard: tWildStr; const ATitle,

    InputName: string; AOptions: Word; HistoryId: Byte);

  end; 

  PDirDialog = ^TDirDialog;

  TDirDialog = object(TChDirDialog)

    function GetPalette: PPalette; virtual;

  end; 

  PMyChDirDialog = ^TMyChDirDialog;

  TMyChDirDialog = object(TDirDialog)

    constructor Init(AOptions: Word; HistoryId: Word);

    procedure SetUpDialog;

    function Valid(Command: Word): Boolean; virtual;

  end; 
 

  {Установка основного фона программы}

  PMyBackground = ^TMyBackground;

  TMyBackground = object(TBackground)

    Text: TTitleStr;

    constructor Init(var Bounds: TRect; AText: TTitleStr);

    procedure Draw; virtual;

  end; 

  PMyDesktop = ^TMyDesktop;

  TMyDesktop = object(TDesktop)

    procedure InitBackground; virtual;

  end; 

  {Объект "О Программе"}

  PAboutBox = ^TAboutBox;

  TAboutBox = object(TDialog)

    constructor Init;

  end; 

  {Основной объект}

  PMyApp = ^TMyApp;

  TMyApp = object(TApplication)

    constructor Init; {инициализация}

    destructor  Done; virtual; {завершение работы}

    procedure   HandleEvent(var Event: TEvent); virtual; {обработка событий}

    procedure   InitMenuBar; virtual; {инициализация меню}

    procedure   InitDeskTop; virtual; {инициализация рабочего поля}

    procedure   InitStatusLine; virtual; {инициализация строки состояния}

    procedure   FileOpen(WildCard: PathStr); {окно для работы с файлами}

    function    GetPalette: PPalette; virtual; {изменение стандартной палитры}

  end; 
 

{ Русифицированная функция формирования сообщения }

function MyMessageBoxRect(var R: TRect;

           const Msg: string; Params: pointer;

           AOptions: word): word;

const

  ButtonName: array[0..3] of string[6] = ('Ага', 'Нека', 'Ага', 'Нека');

  Commands: array[0..3] of Word = (cmYes, cmNo, cmOK, cmCancel);

  Titles: array[0..3] of string[11] =

    ('Предупреждение', 'Ошибка', 'Информация', 'Подтверждение');

var

  I, X   : integer;

  Dialog : PDialog;

  Control: PView;

  S      : string; 

begin

  Dialog:= New(PDialog, Init(R, Titles[AOptions and $3]));

  with Dialog^ do

    begin

      Options:= Options or ofCentered; 

      R.Assign(3, 2, Size.X - 2, Size.Y - 3);

      FormatStr(S, Msg, Params^);

      Insert(New(PStaticText, Init(R, S)));

      X:= -2;

      R.Assign(0, 0, 10, 2);

      for I:= 0 to 3 do

        if AOptions and ($0100 shl I) <> 0 then

          Inc(X, R.B.X - R.A.X + 2);

      X:= (Size.X - X) shr 1;

      for I:= 0 to 3 do

        if AOptions and ($0100 shl I) <> 0 then

          begin

            Control:= New(PButton, Init(

                 R, ButtonName[I], Commands[i], bfNormal));

            Insert(Control);

            Control^.MoveTo(X, Size.Y - 3);

            Inc(X, Control^.Size.X + 2);

          end;

      SelectNext(False);

    end; 

  if AOptions and mfInsertInApp = 0 then

    MyMessageBoxRect:= DeskTop^.ExecView(Dialog)

  else

    MyMessageBoxRect:= Application^.ExecView(Dialog);

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