Menu
[menu_adv_rtb]
vitalyatattoo.ru — Студия художественной татуировки и пирсинга ArtinMotion Разное Зэк расшифровка аббревиатуры: Зэк | это… Что такое Зэк?

Зэк расшифровка аббревиатуры: Зэк | это… Что такое Зэк?

Содержание

Зэк | это… Что такое Зэк?

Н.А. Ярошенко «Всюду жизнь»

Ван Гог «Прогулка заключенных»

Заключённый (ЗК, «ЗеКа», «зек») — человек, лишённый свободы по приговору суда и отбывающий наказание в специальном учреждении — колонии, следственном изоляторе, тюрьме и т. п.

Термин «зек» происходит от обозначения «з/к», использовавшегося в официальных документах в период с конца 1920-х по конец 1950-х годов. Этимологически восходит к сокращению от «Заключённый каналоармеец», впервые появившегося во время строительства Беломорско-Балтийского канала.

Термин «зек» вошёл в русскую литературу после того, как многие писатели и поэты, прошедшие через ГУЛАГ, описали свои наблюдения и ощущения в романах, эссе, заметках, стихах, поэмах. Зеком называют не только того, кто в данный момент находится в заключении, но и того, кто был в заключении; особенно тех, кто понёс наказание незаслуженно. Большинство таких зеков реабилитировано после развала СССР.

K зекам относят также жертв карательной психиатрии.

Содержание

  • 1 Происхождение слова «зэк»
  • 2 Статистика по заключённым
  • 3 Знаменитые заключённые
    • 3.1 Древний мир
    • 3.2 Средние века
    • 3.3 Новое время
    • 3.4 XX век
    • 3.5 XXI век
  • 4 Литературные герои
  • 5 Обмен заключёнными
  • 6 Примечания
  • 7 См. также

Происхождение слова «зэк»

Зек / Зэк / Зэ’ка (мн.ч. ’зэки) — название узников тюрем и лагерей в СССР. Происходит от обозначения «з/к», использовавшегося в официальных документах в период с конца 1920-х по конец 1950-х годов. Этимологически восходит к сокращению от «Заключённый красноармеец», впервые появившегося во время опытов Л.Д. Троцкого по созданию Трудармий в после военной стране. Позже, ввиду неполиткорректности расшифровки, признаной позорящей Красную Армию было изменено на «заключенный каналоармеец» во время строительства Беломорско-Балтийского канала по инициативе Анастаса Ивановича Микояна.

Термин вошел в русскую литературу после того, как многие писатели и поэты, прошедшие через ГУЛАГ, описали свои наблюдения и ощущения в романах, эссе, заметках, стихах, поэмах. Зеком называют не только того, кто в данный момент находится в заключении, но и того, кто был в заключении; особенно тех, кто понес наказание незаслуженно. Большинство таких зеков реабилитировано после развала СССР.

K зекам относят также жертв карательной психиатрии.

Коган Л. И. обогатил советский «новояз» придуманным им словом зэк, что расшифровывается как «заключённый каналоармеец». В официальных документах использовалось сокращение з/к, множественное число з/к з/к. В устной речи — термин «зек» применялся ко всем заключенным вообще, так же, как термин «вертухай» применялся не только к войскам, охранявшим заключенных, но к любым представителям репрессивного аппарата[1]. В марте 1932 года во время посещения Беломорстроя, кандидатом в члены Политбюро ЦК ВКП(6) Анастасом Ивановичем Микояном, Коган сказал ему о заключённых:

«Товарищ Микоян, как их называть? (…) Вот я придумал слово — „каналоармеец“. Как вы смотрите?
— Что ж, это правильно. Они у вас каналоармейцы, — согласился Микоян» [2].

С тех пор неологизм «зэк» получил всеобщую известность:

Слушай, Волга-река!
Если рядом с зэ-ка
Днём и ночью
на стройке чекисты —
Это значит — рука
рабочих крепка,
Значит, в ОГПУ — коммунисты ![3]

Статистика по заключённым

  • Количество заключённых на 100.000 жителей[1]:
    • США 725
    • Россия 713
    • Украина 400 (2005 год)[2]
    • Великобритания 124
    • Канада 102
    • Германия 98
    • Италия 92
    • Франция 80
    • Швеция 64
    • Дания 61
    • Исландия 29

Знаменитые заключённые

Древний мир

  • Спартак
  • Сократ
  • Павел (апостол) (5?-64) г. н. э.

Средние века

Эдуард II Плантагенет (король Англии)

Новое время

  • Карл I (король Англии) (1600—1649)
  • Железная маска
  • Людовик XVI (1754—1793)
  • Мария Антуанетта
  • Наполеон
  • Княжна Тараканова (1745—1775)
  • Декабристы
  • Фёдор Достоевский
  • Народовольцы
  • Александр Ульянов

XX век

Заключённые на строительстве Беломорканала

О. Мандельштам

В.Мейерхольд

  • Авторханов, Абдурахман Геназович, писатель
  • Бродский, Иосиф Александрович, поэт, нобелевский лауреат
  • Буковский, Владимир Константинович, биолог, писатель
  • Вавилов, Николай Иванович, биолог, генетик
  • Горбаневская, Наталья Евгеньевна, поэт, писатель
  • Григоренко, Пётр Григорьевич, генерал, писатель
  • Гумилёв, Лев Николаевич, историк, писатель
  • Даниэль, Юлий Маркович, поэт, писатель
  • Керсновская, Евфросиния Антоновна, художница
  • Ковалёв, Сергей Адамович, писатель, депутат Думы
  • Копелев, Лев Зиновьевич, физик, писатель
  • Мандельштам, Осип Эмильевич, поэт
  • Мейерхольд, Всеволод Эмильевич, драматург
  • Орлов, Юрий Фёдорович, физик, писатель
  • Синявский, Андрей Донатович, поэт, писатель
  • Солженицын, Александр Исаевич, писатель, нобелевский лауреат
  • Солоневич, Иван Лукьянович, врач, писатель
  • Терновский, Леонард Борисович, врач, писатель
  • Тимофеев-Ресовский, Николай Владимирович, биолог, генетик
  • Варлам Шаламов
  • Николай II (Романов)
  • Иосиф Сталин
  • Лев Троцкий
  • Адольф Гитлер

Есть мнение, что Ленина тоже следует считать зеком, но этот случай спорный, так как он жил под домашним арестом в Горках, то есть не в тюрьме и не в лагере.

XXI век

  • Эдуард Лимонов
  • Михаил Ходорковский

Литературные герои

  • Граф Монте-Кристо
  • Родион Раскольников
  • Катюша Маслова

Обмен заключёнными

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

Так, в 1976 г. состоялся обмен между Чили и СССР — генерального секретаря ЦК Компартии Чили Луиса Корвалана обменяли на советского диссидента Владимира Буковского ([3], [4], [5], [6]).

В 1960-е гг. сбитого над СССР пилота американского самолёта-разведчика Пауэрса обменяли на советского разведчика Рудольфа Абеля.

В 2000-е гг. Катар передал России двух российских граждан, отбывавших пожизненное заключение за убийство Зелимхана Яндарбиева. Тогда же Ливия передала Болгарии группу болгарских медсестёр и палестинского врача, осуждённых на смертную казнь за якобы заражение ВИЧ-инфекцией нескольких сот ливийских детей.

Примечания

  1. Александр Солженицын. Архипелаг ГУЛаг. YMCA-PRESS, Paris, 1973. http://lib.ru/PROZA/SOLZHENICYN/gulag.txt
  2. Беломорско-Балтийский канал имени Сталина. История строительства. М., 1934, с. 138
  3. Приведены в книге И. Авербах «От преступления к труду» (предисловие А. Вышинского. ОГИЗ, 1936)

См. также

  • Происхождение слова зэк
  • Сталинские репрессии
  • Срок заключения
  • Политический заключённый
  • Социальная иерархия
  • Узник
  • Охранник
  • Вертухай

Зэк | это… Что такое Зэк?

Н.А. Ярошенко «Всюду жизнь»

Ван Гог «Прогулка заключенных»

Заключённый (ЗК, «ЗеКа», «зек») — человек, лишённый свободы по приговору суда и отбывающий наказание в специальном учреждении — колонии, следственном изоляторе, тюрьме и т. п.

Термин «зек» происходит от обозначения «з/к», использовавшегося в официальных документах в период с конца 1920-х по конец 1950-х годов. Этимологически восходит к сокращению от «Заключённый каналоармеец», впервые появившегося во время строительства Беломорско-Балтийского канала.

Термин «зек» вошёл в русскую литературу после того, как многие писатели и поэты, прошедшие через ГУЛАГ, описали свои наблюдения и ощущения в романах, эссе, заметках, стихах, поэмах. Зеком называют не только того, кто в данный момент находится в заключении, но и того, кто был в заключении; особенно тех, кто понёс наказание незаслуженно. Большинство таких зеков реабилитировано после развала СССР.

K зекам относят также жертв карательной психиатрии.

Содержание

  • 1 Происхождение слова «зэк»
  • 2 Статистика по заключённым
  • 3 Знаменитые заключённые
    • 3.1 Древний мир
    • 3.2 Средние века
    • 3.3 Новое время
    • 3.4 XX век
    • 3.5 XXI век
  • 4 Литературные герои
  • 5 Обмен заключёнными
  • 6 Примечания
  • 7 См. также

Происхождение слова «зэк»

Зек / Зэк / Зэ’ка (мн.ч. ’зэки) — название узников тюрем и лагерей в СССР. Происходит от обозначения «з/к», использовавшегося в официальных документах в период с конца 1920-х по конец 1950-х годов. Этимологически восходит к сокращению от «Заключённый красноармеец», впервые появившегося во время опытов Л.Д. Троцкого по созданию Трудармий в после военной стране. Позже, ввиду неполиткорректности расшифровки, признаной позорящей Красную Армию было изменено на «заключенный каналоармеец» во время строительства Беломорско-Балтийского канала по инициативе Анастаса Ивановича Микояна.

Термин вошел в русскую литературу после того, как многие писатели и поэты, прошедшие через ГУЛАГ, описали свои наблюдения и ощущения в романах, эссе, заметках, стихах, поэмах. Зеком называют не только того, кто в данный момент находится в заключении, но и того, кто был в заключении; особенно тех, кто понес наказание незаслуженно. Большинство таких зеков реабилитировано после развала СССР.

K зекам относят также жертв карательной психиатрии.

Коган Л. И. обогатил советский «новояз» придуманным им словом зэк, что расшифровывается как «заключённый каналоармеец». В официальных документах использовалось сокращение з/к, множественное число з/к з/к. В устной речи — термин «зек» применялся ко всем заключенным вообще, так же, как термин «вертухай» применялся не только к войскам, охранявшим заключенных, но к любым представителям репрессивного аппарата[1]. В марте 1932 года во время посещения Беломорстроя, кандидатом в члены Политбюро ЦК ВКП(6) Анастасом Ивановичем Микояном, Коган сказал ему о заключённых:

«Товарищ Микоян, как их называть? (…) Вот я придумал слово — „каналоармеец“. Как вы смотрите?
— Что ж, это правильно. Они у вас каналоармейцы, — согласился Микоян» [2].

С тех пор неологизм «зэк» получил всеобщую известность:

Слушай, Волга-река!
Если рядом с зэ-ка
Днём и ночью
на стройке чекисты —
Это значит — рука
рабочих крепка,
Значит, в ОГПУ — коммунисты ![3]

Статистика по заключённым

  • Количество заключённых на 100. 000 жителей[1]:
    • США 725
    • Россия 713
    • Украина 400 (2005 год)[2]
    • Великобритания 124
    • Канада 102
    • Германия 98
    • Италия 92
    • Франция 80
    • Швеция 64
    • Дания 61
    • Исландия 29

Знаменитые заключённые

Древний мир

  • Спартак
  • Сократ
  • Павел (апостол) (5?-64) г. н. э.

Средние века

Эдуард II Плантагенет (король Англии)

Новое время

  • Карл I (король Англии) (1600—1649)
  • Железная маска
  • Людовик XVI (1754—1793)
  • Мария Антуанетта
  • Наполеон
  • Княжна Тараканова (1745—1775)
  • Декабристы
  • Фёдор Достоевский
  • Народовольцы
  • Александр Ульянов

XX век

Заключённые на строительстве Беломорканала

О.Мандельштам

В.Мейерхольд

  • Авторханов, Абдурахман Геназович, писатель
  • Бродский, Иосиф Александрович, поэт, нобелевский лауреат
  • Буковский, Владимир Константинович, биолог, писатель
  • Вавилов, Николай Иванович, биолог, генетик
  • Горбаневская, Наталья Евгеньевна, поэт, писатель
  • Григоренко, Пётр Григорьевич, генерал, писатель
  • Гумилёв, Лев Николаевич, историк, писатель
  • Даниэль, Юлий Маркович, поэт, писатель
  • Керсновская, Евфросиния Антоновна, художница
  • Ковалёв, Сергей Адамович, писатель, депутат Думы
  • Копелев, Лев Зиновьевич, физик, писатель
  • Мандельштам, Осип Эмильевич, поэт
  • Мейерхольд, Всеволод Эмильевич, драматург
  • Орлов, Юрий Фёдорович, физик, писатель
  • Синявский, Андрей Донатович, поэт, писатель
  • Солженицын, Александр Исаевич, писатель, нобелевский лауреат
  • Солоневич, Иван Лукьянович, врач, писатель
  • Терновский, Леонард Борисович, врач, писатель
  • Тимофеев-Ресовский, Николай Владимирович, биолог, генетик
  • Варлам Шаламов
  • Николай II (Романов)
  • Иосиф Сталин
  • Лев Троцкий
  • Адольф Гитлер

Есть мнение, что Ленина тоже следует считать зеком, но этот случай спорный, так как он жил под домашним арестом в Горках, то есть не в тюрьме и не в лагере.

XXI век

  • Эдуард Лимонов
  • Михаил Ходорковский

Литературные герои

  • Граф Монте-Кристо
  • Родион Раскольников
  • Катюша Маслова

Обмен заключёнными

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

Так, в 1976 г. состоялся обмен между Чили и СССР — генерального секретаря ЦК Компартии Чили Луиса Корвалана обменяли на советского диссидента Владимира Буковского ([3], [4], [5], [6]).

В 1960-е гг. сбитого над СССР пилота американского самолёта-разведчика Пауэрса обменяли на советского разведчика Рудольфа Абеля.

В 2000-е гг. Катар передал России двух российских граждан, отбывавших пожизненное заключение за убийство Зелимхана Яндарбиева. Тогда же Ливия передала Болгарии группу болгарских медсестёр и палестинского врача, осуждённых на смертную казнь за якобы заражение ВИЧ-инфекцией нескольких сот ливийских детей.

Примечания

  1. Александр Солженицын. Архипелаг ГУЛаг. YMCA-PRESS, Paris, 1973. http://lib.ru/PROZA/SOLZHENICYN/gulag.txt
  2. Беломорско-Балтийский канал имени Сталина. История строительства. М., 1934, с. 138
  3. Приведены в книге И. Авербах «От преступления к труду» (предисловие А. Вышинского. ОГИЗ, 1936)

См. также

  • Происхождение слова зэк
  • Сталинские репрессии
  • Срок заключения
  • Политический заключённый
  • Социальная иерархия
  • Узник
  • Охранник
  • Вертухай

2021 Инструменты IDS с открытым исходным кодом: Suricata vs Snort vs Bro (Zeek) by Rich Langston

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

Список инструментов IDS с открытым исходным кодом

  • Фырканье
  • Суриката
  • Бро (Зик)
  • OSSEC
  • Самайн Лабс
  • OpenDLP

Методы обнаружения IDS

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

Инструменты IDS на основе сигнатур

С IDS на основе сигнатур, также известными как IDS на основе знаний, существуют правила или шаблоны поиска известного вредоносного трафика. Как только совпадение с подписью будет найдено, вашему администратору будет отправлено предупреждение. Эти оповещения могут обнаруживать такие проблемы, как известное вредоносное ПО, сканирование сети и атаки на серверы.

Унифицированное управление безопасностью

Единая платформа, объединяющая основные возможности безопасности, включая IDS, обнаружение активов и управление журналами SIEM.

Подробнее

Инструменты IDS на основе аномалий

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

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

Преимущества и недостатки

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

Сетевые IDS (NIDS)

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

Устройство NIDS отслеживает шаблоны трафика или сигнатуры и уведомляет о них. Когда вредоносные события помечаются устройством NIDS, важная информация регистрируется. Эти данные необходимо отслеживать, чтобы знать, что событие произошло. Комбинируя эту информацию с событиями, полученными от других систем и устройств, вы можете увидеть полную картину состояния безопасности вашей сети. Обратите внимание, что ни один из инструментов здесь не коррелирует журналы сам по себе. Как правило, это функция диспетчера информации и событий безопасности (SIEM).

Фырканье

Ах, почтенный поросенок, который любит пакеты. Многие помнят 1998 год как год выхода Windows 98, но это также был год, когда Мартин Рош впервые выпустил Snort. Хотя в то время Snort не был настоящим IDS, такова была его судьба. С тех пор он стал стандартом де-факто для IDS благодаря вкладу сообщества.

Важно отметить, что у Snort нет реального графического интерфейса или простой в использовании административной консоли, хотя для помощи было создано множество других инструментов с открытым исходным кодом, таких как BASE  и  Sguil . Эти инструменты предоставляют веб-интерфейс для запроса и анализа предупреждений, поступающих от Snort IDS.

Snort Summary

  • Долгий срок службы без признаков износа
  • Отличная поддержка сообщества
  • Множество административных интерфейсов
  • Тщательно испытано и испытано
  • Отлично сообщество поддержка
  • Согласно  веб-сайту Snort , функции включают в себя:
    • Модульная конструкция:
    • Многопоточность для обработки пакетов
    • Общая конфигурация и таблица атрибутов
    • Используйте простую конфигурацию с поддержкой сценариев
    • Платформа плагинов, делающая ключевые компоненты подключаемыми (и более 200 плагинов)
    • Службы автоматического обнаружения для конфигурации без портов
    • Автоматическое создание справочной документации
    • Масштабируемый профиль памяти
    • Анализатор правил и синтаксис (поддержка липких буферов в правилах)
  • Документация:
    • Обновления набора правил
    • Часто задаваемые вопросы по фырканью
    • Памятка Snort
    • Для AlienVault USM Anywhere доступен подключаемый модуль для Snort.

Suricata

По какой причине не работает Snort? Если вместо этого вы используете Suricata. Хотя архитектура Suricata отличается от Snort, она ведет себя так же, как Snort, и может использовать те же сигнатуры. Что хорошего в Suricata, так это то, на что еще он способен по сравнению со Snort. намного больше , это, вероятно, заслуживает отдельного поста.

Для веб-интерфейса доступны сторонние инструменты с открытым исходным кодом для запроса и анализа предупреждений, поступающих от Suricata IDS.

Резюме Suricata

  • Многопоточность — Snort работает с одним потоком, что означает, что он может одновременно использовать только один ЦП (ядро). Suricata может запускать много потоков, поэтому она может использовать все доступные процессоры/ядра. Было много споров о том, выгодно ли это, Snort говорит «нет», а несколько тестов говорят «да».
  • Встроенное аппаратное ускорение. Знаете ли вы, что для проверки сетевого трафика можно использовать графические карты?
  • Извлечение файла — Кто-то загружает вредоносное ПО? Вы можете захватить его прямо из Suricata и изучить.
  • LuaJIT — да, это много букв, но это также и скриптовый движок, который можно использовать с информацией из пакетов, проверенных Suricata. Это делает сложное сопоставление еще проще, и вы даже можете повысить эффективность, объединив несколько правил в один скрипт.
  • Регистрация не только пакетов — Suricata может захватывать и регистрировать такие данные, как сертификаты TLS/SSL, HTTP-запросы, DNS-запросы
  • Отлично сообщество поддержка
  • Согласно веб-сайту Suricata, функций включают:
    • Высокая производительность — многопоточная масштабируемая кодовая база
    • Многоцелевой модуль — NIDS, NIPS, NSM, автономный анализ и т. д.
    • Кроссплатформенная поддержка — Linux, Windows, macOS, OpenBSD и т. д.
    • Современная поддержка TCP/IP, включая масштабируемый механизм потоков, полный IPv4/IPv6, потоки TCP и дефрагментацию IP-пакетов
    • Анализаторы протоколов — декодирование пакетов, декодирование прикладного уровня
    • Механизм HTTP — синтаксический анализатор HTTP, регистратор запросов, сопоставление ключевых слов и т. д.
    • Службы автоматического обнаружения для конфигурации без портов
    • Скрипты Lua (LuaJIT)
    • Ведение журнала и анализ на уровне приложений, включая сертификаты TLS/SSL, HTTP-запросы, DNS-запросы и т. д.
    • Встроенное аппаратное ускорение (GPU для прослушивания сети)
    • Извлечение файла
  • Документация:
    • Руководство пользователя Suricata
    • Документация пользователя и разработчика
    • Часто задаваемые вопросы по Suricata

Bro (переименованный в Zeek)

Bro, который был переименован в Zeek в конце 2018 года и иногда называется Bro-IDS или теперь Zeek-IDS, немного отличается от Snort и Suricata. В некотором смысле Bro — это IDS, основанная как на сигнатурах, так и на основе аномалий. Его механизм анализа преобразует захваченный трафик в серию событий. Событием может быть вход пользователя на FTP, подключение к веб-сайту или что угодно. Сила системы заключается в том, что следует за обработчиком событий, а именно за интерпретатором сценариев политик. Этот механизм политики имеет собственный язык (Bro-Script) и может выполнять очень мощные и универсальные задачи.

Если вы аналитик и задаетесь вопросом: «Как я могу автоматизировать часть своей работы?» то это инструмент, который вы искали. Хотите загружать файлы, обнаруженные в сети, отправлять их на анализ вредоносных программ, уведомлять вас в случае обнаружения проблемы, а затем заносить источник в черный список и выключать компьютер пользователя, который его загрузил? Хотите отслеживать шаблоны использования пользователя после того, как он связался с IP-адресом из базы данных репутации?

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

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

Bro  Резюме

  • Сложно настроить
  • Может обнаруживать шаблоны активности, которые другие системы IDS не могут
  • Очень расширяемая архитектура
  • Хорошая поддержка сообщества
  • Согласно веб-сайту Bro, функции включают:
    • Комплексная регистрация и анализ трафика
    • Мощный и гибкий язык сценариев, управляемый событиями (скрипты Bro)
    • Развертывается в системах типа UNIX, включая Linux, FreeBSD и MacOS
    • Поддержка DNS/FTP/HTTP/IRC/SMTP/SSH/SSL/другого протокола
    • Полностью пассивный анализ трафика с подключением к сети или мониторингом порта
    • Анализ в режиме реального времени и в автономном режиме
    • Поддержка кластера для крупномасштабных развертываний
    • Комплексная поддержка IPv6
    • Сопоставление шаблонов в стиле IDS
    • Извлечение файла
    • Расширяемая архитектура
    • Аналитики могут использовать Bro для автоматизации ( извлечение файлов , анализ вредоносных программ , занесение в черный список, отслеживание шаблонов использования , исследовательская работа и т.  д.)
  • Документация:
    • Бро ручной
    • Бро Документы
    • Братан FAQ

IDS на базе хоста (HIDS)

Хост-системы обнаружения вторжений ( HIDS ) работают, отслеживая активность, происходящую внутри конечного хоста. Приложения HIDS (например, антивирусное программное обеспечение, программное обеспечение для обнаружения шпионского ПО, брандмауэры) обычно устанавливаются на всех подключенных к Интернету компьютерах в сети или на подмножестве важных систем, таких как серверы. В том числе в публичных облачных средах.

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

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

Если ваша организация имеет мандат на соответствие требованиям, например PCI DSS, HIPAA или ISO 27001, вам может потребоваться, чтобы HIDS демонстрировал мониторинг целостности файлов (FIM), а также активный мониторинг угроз.

OSSEC

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

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

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

При обсуждении OSSEC (и других HIDS) часто возникают опасения по поводу установки агента или программного обеспечения на важных серверах. Следует отметить, что установка OSSEC очень легкая (установщик занимает менее 1 МБ), и большая часть анализа фактически выполняется на сервере, что означает, что OSSEC потребляет очень мало ресурсов ЦП на хосте. OSSEC также имеет возможность отправлять журналы ОС на сервер для анализа и хранения, что особенно полезно на компьютерах с Windows, на которых нет встроенных и кросс-платформенных механизмов ведения журналов.

Сводка OSSEC:
  • Агенты почти для каждой ОС
  • Скомпилированный агент для Windows
  • Больше функций, чем просто FIM
  • Жесткий, но простой процесс установки
  • Хорошая поддержка сообщества
  • Согласно веб-сайту OSSEC, функции включают:
    • Мониторинг целостности файлов (FIM)
    • Мониторинг журналов собирает, анализирует и сопоставляет системные журналы
    • Обнаружение руткитов, которое ищет модификации системы, похожие на руткиты
    • Активный ответ может вызвать действие автоматического ответа при срабатывании предупреждений
    • Архитектура клиент/сервер
    • Многоплатформенная поддержка (Linux, Solaris, Windows, MacOS и т. д.)
    • Поддерживает требования соответствия для FIM
    • Оповещения в режиме реального времени и настраиваемые оповещения
    • Интеграция с текущей инфраструктурой
    • Централизованный сервер для массового управления политиками
    • Агентный и безагентный мониторинг
  • Для AlienVault USM Anywhere доступен подключаемый модуль для OSSEC. Чтобы узнать больше, прочитайте здесь .
  • Документация:
    • Документы OSSEC
    • Часто задаваемые вопросы OSSEC
    • OSSEC Гитхаб

Samhain Labs

Samhain, вероятно, является единственным HIDS с открытым исходным кодом, который дает OSSEC возможность побороться за свои деньги. Но это очень похоже на «одинаковые, но разные» при сравнении двух. Samhain имеет ту же клиент-серверную архитектуру, но не требует ее, как OSSEC. Сам агент имеет множество методов вывода, один из которых является центральным хранилищем журналов, но включает и другие, такие как системный журнал, электронная почта и СУБД. Существует даже возможность использовать Samhain как отдельное приложение на одном хосте.

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

Самайн Резюме:
  • Установить сложнее
  • Клиентам Windows требуется Cygwin
  • Отличная функциональность FIM
  • Более гибкий клиент
  • Хорошо сообщество поддержка
  • Согласно веб-сайту Samhain, функции включают в себя:
    • Мониторинг целостности файлов (FIM)
    • Мониторинг и анализ файла журнала
    • Обнаружение руткитов
    • Мониторинг порта
    • Обнаружение мошеннических исполняемых файлов SUID и скрытых процессов
    • Многоплатформенная поддержка
    • Централизованная регистрация и обслуживание
    • Архитектура клиент/сервер (в основном)
    • Разнообразие методов вывода (например, системный журнал, электронная СУБД)
    • Может использоваться как отдельное приложение на одном хосте
  • Документация:
    • Документы Самайна
    • Самайн Руководство пользователя
    • Часто задаваемые вопросы о Самайне

Мониторинг целостности файлов (только FIM)

Многие инструменты мониторинга целостности файлов (FIM) относятся к категории HIDS, поскольку FIM включает обнаружение угроз, поэтому давайте поговорим о них. FIM  – это инструмент, который проверяет целостность операционной системы и указанного файла приложения, сравнивая текущие версии с известными допустимыми версиями и уведомляя администратора о каждом изменении. Это важно, потому что изменения на критических серверах часто сигнализируют о взломе. Если вы все еще задаетесь вопросом, что такое мониторинг целостности файлов и зачем он мне нужен?

Некоторые FIM активно развиваются, а другие не обновлялись годами. Tripwire с открытым исходным кодом и AFICK — это два варианта продуктов FIM с открытым исходным кодом. Для автономных систем на базе Unix рассмотрите возможность проверки целостности файлов для обнаружения руткитов, например chkrootkit , rkhunter или Unhide . Уникальный механизм обнаружения руткитов делает эти решения заслуживающими внимания. Для Windows также доступны проприетарные решения.

Платформа AlienVault Unified Security Management (USM) имеет встроенный Возможности FIM  для внедрения технологий обнаружения угроз и ускорения ваших усилий по соблюдению требований кибербезопасности. Чтобы узнать больше о том, как AlienVault USM использует FIM для защиты ваших активов, прочитайте здесь .

Заключительные мысли

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

ZPK — Криптография и платежи

Введение

Стандарт AS2805.6 определяет безопасность связи между двумя узлами во время финансовой транзакции. Эти узлы должны иметь определенный набор алгоритмов шифрования и должны следовать определенному процессу.

В спецификации не очень ясно, что именно должно произойти, поэтому я намерен уточнить точные шаги с функциями HSM. Теперь, чтобы сделать это, я предполагаю, что у вас есть Thales 9000 HSM, и вам нужно знать, как правильно с ним работать. Все определенные команды содержатся в руководстве 1270A547-015 Australian Standards LIC003 v2.3a.pdf, предоставленном Thales при покупке устройства.

Исходный код

Копию этого руководства можно найти здесь [Австралийские стандарты Thales 9000 LIC003 v2.3a]

Копия моего синтаксического анализатора AS2805 находится здесь

Копия моего класса команд Thales находится здесь

Полная версия узла обмена AS2805 находится здесь

Процесс KEK (уровень 1)

Для этого процесса:

  1. вам нужно перейти к HSM и сгенерировать 2 компонента Clear, затем вам нужно сформировать ключ KEKs из эти компоненты. Это можно сделать с помощью пользовательского интерфейса менеджера HSM или с помощью консольной команды FK.
  2. Сохраните KEK , сформированных из чистых компонентов, в базе данных коммутатора.
  3. После этого ваш подключающийся узел/хост предоставит вам набор четких компонентов, вам необходимо снова сгенерировать ключ, но в данном случае это KEKr
  4. Вам необходимо предоставить хосту ключевые компоненты, созданные вами на шаге 1, чтобы они могли генерировать соответствующие ключи KEK.

Теперь у вас есть KEKr и KEK в вашей базе данных, а также чтение вашего хоста для уровня 2

Инициализация сеанса и ключа MAC (уровень 2)

Этот уровень состоит из 2 отдельных шагов, первый шаг (вход в систему) проверяет KEKr и KEK, чтобы оба узла знали, что используются правильные ключи. Второй шаг (обмен ключами) заключается в создании временных ключей, которые меняются каждые 60 минут или 256 транзакций.

Процесс входа в систему

 

Во время процесса входа HSM должен сгенерировать 2 вещи:

  1. Случайное число (RN)
  2. инвертированное случайное число (~RN)

Эти номера будут возвращены в зашифрованном виде с помощью KEKr и KEK, и вам нужно будет их подтвердить, это также называется проверкой конца проверки.

Процесс входа в систему состоит из двух шагов, показанных на рисунке ниже.

Шаг 1

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

Для создания ответа проверки KEKr вам потребуются ваши KR , полученные в этом запросе, и ваши KEKr, которые вы сгенерировали из своих компонентов хоста.

Определение команды E2: Чтобы получить случайный ключ (KR), зашифрованный с помощью варианта ключа шифрования ключа двойной длины (KEKr), вычислите из KR другое значение, обозначенное KRr, и зашифруйте его с помощью другого варианта KEKr

Ваш HSM команда будет выглядеть следующим образом: >HEADE2{KEKr}{KRs}, и вы выведете крон . Ваш ответ хосту должен включать это значение в бит номер 48.

Шаг 2

Теперь вам нужно отправить хосту запрос на вход с битом 48, установленным с вашим KRs

E0 Определение команды: для создания случайный ключ (KR) и зашифровать его с помощью варианта ключа шифрования ключа двойной длины (KEK). Кроме того, KRs инвертируется (для формирования KRr), а результат шифруется другим вариантом KEK.

Ваша команда HSM будет выглядеть следующим образом: >HEADE0{KEKs}, и вывод будет генерировать KRs . Ваш хост подтвердит этот запрос и вернет ответ.

После выполнения обоих шагов и вы, и хост получили подтверждение того, что вы используете одни и те же ключи.

Ниже приведен пример этого процесса на языке Python:

 

 def __signon__Part1__(self):
 self.log.info("====Процесс входа в систему начат ====")
 self.__setState('signing_on')
 cur = self.con_switch.cursor(MySQLdb.cursors.DictCursor)

 пытаться:
 self.log.info("Ожидание запроса 0800")
 self.s.settimeout(20.0)
 length_indicator = self.s.recv(2)
 если length_indicator == '':
 self.log.critical('Получен пустой индикатор длины от коммутатора... возможно, это отключение')
 self.__setState("blank_response")
 еще:
 размер = struct.unpack('!H', length_indicator)[0]
 полезная нагрузка = self. s.recv(размер)
 полезная нагрузка = ByteUtils.ByteToHex(полезная нагрузка)
 д = дата-время.сейчас()
 self.log.info(" Получение запроса на вход 0800 = [%s]" % полезной нагрузки)
 если полезная нагрузка == '':
 self.log.critical('Получен пустой ответ от коммутатора... возможно, это отключение')
 self.__setState("blank_response")
 еще:
 iso_ans = AS2805 (отладка = ложь)
 iso_ans.setIsoContent (полезная нагрузка)


 self.__storeISOMessage(iso_ans, {"date_time_received": d.strftime("%Y-%m-%d %H:%M:%S")})
 если iso_ans.getMTI() == '0800':
 если iso_ans.getBit(70) == '001':
 #log.info("Вход в систему начат с KEKr = %s, KEKs = %s" % ( self.KEKr, self.KEKs))
 KRs = iso_ans.getBit(48)
 #log.info("KRs %s Получено от хоста" % (KRs))
 #print "Создание команды E0 с KEKr=%s и KRs=%s" % (self.KEKr, KRs)
 self.ValidationResponse = KeyGenerator.Generate_KEKr_Validation_Response(KEKr=self.KEKr, KRs=KRs)
 #print self.ValidationResponse

 если self.ValidationResponse["ErrorCode"] == '00':
 #log. info("Сгенерирован ответ проверки KRs %s" % (self.ValidationResponse["KRr"]))
 д = дата-время.сейчас()
 iso_resp = AS2805 (отладка = ложь)
 iso_resp.setMTI('0810')
 iso_resp.setBit(7, d.strftime("%m%d%H%M%S"))
 iso_resp.setBit(11, iso_ans.getBit(11))
 iso_resp.setBit(33, self.Switch_IIN)
 iso_resp.setBit(39, '303')
 iso_resp.setBit(48, self.ValidationResponse["KRr"])
 iso_resp.setBit(70, '0001')
 iso_resp.setBit(100, self.Switch_IIN)

 iso_send = iso_resp.getNetworkISO()
 iso_send_hex = ByteUtils.HexToByte (iso_send [2:])
 self.log.info("Отправка ответа на вход 0810 [%s]" % ReadableAscii(iso_send))
 self.__send_message(iso_send_hex)
 self.__storeISOMessage(iso_resp, {"date_time_sent": d.strftime("%Y-%m-%d %H:%M:%S")})
 self.__setState('signed_on')
 еще:
 self.log.error("Код ответа 0810 KRr = %s, Ошибка входа" % (self.ValidationResponse["ErrorCode"],))
 #TODO: отправить отказ партнеру

 еще:
 self.log.error("Не удалось войти с кодом 0810")



 кроме InvalidAS2805, ii:
 self. log.error(ii)
 кроме socket.error как e:
 проходить
 self.log.debug("ничего с хоста [%s]" % (e))
 кроме:
 #self.__signoff()
 self.log.exception("signon_failed")
 self.__setState("singon_failed")
 окончательно:
 курс.закрыть()

 защита __signon_Part2__(сам):

 пытаться:
 self.s.settimeout(20.0)
 self.ValidationRequest = KeyGenerator.Generate_KEKs_Validation_Request(KEKs=self.KEKs)
 д = дата-время.сейчас()
 iso_resp = AS2805 (отладка = ложь)
 iso_resp.setMTI('0800')
 iso_resp.setBit(7, d.strftime("%m%d%H%M%S"))
 iso_resp.setBit(11, self.__getNextStanNo())
 iso_resp.setBit(33, self.HostIIN)
 iso_resp.setBit(48, self.ValidationRequest["KRs"])
 iso_resp.setBit(70, '001')
 iso_resp.setBit(100, self.HostIIN)
 iso_send = iso_resp.getNetworkISO()
 iso_send_hex = ByteUtils.HexToByte (iso_send [2:])

 self.log.info("Отправка запроса на вход 0800 [%s]" % ReadableAscii(iso_send))
 self.__send_message(iso_send_hex)
 self.__storeISOMessage(iso_resp, {"date_time_sent": d.strftime("%Y-%m-%d %H:%M:%S")})

 self. log.info("Ожидание ответа 0810")
 a = self.s.recv(8192)
 полезная нагрузка = ByteUtils.ByteToHex(a[2:])
 д = дата-время.сейчас()
 self.log.info(" Получение ответа на вход 0810 = [%s]" % полезной нагрузки)
 iso_ans = AS2805 (отладка = ложь)
 iso_ans.setIsoContent (полезная нагрузка)
 self.log.debug(iso_ans.dumpFields())
 self.__storeISOMessage(iso_ans, {"date_time_received": d.strftime("%Y-%m-%d %H:%M:%S")})
 если iso_ans.getBit(39) == '3030':
 self.log.info("====Последовательность входа успешно завершена====")
 self.__setState("signed_on_dual")
 еще:
 #self.__signoff()
 self.log.error("Не удалось войти с кодом 0800")
 self.__setState("singon_failed")
 кроме InvalidAS2805, ii:
 self.log.info(ii)
 кроме socket.error как e:
 self.log.info("ничего с хоста [%s]" % (e))
 кроме:
 #self.__signoff()
 self.log.exception("signon_failed")
 self.__setState("singon_failed") 

 

Обмен ключами (уровень 2)

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

Таким образом, сразу после успешного входа в систему вам нужно будет дождаться запроса на обмен ключами (0820 с полем 30 как 303), этот запрос на обмен ключами будет иметь ZAK и ZPK в поле 48, они зашифрованы с помощью KEKr, сгенерированного на вашем хосте из их компонентов. Вам нужно будет перевести эти ключи, используя ваш KEKr под вашим LMK, и сгенерировать контрольные значения для проверки.

Команда будет выглядеть следующим образом: >HEADOK{KEKr}21H{ZPK}1H{ZAK}0h21111111111111111111111111111111

Эти ключи известны как ваши: RECEIVE KEYS

а ЗАК — полученные ЗПК и ЗАК. Это выведет следующее:

 def Translate_a_Set_of_Zone_Keys(KEKr, ZPK, ZAK, ZEK):
 ответ = KeyClass.execute_Translate_a_Set_of_Zone_Keys (KEKr, ZPK, ZAK, ZEK)
 #распечатать ответ
 TranslatedZoneKeys = {}
 TranslatedZoneKeys["Заголовок"] = ответ[2:6]
 TranslatedZoneKeys["ResponseCode"] = ответ[6:8]
 TranslatedZoneKeys["ErrorCode"] = ответ[8:10]
 если TranslatedZoneKeys["ErrorCode"] == '00':
 TranslatedZoneKeys["Флаг обработки KCV"] = ответ[10:11]
 TranslatedZoneKeys["ZPK(LMK)"] = ответ[11:44]
 TranslatedZoneKeys["Проверочное значение ZPK"] = ответ[44:50]
 TranslatedZoneKeys["ZAK(LMK)"] = ответ[50:83]
 TranslatedZoneKeys["Проверочное значение ZAK"] = ответ[83:89]
 TranslatedZoneKeys["ZEK(LMK)"] = ответ[89:122]
 TranslatedZoneKeys["Проверочное значение ZEK"] = ответ[122:128]
 return TranslatedZoneKeys 

Другими словами, вам нужно сгенерировать те же ключи, но под своим LMK и сохранить их в своей базе ключей

Теперь всякий раз, когда вы получаете запрос от вашего хоста с Mac, вы можете проверить Mac с помощью ZAK ( LMK), и когда вы получаете зашифрованные значения от своего хоста, вы можете преобразовать значения, используя ZPK(LMK)

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

Вот реализация с использованием Python:

 def __key_exchange_listen(self):
 self.log.info("===== Процесс обмена ключами запущен =======")
 self.s.settimeout(20.0)
 length_indicator = self.s.recv(2)
 если length_indicator == '':
 self.log.critical('Получен пустой индикатор длины от коммутатора... возможно, это отключение')
 self.__setState("blank_response")
 еще:
 размер = struct.unpack('!H', length_indicator)[0]
 полезная нагрузка = self.s.recv(размер)
 полезная нагрузка = ByteUtils.ByteToHex(полезная нагрузка)
 д = дата-время.сейчас()
 self.log.info(" Получение запроса на обмен ключами = [%s]" % полезной нагрузки)
 если полезная нагрузка == '':
 self.log.critical('Получен пустой ответ от коммутатора... возможно, это отключение')
 self.__setState("blank_response")
 еще:
 iso_ans = AS2805 (отладка = ложь)
 iso_ans.setIsoContent("%s" % (полезная нагрузка))
 self. log.debug(iso_ans.dumpFields())

 self.__storeISOMessage(iso_ans, {"date_time_received": d.strftime("%Y-%m-%d %H:%M:%S")})
 если iso_ans.getMTI() == '0820' и iso_ans.getBit(70) == '0101':
 Значение = iso_ans.getBit(48)
 self.ZAK = Значение[:32]
 self.ZPK = Значение[32:]

 self.node_number = iso_ans.getBit(53)
 log.info("Получить ключи под ZMK : ZAK= %s, ZPK = %s" % (self.ZAK, self.ZPK ))

 self.ZoneKeySet2 = KeyGenerator.Translate_a_Set_of_Zone_Keys(self.KEKr,ZPK=self.ZPK, ZAK=self.ZAK, ZEK='111111111111111111111111111111111')
 cur = self.con_switch.cursor(MySQLdb.cursors.DictCursor)
 sql = """ОБНОВЛЕНИЕ session_as2805 установлено
 ZPK_LMK = '%s',
 ZPK_ZMK = '%s',
 ZPK_Check = '%s',
 ЗАК_ЛМК = '%s',
 ЗАК_ЗМК = '%s',
 ZAK_Check = '%s',
 ZEK_LMK = '%s',
 ZEK_Check = '%s',
 keyset_number = '%s'
 ГДЕ host_id = '%s' и keyset_description = 'Получить' """ %\
 (
 self.ZoneKeySet2["ЗПК(ЛМК)"],
 самоп.ЗПК,
 self.ZoneKeySet2["Проверочное значение ZPK"],
 self.ZoneKeySet2["ЗАК(ЛМК)"],
 селф. ЗАК,
 self.ZoneKeySet2["Проверочное значение ZAK"],
 self.ZoneKeySet2["ZEK(LMK)"],
 self.ZoneKeySet2["Проверочное значение ZEK"],
 self.node_number,
 self.host_id)
 log.info("Получить ключи под LMK: ZAK= %s, контрольное значение ZAK: %s ZPK = %s, контрольное значение ZPK: %s" % (self.ZoneKeySet2["ZAK(LMK)"], self.ZoneKeySet2 ["Проверочное значение ZAK"], self.ZoneKeySet2["ZPK(LMK)"], self.ZoneKeySet2["Проверочное значение ZPK"]))
 cur.execute(sql)
 self.log.debug("Records=%s" % (cur.rowcount,))
 iso_req = AS2805 (отладка = ложь)
 iso_req.setMTI('0830')
 iso_req.setBit(7, iso_ans.getBit(7))
 iso_req.setBit(11, iso_ans.getBit(11))
 iso_req.setBit(33, iso_ans.getBit(33))
 iso_req.setBit(39, '303')
 iso_req.setBit(48, self.ZoneKeySet2["Проверочное значение ZAK"] + self.ZoneKeySet2["Проверочное значение ZPK"])
 iso_req.setBit(53, iso_ans.getBit(53))
 iso_req.setBit(70, iso_ans.getBit(70))
 iso_req.setBit(100, iso_ans.getBit(100))
 self.__storeISOMessage(iso_req, {"date_time_sent": d. strftime("%Y-%m-%d %H:%M:%S")})
 пытаться:

 iso_send = iso_req.getNetworkISO()
 iso_send_hex = ByteUtils.HexToByte (iso_send [2:])

 self.log.debug(iso_req.dumpFields())
 self.log.info("Отправка ответа обмена ключами = [%s]" % ReadableAscii(iso_send))
 self.__send_message(iso_send_hex)
 self.node_number = iso_ans.getBit(53)
 кроме:
 self.log.exception("key_exchange_failed")
 self.__setState('key_exchange_failed')

 окончательно:
 курс.закрыть() 

 

Эти ключи известны как ваши SEND KEYS

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

>HEADOI{KEKs};HU;1

Где KEKs — это KEK, сгенерированные вами из ваших компонентов, и ваш вывод будет следующим:

 def Generate_a_Set_of_Zone_Keys(KEKs):
 ответ = KeyClass.execute_get_a_Set_of_Zone_Keys (KEK)
 #распечатать ответ
 Ключи Зоны = {}
 ZoneKeys["Заголовок"] = ответ[2:6]
 ZoneKeys["ResponseCode"] = ответ[6:8]
 ZoneKeys["КодОшибки"] = ответ[8:10]
 если ZoneKeys["ErrorCode"] == '00':
 ZoneKeys["ZPK(LMK)"] = ответ[10:43]
 ZoneKeys["ZPK(ZMK)"] = ответ[43:76]
 ZoneKeys["Проверочное значение ZPK"] = ответ[76:82]
 ZoneKeys["ZAK(LMK)"] = ответ[82:115]
 ZoneKeys["ZAK(ZMK)"] = ответ[115:148]
 ZoneKeys["Проверочное значение ZAK"] = ответ[148:154]
 ZoneKeys["ZEK(LMK)"] = ответ[154:187]
 ZoneKeys["ZEK(ZMK)"] = ответ[187:220]
 ZoneKeys["Проверочное значение ZEK"] = ответ[220:226]
 вернуть ZoneKeys 

Теперь при отправке запроса  0820 вам нужно указать поле 40 как ZAK(ZMK) + ZPK(ZMK). Ваш хост выполнит запрос на проверку (так же, как вы сделали на шаге 1) и отправит вам контрольные значения. вам нужно сравнить это с контрольными значениями, сгенерированными вашей командой OI, и если они совпадают, то вы успешно обменялись ключами.

Ниже приведена реализация с использованием Python:

 

 def __keyExchange__(self):
self.__setState("key_exchange")

self.__key_exchange_listen()

cur = self.con_switch.cursor(MySQLdb.cursors.DictCursor)
д = дата-время.сейчас()
self.ZoneKeySet1 = {}
self.ZoneKeySet2 = {}
self.ZoneKeySet1 = KeyGenerator.Generate_a_Set_of_Zone_Keys(self.KEK)

iso_req = AS2805 (отладка = ложь)
iso_req.setMTI('0820')
iso_req.setBit(7, d.strftime("%m%d%H%M%S"))
iso_req.setBit(11, self.__getNextStan())
iso_req.setBit(33, self.HostIIN)
iso_req.setBit(48, self.ZoneKeySet1["ZAK(ZMK)"][1:] + self.ZoneKeySet1["ZPK(ZMK)"][1:])
iso_req.setBit(53, self.node_number)
iso_req.setBit(70, '101')
iso_req.setBit(100, self. SwitchLink_IIN)
self.__storeISOMessage(iso_req, {"date_time_sent": d.strftime("%Y-%m-%d %H:%M:%S")})
log.info("Отправить ключи под LMK: ZAK= %s, контрольное значение ZAK: %s ZPK = %s, контрольное значение ZPK: %s" % (self.ZoneKeySet1["ZAK(LMK)"], self.ZoneKeySet1 ["Проверочное значение ZAK"], self.ZoneKeySet1["ZPK(LMK)"], self.ZoneKeySet1["Проверочное значение ZPK"]))

пытаться:

# отправить ключи отправки
iso_send = iso_req.getNetworkISO()
iso_send_hex = ByteUtils.HexToByte (iso_send [2:])

self.log.debug(iso_req.dumpFields())
self.log.info("Отправка запроса на обмен ключами = [%s]" % ReadableAscii(iso_send))
self.__send_message(iso_send_hex)

self.s.settimeout(20.0)
length_indicator = self.s.recv(2)
если length_indicator == '':
self.log.critical('Получен пустой индикатор длины от коммутатора... возможно, это отключение')
self.__setState("blank_response")
еще:
размер = struct.unpack('!H', length_indicator)[0]
полезная нагрузка = self.s.recv(размер)
полезная нагрузка = ByteUtils. ByteToHex(полезная нагрузка)
д = дата-время.сейчас()
self.log.info(" Получение ответа обмена ключами = [%s]" % полезной нагрузки)
если полезная нагрузка == '':
self.log.critical('Получен пустой ответ от коммутатора... возможно, это отключение')
self.__setState("blank_response")
еще:
iso_ans = AS2805 (отладка = ложь)
iso_ans.setIsoContent (полезная нагрузка)
self.log.debug(iso_ans.dumpFields())
self.__storeISOMessage(iso_ans, {"date_time_received": d.strftime("%Y-%m-%d %H:%M:%S")})

если iso_ans.getMTI() == '0830':
если iso_ans.getBit(39) == '3030':

Значение = iso_ans.getBit(48)
self.KMACs_KVC = Значение[:6]
self.KPEs_KVC = Значение[6:]
#self.log.info("KMACs_KVC = %s, KPEs_KVC = %s" % (self.KMACs_KVC, self.KPEs_KVC))
если self.KMACs_KVC == self.ZoneKeySet1["Проверочное значение ZAK"] и self.KPEs_KVC == self.ZoneKeySet1["Проверочное значение ZPK"]:
self.log.info("0820 Обмен ключами успешен: контрольные значения совпадают, контрольное значение ZAK = %s , контрольное значение ZPK = %s" % (self. ZoneKeySet1["Проверочное значение ZAK"], self.ZoneKeySet1["Проверка ZPK Ценить"]))
sql = """ОБНОВЛЕНИЕ session_as2805
НАБОР
ZPK_LMK = '%s',
ZPK_ZMK = '%s',
ZPK_Check= '%s',
ZAK_LMK= '%s',
ЗАК_ЗМК = '%s',
ZAK_Check = '%s',
ZEK_LMK = '%s',
ZEK_ZMK = '%s',
ZEK_Check = '%s',
keyset_number = '%s'
ГДЕ host_id = '%s' и keyset_description = 'Отправить' """%\
( self.ZoneKeySet1["ЗПК(ЛМК)"],
self.ZoneKeySet1["ЗПК(ЗМК)"],
self.ZoneKeySet1["Проверочное значение ZPK"],
self.ZoneKeySet1["ЗАК(ЛМК)"],
self.ZoneKeySet1["ЗАК(ЗМК)"],
self.ZoneKeySet1["Проверочное значение ZAK"],
self.ZoneKeySet1["ZEK(LMK)"],
self.ZoneKeySet1["ZEK(ZMK)"],
self.ZoneKeySet1["Проверочное значение ZEK"],
self.node_number,
self.host_id)

cur.execute(sql)
self.log.debug("Records=%s" % (cur.rowcount,))
self.__setState("key_exchanged")

self.__setState('session_key_ok')
self.log.info("==== Последовательность обмена ключами успешно завершена====")
self.last_key_exchange = datetime.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *