Обнаружение утечки информации в документах

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 14.03.2013
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Рисунок 3.5.1 - Рекомендации по использованию разработанной системы

B. Экологическая часть и БЖД

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

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

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

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

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

Глава 1. Исследование опасных и вредных факторов при эксплуатации ЭВМ

При выполнении дипломной работы используются следующие элементы вычислительной техники:

1. переносной персональный компьютер (ППК) ASUS A8Sr с диагональю экрана 14,1” и разрешением 1280 х 800;

2. персональный компьютер (ПК) Pentium IV, 800 MHz;

3. монитор LG L1730P с диагональю экрана 17” и разрешением 1280 х 1024, частоты развертки: fверт = 56-75 Гц, fгоризонт = 30-83 кГц;

4. лазерный принтер HP LaserJet 1020;

5. сканер HP ScanJet G3010.

При работе с перечисленными элементами вычислительной техники нужно учитывать следующие обстоятельства:

1. ППК и ПК питаются от сети переменного тока напряжением 220 В и частотой 50 Гц, а это превышает безопасное напряжение для человека (40 В), поэтому появляется опасный фактор - поражение электрическим током.

2. При работе за экраном дисплея пользователь попадает под воздействие ультрафиолетового излучения (УФИ) с длинами волн менее 320 нм и излучения электромагнитных полей частотой до 400 кГц. УФИ, испускаемое монитором, соединяясь с УФИ, излучаемым люминесцентными лампами и УФИ, проникающим сквозь оконные проемы, может повысить нормируемую плотность УФИ (10 Вт/м2). Возникает вредный фактор - ультрафиолетовое излучение.

3. При работе ППК, ПК (а также принтера, сканера и других периферийных устройств) и при передвижении людей возникает статическое электричество, которое при превышении нормированного значения 15 кВ/м становится вредным фактором.

4. Для получения изображения на экране дисплея необходимо иметь вертикальную и горизонтальную развертки, которые соответствуют напряжению с частотами вертикальной и горизонтальной развертки: fверт = 56-75 Гц, fгоризонт = 30-83 кГц. Появляется вредный фактор - излучение электромагнитных полей низких частот.

Таким образом, пользователь, работающий с ППК и ПК, подвергается воздействию следующих опасных и вредных факторов:

1. поражение электрическим током;

2. ультрафиолетовое излучение;

3. статическое электричество;

4. излучение электромагнитных полей низких частот.

Глава 2. Воздействие опасных и вредных факторов на организм пользователя ЭВМ

2.1 Поражение электрическим током

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

Различают электроудары четырех степеней сложности:

1. Электроудары I степени: сопровождаются судорожным болезненным сокращением мышц без потери сознания;

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

3. Электроудары III степени: сопровождаются судорожным болезненным сокращением мышц, c потерей сознания, нарушением работы сердца и/или дыхания;

4. Электроудары IV степени: наступает клиническая смерть, то есть прекращается дыхание и кровообращение.

2.2 Ультрафиолетовое излучение

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

1. заболевания кожи: угревая сыпь, себорроидная экзема, розовый лишай, меломанный рак кожи и другие;

2. катаракта глаз;

3. нарушение терморегуляции организма.

2.3 Статическое электричество

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

С точки зрения технического влияния следует отметить следующее: электронные компоненты персонального компьютера (ПК) или ППК работают при низких значениях напряжения (5-12 В). При большом значении напряженности электростатического поля возможны замыкания клавиатуры, реле и потеря информации на экране. Нормируемая величина напряженности электростатического поля E = 15 кВ/м.

2.4 Излучение электромагнитных полей низких частот

Воздействие этого фактора может привести к следующим последствиям:

1. обострение некоторых кожных заболеваний: угревая сыпь, себорроидная экзема, розовый лишай, рак кожи и другие;

2. нарушение метаболизма;

3. изменение биохимической реакции крови на клеточном уровне, что ведет к стрессу;

4. нарушения в протекании беременности (увеличение в два раза вероятности выкидыша у беременных);

5. нарушение репродуктивной функции и возникновению злокачественных образований (в случае воздействия низкочастотных полей);

6. изменения в нервной системе (потеря порога чувствительности).

2.5 Вывод

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

Глава 3. Способы защиты пользователей от опасных и вредных факторов

3.1 Защита от поражения электрическим током

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

Прямое прикосновение - электрический контакт людей или животных с токоведущими частями, находящимися под напряжением. Косвенное прикосновение - электрический контакт людей или животных с открытыми проводящими частями, оказавшимися под напряжением при повреждении изоляции.

Напряжение прикосновения - напряжение между двумя проводящими частями или между проводящей частью и землей при одновременном прикосновении к ним человека или животного.

Согласно общим требованиям ПУЭ [21, гл.1.7, пп.1.7.49-1.7.51], токоведущие части электроустановки не должны быть доступны для случайного прикосновения, а доступные прикосновению открытые и сторонние проводящие части не должны находиться под напряжением, представляющим опасность поражения электрическим током, как в нормальном режиме работы электроустановки, так и при повреждении изоляции.

Для дополнительной защиты от прямого прикосновения в электроустановках напряжением до 1 кВ, при наличии требований других глав ПУЭ, следует применять устройства защитного отключения (УЗО) с номинальным отключающим дифференциальным током не более 30 мА.

Зануление - преднамеренное соединение нетоковедущих частей с нулевым защитным проводником (НЗП). Оно применяется в трехфазных четырех проводных сетях с глухо-заземленной нейтралью в установках до 1.000 Вт и является основным средством обеспечения электробезопасности.

Принцип защиты при занулении заключается в следующем: ток короткого замыкания вызывает перегорание предохранителя (срабатывание автомата) и, следовательно, отключение пользователя от сети, предотвращая перегрев и самовозгорание токоведущих частей сети электропитания. Кроме того, устройство защитного отключения (УЗО) срабатывает при возникновении утечки из сети электропитания величиной не более 30 мА, предотвращая поражение электрическим током в случае прямого прикосновения.

Схема подключения ПЭВМ к электрической сети показана ниже (R0 - сопротивление заземлителя).

Рисунок 3.1 - Схема подключения ПЭВМ к электросети

Определим ток короткого замыкания Iкз по заданным параметрам:

Iкз = Uф / ( (rт / 3) + Rобщ), где

Iкз - ток короткого замыкания;

Uф - фазное напряжение: Uф = 220 В;

rт - паспортная величина сопротивления обмотки трансформатора:

rт = 0, 412 Ом;

Rобщ = R1 + R2 + Rнзп = p1 * L1/S1 + pнзп * Lнзп / Sнзп + p2 * L2/S2

p - удельное сопротивление проводника:

1. p1 = 0, 0280 (Ом * мм2/м) (алюминий);

2. pнзп = p2 = 0, 0175 (Ом * мм2/м) (медь).

L - длина проводника (L1 = 600 м, L2 = 100 м; Lнзп = 50 м);

S - площадь поперечного сечения проводника (S1 =2 мм2; S2 =1 мм; Sнзп =1 мм2).

R1 = (0,0280 (Ом * мм2/м) * 600 м) / 2 мм2 = 8,4 Ом

R2 = (0,0175 (Ом * мм2/м) * 100 м) / 1 мм2 = 1,75 Ом

Rнзп = (0,0175 (Ом * мм2/м) * 50 м) / 1 мм2 = 0,875 Ом

Rобщ = 8, 4 Ом +1, 75 Ом +0, 875 Ом = 11 Ом;

Iкз = 220 B / ( (0,412/3) Ом + 3,24 Ом) = 19,75 А

Устройство защиты от короткого замыкания срабатывает при выполнении следующего условия:

Iкз ? k * Iном => Iном ? Iкз / k, где

k - коэффициент, учитывающий тип защитного устройства: k = 3 для автомата с электромагнитным расцепителем;

Iном - номинальный ток срабатывания защитного устройства.

Iном ? 19,75А / 3 = 6,6 А ? 7 А

Указанному условию удовлетворяет защитное устройство УЗО 22-05-2-030 с номинальным током срабатывания Iном = 7 А и номинальным отключающим дифференциальным током IД = 30 мА.

Вывод: во избежание поражения электрическим током, возникновения пожара в помещении и выхода из строя ПЭВМ и периферийного оборудования, в случае возникновения короткого замыкания или других причин появления напряжения прикосновения Uпр, в цепь питания ПЭВМ необходимо включить устройство защитного отключения с Iном = 7 А и IД = 30 мА.

3.2 Защита от ультрафиолетового излучения

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

Для защиты от ультрафиолетового излучения используют:

1. обычную побелку стен и потолка (ослабляет излучение на 45-60%);

2. электролюминесцентные лампы, мощностью не более 40 Вт;

3. рекомендуемый материал одежды персонала - фланель, поплин.

3.3 Защита от статического электричества

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

1. использовать контурное заземление;

2. использовать нейтрализаторы статического электричества;

3. применять антистатическое покрытие полов;

4. использования экранов для снятия статики;

5. обеспечить регулярное проведение влажной уборки;

6. проветривать помещения при подвижности воздуха 0,1 - 0,2 м/сек без присутствия в нем пользователей.

Наиболее эффективным способом нейтрализации статического электричества является применение нейтрализаторов, создающих вблизи наэлектризованного диэлектрического объекта положительные и отрицательные ионы. Различают 4 типа нейтрализаторов:

1. коронного разряда (индуктивные и высоковольтные);

2. радиоизотопные;

3. комбинированные;

4. аэродинамические.

3.4 Защита от излучения электромагнитных полей низких частот

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

При разработке дипломного проекта используется монитор LG L1730P. Данный монитор соответствует стандартам MPR-II, ТСО `03, стандарту по эргономичности ISO 13406-2. Уровень напряженности полей низкой частоты соответствует нормам, поэтому единственным параметром, требующим соблюдения, является расстояние между мониторами в 1,5 м и более.

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

Рисунок 3.2 - Схемы зон компьютерного излучения

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

1. время работы на персональном компьютере не должно превышать 4 - 6 часов;

2. запрещается работать при открытых корпусах персональных компьютеров;

3. располагаться от экрана дисплея следует не ближе, чем на расстоянии вытянутой руки;

4. при выборе рабочего места необходимо располагаться от боковых и задних стенок мониторов соседних компьютеров не ближе 1,5 м.

3.5 Вывод

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

Заключение

В процессе разработки дипломного проекта:

1. Проведен аналитический обзор существующих решений для защиты от утечки информации;

2. Проведен аналитический обзор существующих методов сравнения текстовых файлов;

3. Разработана схема алгоритма сравнения текстовых файлов;

4. Разработана архитектура программного модуля обнаружения утечки информации в документах;

5. Реализован программный модуль обнаружения утечки информации в документах на языке С++ в виде open source проекта;

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

Список использованных источников

1. Комплексные решения для защиты от утечек конфиденциальных данных, BYTE/Россия, 2005 (http://www.bytemag.ru/articles/detail. php? ID=9068).

2. http://www.clearswift.com.

3. Интеллектуальные решения по защите информации, ЗАО "ИнфоВотч", 2009 (http://www.infowatch.ru.)

4. Why Iplocks?, IPLocks, Inc. All Rights Reserved Worldwide, 2007 (http://www.iplocks.com).

5. Why Compromise?, © IBM Corporation 1994 - 2008. All rights reserved (http://www.iss.net).

6. © 2009, Liquid Machines, Privacy Statement Site Map Site by Newfangled Web Factory and Nowspeed Marketing (http://www.liquidmachines.com).

7. © 2007, Websense, Inc. All Rights Reserved (http://www.portauthoritytech.com).

8. © 2009, Websense, Inc. All Rights Reserved (http://www.surfcontrol.com).

9. © 2002 - 2006, Инфосистемы Джет (http://www.jetinfosoft.ru).

10. © 1998-2009, Global Information Technology (UK) Limited. All Rights Reserved (http://www.pcacme.com).

11. Обзор автоматических детекторов плагиата в программах, 2006 (http://logic. pdmi. ras.ru/~yura/detector/survey. pdf)

12. Большая советская энциклопедия.

13. Авторы проекта AlgoLib, Алгоритмы сравнения строк, © 2004-2005 "AlgoLib. narod.ru" (http://algolib. narod.ru/Search/Standart.html).

14. Алексей Котов, Связь между детекторами плагиата и нейронными сетями, 2006 (http://detector. spb. su/bin/view/Sandbox/NeuralNetworks).

15. Страуструп Б., Язык программирования С++, Специальное изд. - М.: "Издательство Бином”, СПб.: "Невский диалект”, 1999.

16. Receiver operating characteristic, Wikimedia Foundation, Inc., 2009 (http://en. wikipedia.org/wiki/Receiver_operating_characteristic).

17. Николай Паклин, Логистическая регрессия и ROC-анализ - математический аппарат, © 1995 - 2009 BaseGroup Labs (http://www.basegroup.ru/library/analysis/regression/logistic/).

18. Кривые ROC, Copyright legioner © spssbase.com, 2008 (http://www.spssbase.com/Glava22/Index35.html).

19. Гост ССБТ 12.1.045-84 "Электростатические поля. Допустимые уровни на рабочих местах”.

20. Гост ССБТ 12.4.124-83 "Средства защиты от статического электричества”.

21. Гигиенические требования к видеотерминалам персональных ЭВМ и организация работы с ними. СанПиН 2.2.2 542-96.

22. Гост 12.0.003-86 "Опасные и вредные производственные факторы”.

23. Нормы радиационной безопасности. НРБ 76/87.

24. Гост 12.1.030-81 "Электробезопасность. Защитное заземление, зануление”.

25. Гост 19.504-79 "Руководство программиста”.

26. Гост 19.401-78 "Текст программы”.

Приложения

Приложение № 1

Текст программы

Листов 15

// Модуль утечки конфиденциальной информации с реализацией алгоритма по схеме 1

#include <fstream>

#include <iostream>

#include <string>

#include <vector>

#include <io. h>

using namespace std;

int k;

vector<string> allowed_files,secured_files,checked_files;

// Перевод в заглавную букву для win-кодировки

char to_upper (unsigned char c)

{

if ( (c>=97 && c<=122) || c >= 224)

c-=32;

// Буква ё

if (c == 184)

c = 168;

return c;

}

// Составление списка файлов по заданному пути

void make_file_list (vector<string> &list,const char *path)

{

string search_path = path,tmp_st;

_finddata_t fdata;

int i;

// Поиск текстовых файлов

search_path+="*. txt";

int h = _findfirst (search_path. c_str (),&fdata);

if (h! = - 1)

do

{

tmp_st = path;

tmp_st+=fdata. name;

list. push_back (tmp_st);

i = _findnext (h,&fdata);

}while (i == 0);

_findclose (h);

}

// Ввод данных из файла в строку

string input_file (const char *fname)

{

string st;

char c;

ifstream fin (fname);

if (! fin. fail ())

{

while (fin >> c,! fin. eof ())

{

// Проверка, являются ли символы в тексте буквами

if (c < 0 || (c>='a' && c<='z') || (c>='A' && c<='Z') || (c>='0' && c<='9'))

st+=to_upper (c);

}

}

fin. close ();

return st;

}

// Удаление повторяющихся k-грамм

string remove_repeats (string st, int k)

{

int i = 0,j;

string st2;

while (i < st. length () - k-1)

{

// выделение текущей k-граммы

st2 = st. substr (i,k);

while (j = st. find (st2, i+1),j! =-1)

st. erase (j,k);

i++;

}

return st;

}

// Удаление не конфиденциальной информации из конфиденциальной

void remove_allowed (string &st1,string &st2, int k)

{

int i=0,to_delete;

while (i <= st1. length () - k)

{

string tmp = st1. substr (i,k);

// Поиск k-граммы в разрешенном файле

int j = st2. find (tmp,0);

if (j! = - 1)

{

to_delete = k;

// Расширение вперед

while (i<st1. length () - k && j<st2. length () - k && st1 [i+k] == st2 [j+k])

{

i++;

j++;

to_delete++;

}

st1. erase (i,to_delete);

}

else

i++;

}

}

// Сравнение содержимого защищенного файла с проверяемым

void cmp_strings (string &st1,string &st2, int k, int &total_len,string &same_st)

{

int i=0;

total_len = 0;

while (i <= st1. length () - k)

{

string tmp = st1. substr (i,k);

int j = st2. find (tmp,0);

if (j! = - 1)

{

total_len+=k;

same_st+=tmp;

while (i<st1. length () - k && j<st2. length () - k && st1 [i+k] == st2 [j+k])

{

same_st+=st1 [i+k];

i++;

j++;

total_len++;

}

same_st+=' ';

}

i++;

}

}

int main ()

{

string sec_st,alw_st,chk_st,tmpst,same_st;

ofstream fout ("result. txt");

int total_len;

vector<string>:: iterator sec_it,alw_it,chk_it;

// Составление списков имеющихся файлов

make_file_list (secured_files,"secret\\");

make_file_list (allowed_files,"unsecret\\");

make_file_list (checked_files,"check\\");

for (chk_it = checked_files. begin (); chk_it! = checked_files. end (); ++chk_it)

{

chk_st = input_file ( (*chk_it). c_str ());

fout << "*****Проверяемый файл: " << (*chk_it) << "*****\n";

for (k=15; k<=16; k++)

{

tmpst = remove_repeats (chk_st,k);

fout << "k = " << k << endl;

// Удаление из конфиденциального файла не конфиденциальные k-граммы

for (alw_it = allowed_files. begin (); alw_it! = allowed_files. end (); ++alw_it)

{

alw_st = input_file ( (*alw_it). c_str ());

alw_st = remove_repeats (alw_st,k);

remove_allowed (tmpst,alw_st,k);

}

// Проверка конфиденциальных файлов с проверяемыми

for (sec_it = secured_files. begin (); sec_it! =secured_files. end (); ++sec_it)

{

sec_st = input_file ( (*sec_it). c_str ());

fout << "Сравнение с файлом " << (*sec_it) << ": \n";

sec_st = remove_repeats (sec_st,k);

same_st = "";

cmp_strings (tmpst,sec_st,k,total_len,same_st);

fout. precision (2);

fout << total_len << " " << (float) total_len/sec_st. length () *100.0 << "%\n";

fout << same_st << endl;

}

fout << endl;

}

}

return 0;

}

// Модуль утечки конфиденциальной информации с реализацией алгоритма по схеме 2

#include <fstream>

#include <iostream>

#include <string>

#include <list>

#include <algorithm>

#include <io. h>

#include "hashlib. h"

using namespace std;

typedef list<unsigned short> thash_vec;

int k;

list<string> allowed_files,secured_files,checked_files;

// Перевод в заглавную букву для win-кодировки

char to_upper (unsigned char c)

{

if ( (c>=97 && c<=122) || c >= 224)

c-=32;

// Буква ё

if (c == 184)

c = 168;

return c;

}

// Составление списка файлов по заданному пути

void make_file_list (list<string> &l,const char *path)

{

string search_path = path,tmp_st;

_finddata_t fdata;

int i;

// Поиск текстовых файлов

search_path+="*. txt";

int h = _findfirst (search_path. c_str (),&fdata);

if (h! = - 1)

do

{

tmp_st = path;

tmp_st+=fdata. name;

l. push_back (tmp_st);

i = _findnext (h,&fdata);

}while (i == 0);

_findclose (h);

}

// Ввод данных из файла в строку и составление списка хеш-кодов

void input_file (const char *fname, int k,thash_vec &hash_vec)

{

string st;

char c;

char *c_st;

thash_vec:: iterator it;

unsigned short crc;

ifstream fin (fname);

if (! fin. fail ())

{

while (fin >> c,! fin. eof ())

{

// Проверка, что символы в тексте это буквы

if (c < 0 || (c>='a' && c<='z') || (c>='A' && c<='Z') || (c>='0' && c<='9'))

st+=to_upper (c);

}

c_st = (char*) st. c_str ();

for (size_t i=0; i<=st. length () - k; i++)

{

crc = Crc16 ( (unsigned char*) c_st,k);

// Если такое же значение уже есть в массиве,

// не добавляем его

it = lower_bound (hash_vec. begin (),hash_vec. end (),crc);

if (it == hash_vec. end () || (*it! = crc))

hash_vec. insert (it,crc);

c_st++;

}

}

fin. close ();

}

// Удаление повторяющихся хеш-кодов

// sec_hash - список с конфиденциальными хеш-кодами

// alw_hash - список с не конфиденциальными хеш-кодами

void remove_allowed (thash_vec &sec_hash,thash_vec &alw_hash)

{

thash_vec:: iterator sec_it;

sec_it = sec_hash. begin ();

while (sec_it! = sec_hash. end ())

{

if (binary_search (alw_hash. begin (),alw_hash. end (), (*sec_it)))

sec_it = sec_hash. erase (sec_it);

else

sec_it++;

}

}

// Сравнение с содержимым защищенного файла

void cmp_hashes (thash_vec &chk_hash,thash_vec &sec_hash, int &total_len)

{

thash_vec:: iterator chk_it;

total_len = 0;

for (chk_it = chk_hash. begin (); chk_it! = chk_hash. end (); ++chk_it)

{

if (binary_search (sec_hash. begin (),sec_hash. end (),*chk_it))

total_len++;

}

}

int main ()

{

thash_vec sec_hash,alw_hash,chk_hash;

ofstream fout ("result. txt");

int total_len;

list<string>:: iterator sec_it,alw_it,chk_it;

// Составление списков имеющихся файлов

make_file_list (secured_files,"secret\\");

make_file_list (allowed_files,"unsecret\\");

make_file_list (checked_files,"check\\");

// init_hl ();

for (k=15; k<16; k++)

{

fout << "k = " << k << endl;

// Ввод информацию из конфиденциальных и не конфиденциальных файлов

for (sec_it = secured_files. begin (); sec_it! =secured_files. end (); ++sec_it)

input_file ( (*sec_it). c_str (),k,sec_hash);

for (alw_it = allowed_files. begin (); alw_it! = allowed_files. end (); ++alw_it)

input_file ( (*alw_it). c_str (),k,alw_hash);

// Удаление не конфиденциальных комбинаций из базы конфиденциальных хеш-кодов

remove_allowed (sec_hash,alw_hash);

for (chk_it = checked_files. begin (); chk_it! = checked_files. end (); ++chk_it)

{

fout << "*****Проверяемый файл: " << (*chk_it) << "*****\n";

input_file ( (*chk_it). c_str (),k,chk_hash);

cmp_hashes (chk_hash,sec_hash,total_len);

if (total_len > 450)

{

fout << "Количество совпавших комбинаций: " << total_len << " - Файл запрещен к передаче!" << endl;

fout << endl;

chk_hash. clear ();

}

else

{

fout << "Количество совпавших комбинаций: " << total_len << endl;

fout << endl;

chk_hash. clear ();

}

}

sec_hash. clear ();

alw_hash. clear ();

}

// close_hl ();

return 0;

}

/*Реализация хеш-функции CRC-16

Name: CRC-16

Poly: 0x8005 x^16 + x^15 + x^2 + 1

Init: 0x0000

Revert: true

XorOut: 0x0000

Check: 0x4B37 ("123456789")

MaxLen: 4095 байт (32767 бит) - обнаружение

одинарных, двойных, тройных и всех нечетных ошибок*/

const unsigned short Crc16Table [256] = {

0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241,0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440,0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40,0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841,0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40,0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41,0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641,0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040,0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240,0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441,0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41,0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840,0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41,0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40,0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640,0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041,0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240,0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441,0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41,0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840,0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41,0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40,0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640,0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041,0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241,0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440,0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40,0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841,0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40,0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41,0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641,0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040

};

unsigned short Crc16 (unsigned char * pcBlock, unsigned short len)

{

unsigned short crc = 0;

while (len--)

crc = (crc >> 8) ^ Crc16Table [ (crc & 0xFF) ^ *pcBlock++];

return crc;

}

// Библиотека для получения хеш-кодов

#include <windows. h>

#include <Wincrypt. h>

#include "hashlib. h"

static HCRYPTPROV hProv = 0;

// Инициализация сервиса шифрования

DWORD init_hl ()

{

DWORD dwStatus = 0;

if (! CryptAcquireContext (&hProv,

NULL,

NULL,

PROV_RSA_FULL,

CRYPT_VERIFYCONTEXT))

{

dwStatus = GetLastError ();

}

return dwStatus;

}

void close_hl ()

{

CryptReleaseContext (hProv, 0);

}

DWORD get_hash (const char *data, int len,BYTE *hash)

{

DWORD dwStatus = 0;

HCRYPTHASH hHash = 0;

DWORD cbHash = 0;

// Создание объекта

if (! CryptCreateHash (hProv, CALG_MD5, 0, 0, &hHash))

{

dwStatus = GetLastError ();

return dwStatus;

}

// Добавление данных для хеширования

if (! CryptHashData (hHash, (const BYTE*) data, len, 0))

{

dwStatus = GetLastError ();

CryptDestroyHash (hHash);

return dwStatus;

}

cbHash = HASH_LEN;

// Получение хеш-кода

if (! CryptGetHashParam (hHash, HP_HASHVAL, hash, &cbHash, 0))

{

dwStatus = GetLastError ();

}

CryptDestroyHash (hHash);

return dwStatus;

}

Размещено на Allbest.ru


Подобные документы

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

    дипломная работа [12,8 M], добавлен 28.08.2014

  • Возможные каналы утечки информации. Расчет контролируемой зоны объекта. Защита по виброакустическому каналу утечки информации. Выявление несанкционированного доступа к ресурсам. Система постановки виброакустических и акустических помех "Шорох-1М".

    курсовая работа [857,2 K], добавлен 31.05.2013

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

    курсовая работа [519,4 K], добавлен 18.11.2015

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

    курсовая работа [31,8 K], добавлен 22.05.2015

  • Физическая целостность информации. Система защиты информации. Установка средств физической преграды защитного контура помещений. Защита информации от утечки по визуально-оптическим, акустическим, материально-вещественным и электромагнитным каналам.

    курсовая работа [783,9 K], добавлен 27.04.2013

  • Информационная безопасность, её цели и задачи. Каналы утечки информации. Программно-технические методы и средства защиты информации от несанкционированного доступа. Модель угроз безопасности информации, обрабатываемой на объекте вычислительной техники.

    дипломная работа [839,2 K], добавлен 19.02.2017

  • Классификация каналов утечки информации, виды угроз. Основные принципы и средства обеспечения информационной безопасности. Методы предотвращения утечки, утраты, хищения, искажения, подделки информации и других несанкционированных негативных воздействий.

    реферат [515,2 K], добавлен 03.04.2017

  • Необходимость и потребность в защите информации. Виды угроз безопасности информационных технологий и информации. Каналы утечки и несанкционированного доступа к информации. Принципы проектирования системы защиты. Внутренние и внешние нарушители АИТУ.

    контрольная работа [107,3 K], добавлен 09.04.2011

  • Наиболее распространённые пути несанкционированного доступа к информации, каналы ее утечки. Методы защиты информации от угроз природного (аварийного) характера, от случайных угроз. Криптография как средство защиты информации. Промышленный шпионаж.

    реферат [111,7 K], добавлен 04.06.2013

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

    контрольная работа [23,8 K], добавлен 20.11.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.