Обнаружение утечки информации в документах
Предотвращение несанкционированного распространения информации в текстовых файлах. Разработка подсистемы обнаружения утечки информации с фильтром идентификации текстовых областей в передаваемом потоке данных и их сходства с конфиденциальными данными.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 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