Что такое несимметричные шифры
Криптография простым языком: разбираем симметричное и асимметричное шифрование на примере сюжета Звездных войн (Updated)
Привет всем читателям Хабра! Не так давно решил разобраться с алгоритмами шифрования и принципами работы электронной подписи. Тема, я считаю, интересная и актуальная. В процессе изучения попробовал несколько библиотек, однако самой удобной с моей точки зрения является библиотека PyCrypto. У неё прекрасная документация, сопровождаемая примерами.
После прочтения материала вы усвоите следующие моменты:
Целью данной статьи является познакомить читателя с основными алгоритмами шифрования. При написании статьи, я постарался как можно большее внимание уделить вопросу практического применения. Для программирования использовался язык Python 3.6. При написании кода старался делить его на отдельные части и комментировать все ключевые моменты.
В данной статье я не разбирал цифровую подпись, однако после понимания асимметричного шифрования смысл этой технологии станет понятен.
Сюжет
Давайте мысленно перенесемся во вселенную Звездных войн до событий Эпизода 6, когда силам сопротивления становится известно о начале строительства новой Звезды смерти. Командование планирует внедрить разведывательную группу под видом строителей. Операция очень опасна, связь со штабом будет затруднена. В случае экстренной стиуации каждый член группы может отправлять и получать сообщения из штаба на незащищенной частоте.
Целью разведгруппы являются любые данные, которые могут пролить свет на конфигурацию, вооружение и назначение будущей станции. Для хранения данных планируется разработать специальное оборудование и ПО.
Штаб утвердил два варианта этой операции:
План А — возвращение агентов с данными повстанческим силам;
План Б — дистанционная передача планов с самой Звезды смерти, используя оборудование станции. Передача информации при этом будет быстрой, но после передачи агент вероятнее всего будет вычислен и пойман.
Вы являетесь программистом в команде, которая отвечает за разработку ПО.
При планировании операции рассматриваются несколько возможных негативных сценариев:
Шифрование информации
Давайте решим проблему шифрования информации:
Для шифрования и дешифрования информации используется ключ шифрования. Именно ключ делает шифрование обратимым. Каждый агент будет снабжен ключом шифрования. После загрузки данных агент произведет их шифрацию и отправку в штаб сопротивления.
Метод, при котором шифрование и дешифрация сообщения производится при помощи одного ключа называется симметричное шифрование.
Слабым местом симметричного шифрования является ключ шифрования, точнее его доставка до адресата. Если во время доставки ключ будет скомпрометирован, стороннее лицо легко раскодирует сообщение. Сильной стороной симметричного шифрования является его скорость, что дает возможность кодировать большие объемы данных.
Асимметричное шифрование для кодирования данных использует два связанных друг с другом ключа: открытый и закрытый.
Механизм действия такой:
Давайте приступим в программированию! Для разработки необходимого ПО мы будем использовать библиотеку Python под названием pycrypto. У нее отличная документация и в ней представлены все распространенные алгоритмы шифрования.
Для начала разработаем функционал для симметричного шифрования по названием Advanced Encryption Standard (AES). Он является одним из самых распространённых алгоритмов симметричного шифрования.
Хеш документа — это просто строка из символов, которая уникальна для какого-либо набора данных. При любом изменении данных хеш очень сильно меняется. Другими словами, хеш — это своеобразный «отпечаток пальца» для какого-либо набора данных.
Но что делать, если ключи шифрования будут по каким-то причинам скомпрометированы? Тогда расшифровать информацию может кто угодно.
В этом случае нам нужно как-то сменить ключи шифрования дистанционно по частоте, которая может прослушиваться противником. Будем считать, что ее уже слушают. Так каким же образом нам это сделать? Тут на помощь приходит другой метод под названием асимметричное шифрование (или криптографическая система с открытым ключом). В отличие от симметричного шифрования, при ней используется два ключа: открытый и закрытый. Сообщение шифруется открытым ключом, после этого расшифровать его можно только закрытым ключом. Открытый ключ при расшифровке будет бесполезен. Однако есть важный момент: закрытый ключ непременно должен быть из сгенерированной пары с открытым. Наличие открытого ключа одно из нескольких важных и интересных свойство асимметричного шифрования. То есть, мы можем передавать открытый ключ любым каналом и не бояться, что он будет применен для расшифровки сообщения.
Вместе с тем, применительно к нашей задаче есть один ньюанс — асимметричное шифрование подходит для небольших данных, например коротких сообщений. Мы можем только гадать об объеме данных, полученных разведкой. Мы, конечно, можем разбить все полученные данные на небольшие фрагменты и закодировать каждый из них закрытым ключом, но есть более оптимальный вариант решения. (Проблема разобрана здесь).
Пользователь Akela_wolf справедливо заметил, сгенерировать и отправить открытый ключ может кто угодно. Я внес некоторые коррективы в план.
Будет правильно, если до отправки агентов штаб сгенерирует несколько пар ключей и назначит каждому агенту закрытый ключ. Лучше сгенерировать именно несколько пар, чтобы у каждого агента был индивидуальный ключ. Это необходимо, чтобы точно персонифицировать владельца ключа.
Тогда в случае компрометации ключей центр создаст новый СИММЕТРИЧНЫЙ ключ, закодирует его каждому агенту открытыми ключами и отправит по открытому каналу.
——BEGIN RSA PRIVATE KEY——
MIIEpAIBAAKCAQEA4JDLu7Vtvg2yqbH6Y0eJPfoEsOlKzgmOodqhA1CqkEG4OpKi
sGW7ciGP4v37GE6edHBCEy4UNkVQtnpPBjzTHvKd1pO70B84vD5OSrS7uNw2EYkj
d/ZwhrJMrcQKRwPkkM4OiewaaAaK0vPWJIKwlW61DY9X7LfNz7aOKMTbKnm1vdR0
919AV98FUmNoQBgka6nXFGmNbi7D43MtLwxBZIXfFupEiANSvOs+57hgaCho7OWM
GUOjLkG6HBscPhJ2W1H5DU9GjwL24ynTvKifgo1/2ue61MV1Pzh5CVaicJKNaRtg
Pd99gFhBGINsXV2X6Jh/W5nNsCddU4EI0AlO8wIDAQABAoIBAARM4YnjrIlSK9Sy
EtBp40frjMFyhjsx1ahlzmWI2utORt/gRPtJx3AlEmNPZ8qMXt5t8+X4IOz1INmN
uAuviH90N++O/q66mlSIgOlPUrT0ipiFXseCUZ9StMMzGNtJSMw5FfAwNEU/stLd
VoF2ezkxWIg88XsX/fn3Tfub4XKLvu4raJGcJ+Fo2GI9hYEGKnHhSuHvDHekTLlQ
z46O+cIwtehbFGcKesyK3zDD1uP5YLPIWpiqt1TgKjJzRF0l4ZJLk+RT7kU2pGIQ
mosOnr+06WyMIg724yQyAIwtS9X0czKBGUESrtTTb1HCXLeTwnncOTxh6q2z42LF
tn34+DECgYEA6EEp4oTvjfTQfUQPMByuAjF1hpdFHQqRymygiFgoF+Mg3QmL0w8j
/84H/q7s8FSx+3th8MK87bFq4lrry+h/mYwmvF5zZbhxcnl2uaX+KUPgpT6TgvAo
WOv2wc4BSaoo9DrxrZId86vpO2qbopw6gkBsvw47HSoQ+FSqXtZ0p8kCgYEA94Zj
b1ulctUjybiszO93TAjkzx3lU3yL+B1eZiQXtJa3mgG+ka1R/uMfr0NlT+Jzo0My
wHV30YRJDxziCrDol9OgSSU0sXwEcUxUIBLBwXLCp1EmMsYG9PB/x4OTWve35a8F
O+rMxuvWaZeIOfVCfL8UEcWweYaVdWIonJN+ltsCgYEAjeSZ2UlMLZce9RjqioNL
EA31dlfeoqJ9dYUuAn6RaB6cSk51vWlnnfXazo9CNIYaAsFbkcL3t+QHn+jaXEZc
BowocjbmG4Q20zBAB6XRBJbynSIA7yMYE1N9+uOHx+CMisGkO12krOUfZex4zzzR
RhhkF8ly9htoKL9ZIv20YXkCgYBzH3UF6PkVZJ5lhtgP5Nx2Z7iLwBrV7ppnBrnO
BcFkw6iXH3KT7KmzQ82LxWvMcMVZzLpBGyFkOAOG3OchE9DKNKpa+sv8NHMYguip
li+5mneAPFTozoOTznuPvtl9OLO2RuXHTVh6uFub9tdsJW8L+A8MiQagLwE6fDHp
SQxaewKBgQDIyzL1THpW3+AMNrOZuI/d3Em5wpGJiZbDSBRosvsfGm/sHaz4Ik5E
nWnftgktmsAD60eORTTh9/ww/nm7f3q9kzT8Sv1MmqeRXq9VFIOeP/+8SSE/7LzD
izlb5xEtVD8LuY54jHyiOxiZC++TQswMnOKKi0Gx26MDoO7Tx9akVw==
——END RSA PRIVATE KEY——
——BEGIN PUBLIC KEY——
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4JDLu7Vtvg2yqbH6Y0eJ
PfoEsOlKzgmOodqhA1CqkEG4OpKisGW7ciGP4v37GE6edHBCEy4UNkVQtnpPBjzT
HvKd1pO70B84vD5OSrS7uNw2EYkjd/ZwhrJMrcQKRwPkkM4OiewaaAaK0vPWJIKw
lW61DY9X7LfNz7aOKMTbKnm1vdR0919AV98FUmNoQBgka6nXFGmNbi7D43MtLwxB
ZIXfFupEiANSvOs+57hgaCho7OWMGUOjLkG6HBscPhJ2W1H5DU9GjwL24ynTvKif
go1/2ue61MV1Pzh5CVaicJKNaRtgPd99gFhBGINsXV2X6Jh/W5nNsCddU4EI0AlO
8wIDAQAB
——END PUBLIC KEY——
Как видите, ключи асимметричного шифрования представляют из себя длинные математически сгенерированные последовательности символов.
Итак, мы сгенерировали ключи. Теперь давайте напишем функцию для кодирования данных:
На данном абстрактном примере мы увидели работу распространенных алгоритмов шифрования. Симметричное и асимметричное шифрование, а также хеширование применяются в работе веба, электронной подписи, блокчейне и криптовалютах. Надеюсь, материал был полезен для понимания работы этих технологий.
Послесловие
В итоге, разведке повстанцев удалось добыть точные сведения об уязвимости станции и пути до нее, присутствии Императора для осмотра, наличии энергощита и его источника на Эндоре. Империя вычислила шпионов, дезинформировала их о боеспособности станции. Станция также была отведена к спутнику Эндора, откуда была защищена щитом.
Асимметричное шифрование
Сложное, но очень полезное.
В отличие от симметричного шифрования, в котором всё шифруется и расшифровывается одним и тем же ключом, асимметричное устроено сложнее. В нём уже два ключа, и один из них можно показывать всем.
👉 Если совсем просто: в асимметричном шифровании данные шифруются одним ключом, а расшифровываются другим. Первый ключ можно держать у всех на виду, а вот второй нужно прятать.
👉 Такой подход снимает некоторые вопросы безопасности в интернете: ведь невозможно вообще не передавать никому никакие ключи. Вот асимметричное шифрование помогает с этим: часть ключей можно безопасно пересылать, это не нарушит секретности.
Принцип работы
Асимметричное шифрование основано на парах чисел. Одно из этих чисел — открытый ключ, который доступен всем. С помощью этого числа кто угодно может зашифровать сообщение. Но расшифровать его с помощью этого же числа не получится.
Для расшифровки берут второе число — закрытый ключ. Он должен быть секретным.
Это не могут быть два случайных ключа. Открытый и закрытый ключ всегда связаны между собой алгоритмом, который их выдаёт. Смысл в том, что внутри этого алгоритма есть третье, тоже секретное, число, которое связано с обоими ключами.
Самый простой способ установить такую связь — взять два больших простых числа и перемножить их. Мы получим ещё большее число, которое и будет лежать в основе нашего алгоритма. А внутри этого алгоритма будет такая математика, которая зависит от разложения чисел на множители. Если мы не знаем ни одно из первоначальных простых чисел, то разложить на множители такое огромное число будет очень сложной задачей.
Пример: алгоритм RSA-2048
Все асимметричные алгоритмы делятся по виду математической задачи, на которой строится шифр. Задача должна быть сложной не для человека, а с точки зрения математики — той, которую сложно решить даже с мощным компьютером.
Разложение большого числа на множители, которое лежит в основе алгоритма RSA, — несложная задача, если таких множителей всего два. Например, если взять число 45, то оно легко раскладывается на множители так:
45 делится на 2? Нет.
45 делится на 3? Да, получается 15.
15 делится на 2? Нет.
15 делится на 3? Да, получается 5.
5 делится на 2, 3 или 4? Нет, остаётся только само число 5.
Получается 45 = 5 × 3 × 3.
Если мы возьмём число 474 689, то таких проверок и действий нам нужно будет выполнить ровно 479, потому что 474 689 = 479 × 991. Для человека это уже сложнее, но компьютер это сделает так же быстро, как и в случае с числом 45.
А вот для числа из 617 знаков — именно столько применяется в алгоритме RSA-2048 — потребуется сотни лет машинных вычислений, чтобы разложить его на два множителя.
Плюсы и минусы асимметричного шифрования
Плюс таких алгоритмов в том, что для передачи зашифрованных сообщений можно использовать открытый канал связи. Даже если злоумышленник перехватит сообщение, он не сможет прочитать его без секретного ключа. Но чтобы всё было именно так, нужно, чтобы ключ был достаточно длинный — 1024 бит и выше.
Минус асимметричного шифрования очевиден — оно работает только в одну сторону. Чтобы такое общение было двусторонним, каждый должен предоставить другому свой открытый ключ.
Применение
Асимметричное шифрование применяют в двух случаях:
Что дальше
Криптография и шифрование — слишком большая тема, чтобы рассказать о ней в паре статей. Скоро будет объяснение, как мессенджеры устанавливают защищённое соединение для чатов и как работает цифровая подпись. А потом поговорим про взломы и криптостойкость.
Что такое асимметричная криптография? Как работает асимметричное шифрование?
Ваши электронные письма и сообщения зашифрованы? Если это так, то, скорее всего, для них была использована асимметричная криптография, которая защищает ваши конфиденциальные данные от посторонних глаз.
Что такое шифрование?
Шифрование — это процесс, где математические формулы (алгоритмы шифрования), применяются для того, чтобы превратить обычный текст в нечитаемый, зашифрованный текст. Для зашифровки или расшифровки данных также необходим набор правил, которые бы указывали на корреляцию между оригинальным и зашифрованным текстом. Они называется ключами шифрования, которые представляют собой просто строку чисел, обычно измеряемых в битах.
Что такое асимметричная криптография?
Это криптография с открытым ключом, которая предназначена для шифрования и дешифрования данных с использованием двух ключей – частного и открытого (публичного). Оба ключа связаны между собой — один из них необходим для того, чтобы шифровать информацию, а другой — расшифровывать.
Публичный ключ необходим для того, чтобы любой, кто хочет отправить вам какие-либо данные, мог применить его для шифрования, в то время как второй ключ — закрытый, вы сможете использовать для расшифровки. Это гарантирует, что один отправитель не сможет прочитать сообщения, отправленные другим отправителем, даже если у них обоих есть публичный ключ получателя. Также почти невозможно узнать, к какому закрытому ключу принадлежит тот или иной открытый ключ.
Открытые ключи должны и обычно совместно используются публично, это вызывает беспокойство — т.к. общий ключ может быть изменен или заменен хакером. Идеального решения для такой проблемы, к сожалению, не существует. Некоторые организации выдают сертификаты, подтверждающие оригинальность открытого ключа. Это, как правило, используется для проверки зашифрованных интернет-соединений и цифровых подписей (например, для HTTPS). Также существуют алгоритмы шифрования, такие как OpenPGP, которые полагаются на децентрализованные системы, где отдельные лица подтверждают оригинальность ключа.
Как работает асимметричное шифрование?
Алгоритмы асимметричного шифрования
К популярным алгоритмам с использованием ключей относятся: EIGamal, RSA, DSA, ECC и PKCS. Сегодня RSA — это самый применяемый алгоритм. Его можно найти в протоколах SSL/TLS, которые нужны для установления зашифрованного соединения между вами и веб-сайтами. Ключи RSA, как правило, имеют длину 1024, 2048 или 4096 бит. Правительства и крупные организации в настоящее время переходят к минимальной длине ключа в 2048 бит, т.к. считают, что первые два можно взломать намного быстрее.
ECC также получает все большее признание от экспертов в области кибербезопасности, поскольку может создать быстрый, маленький и эффективный криптографический ключ, взломать который очень сложно.
Для чего используется ключи шифрования:
Асимметричная и симметричная криптография
Главное отличие между ними в том, что симметричное шифрование применяет одинаковые ключи, а асимметричное — разные. Симметричное шифрование, которое предшествовало асимметричному, представляло собой одну большую проблему безопасности — распределение ключей. Это означает, что любой, кто отслеживает трафик, может перехватить ваши ключи, а затем расшифровать любое зашифрованное соединение. Проблема решилась благодаря инфраструктуре общих ключей, где обеим сторонам не нужно обмениваться ключами сеанса, т.к. ключ получателя расшифровывается только им самим.
Асимметричное шифрование тоже не безупречно. Для шифровки и расшифровки информации требуется больше вычислений и времени, а ключи должны быть очень длинными, чтобы обеспечить безопасность не хуже, чем в симметричном шифровании (например, размер симметричного ключа в 80 бит будет равен RSA 1024-битному ключу). Вот почему некоторые протоколы (например, SSL/TLS) предпочитают использовать сочетание сразу двух.
Алгоритмы, такие как ECC, предназначены для сокращения длины ключа. Например, 160-битный ключ ECC будет эквивалентен 80-битному симметричному ключу. Однако он все еще не так быстр, как симметричная криптография.
Асимметричное шифрование на практике
Приветствую вас, хабравчане!
Проблемы безопасности — это слабое место большинства из нас. Всем нам неприятно сталкиваться и тем более терять что—то ценное из—за случайного клика мышью. И именно поэтому я решила поделиться найденными материалами с вами.
В стремлении развеять наиболее часто задаваемый вопрос — почему будут атаковать меня? Кому я нужен? — мы начнем статью именно с него.
Нужно учитывать, что атаковать вас может не только человек. Это может делать, например, бот.
Каждый из нас подключен к интернет провайдеру. А на него, скорее всего, происходят атаки буквально каждый день. Замечали у себя на почте раздел «спам»? В каждом таком письме потенциально есть фишинговая атака. Это атака не персонально на вас. Это масштабная атака, ориентированная на широкий круг лиц. Мы потенциально жертвы.
Чаще всего их цель — деньги. Как они могут их получить?
Например, использовать ваш компьютер в качестве web сервера, красть ваш контент, производить email атаки, деятельность в ботнете, кража аккаунтов, атаки с целью вымогательства. Да и email аккаунт — потенциально важная вещь, потому что все мы достаточно часто используем один и тот же пароль на нескольких сервисах.
Время дорого, и мы хотим тратить как можно меньше времени на вопросы, связанные с безопасностью.
И поэтому первое, что нужно сделать — это ответить для себя на несколько вопросов:
Окей, мы определились с тем, что нам необходимо защитить. Следующий шаг — выбор метода защиты.
Да, разумеется, в мире существует множество атак и защититься от всех просто невозможно.
Поэтому мы рассмотрим один из наиболее эффективных инструментов — шифрование.
Что такое шифрование?
Чтобы сделать правильный выбор в области безопасности, вам нужно понимать, что такое шифрование. Не обязательно знать хардкорную математику. Достаточно понять на базовом уровне. Это один из лучших и незаменимых инструментов в нашем арсенале.
Шифрование — это метод преобразования данных, пригодных для чтения человеком, в форму, которую человек не сможет прочитать. За счет этого данные остаются конфиденциальными и приватными.
Дешифрование — обратная операция. Преобразование нечитаемых данных в читаемые.
Окей, где это применяется? На самом деле во многих местах. Например, обращали внимание на протокол «https»? Именно за счет него ваши данные не может перехватить 3-й человек во время вашего лазания в интернете. Объясню подробнее. Вы заходите на сайт «www.google.com», делаете любой запрос. При этом все данные, которые необходимы для отображения выдачи результатов, передаются с помощью протокола «https». А значит, если какой-либо человек решит просмотреть данные о вашем трафике (атака Man In the Middle), то он увидит лишь то, что вы зашли на Google. В придачу он получит множество зашифрованных пакетов. То есть можно сказать, что он не получит ничего.
Но вернемся к базовой теории. В процессе шифрования участвуют 2 основных компонента — алгоритм и ключ.
Алгоритм — это в каком-то смысле замок, который позволяет хранить ваши данные в тайне. За счет него происходит преобразование текста.
Ключ — это, уж простите за тавтологию, ключ от замка. Кусочек уникальных данных, с помощью которых происходит преобразование текста
Хм, хорошо. Едем дальше. Слегка повысим напряжение.
Виды шифрования
Как еще мы можем использовать шифрование в своих, корыстных целях? Для простоты понимания мы рассмотрим шифрование архива. При архивации во многих архиваторах присутствует возможность установить пароль. При этом архиватор использует какой-либо алгоритм для шифрования. И чаще всего это симметричный алгоритм.
Симметричное шифрование
Симметричный алгоритм шифрования — алгоритм, при котором для шифрования и дешифрования используется один и тот же ключ. Ярким и, в то же простым примером, будет шифр Цезаря.
Вся работа этого алгоритма заключается в том, чтобы изменить символ на другой с определенным шагом.
Например, при смещении в 5 символов, символ, который стоит на первой позиции заменить на символ 6 позиции и так далее.
Наиболее стойким на данный момент считается алгоритм AES (Advanced Encryption Standard).
Стоит упомянуть еще один момент — мощность пароля. Мощность пароля измеряется в битах. Одним из наиболее распространенных решений является 128 или 256 бит. Это то количество бит, которое будет выделено для пароля. Так же это число означает количество паролей, которое вы можете получить при данном алгоритме шифрования. Но чем больше длина ключа, тем медленнее протекает процесс шифрования или дешифрования.
Но чаще всего используется асимметричное шифрование
И так, мы зашифровали письмо, но как его отправить нашему другу? Отправлять в соц. сетях или текстовым сообщением — не самая лучшая затея. Как и говорить его по телефону.
И это приводит нас к новому типу шифрования.
В ассиметричном шифровании используется 2 ключа — открытый и закрытый(тайный).
Открытый ключ для шифрования, закрытый — для дешифрования.
Какие алгоритмы позволяют пользоваться этой технологией?
Так как во мне есть жилка программиста, а также любовь к математике, то я просто не могу не рассказать о том, как все работает «под капотом»
Рассмотрим на примере алгоритма RSA.
Первое, что нам необходимо сделать — сгенерировать открытый и закрытый ключи. Последовательность действий примерно такая:
1) Мы выбираем два простых числа. Желательно, чтобы они были достаточно близкими
2) Вычисляем их произведение, а также функцию Эйлера
n = p * s
f = (p — 1) * (s — 1)
3) Теперь наиболее затратная по времени часть — выбор экспоненты и произвольного коэффициента.
Дело в том, что при выбранных коэффициентах значение «d» должно быть целым. «d» — необходимая составляющая алгоритма
e = 5
k = 9
d = (k * f + 1)/e
Теперь наш открытый ключ (для шифрования сообщения) состоит из значений переменных «e» и «n», а закрытый ключ (для дешифрования) из значений «d» и «n».
То есть в нашем случае…
Тогда шифрование сообщения происходит по формуле: crypt = m^e%n.
А дешифрование: decrypt = crypt^d%n.
Ну и с точки зрения программиста, мы можем использовать эту информацию следующим образом:
Теперь, зная теорию, плюсы и минусы алгоритма, а также для чего вообще нужно им пользоваться, мы можем говорить о практическом применении.
Среди всех найденных программ, наиболее удобной мне показалась gpg4usb.
Данная программа использует PGP шифрование. Почему я рекомендую использовать именно его?
Все просто. Этот тип шифрования до сих пор еще не удалось взломать. Никому. Так что пользуйтесь.
Пользоваться программой достаточно просто. Нужно лишь знать куда нажимать.
И именно об этом сейчас пойдет речь.
Первое, что необходимо сделать — скачать программу. Вы можете это сделать по ссылке:
ссылка.
Скажу сразу — эта программа кросс—платформенная. То есть вы можете использовать ее как на Windows, так и на Linux.
Второе — это создание пары ключей шифрования.
Это можно сделать, выполнив следующую последовательность действий:
1) Переходим в раздел «Менеджер ключей»
2) Выбираем в верхней панели «Ключ», затем «Генерировать ключ»
Должно выглядеть примерно так:
3) Заполняем необходимые поля. Предупрежу сразу — пароль лучше куда-нибудь записать (или запомнить), потому что он понадобится в последующем для дешифрования сообщения.
Теперь ключ создан, и мы можем приступать непосредственно к шифрованию.
На главном экране присутствует текстовое поле — это наш плацдарм для создания сообщений. В правой боковой панели помечаем галочкой свой ключ.
Введя сообщение в поле, смело нажимаем в верхней панели «Зашифровать».
Поздравляю, вы умеете шифровать сообщения.
Дешифровка происходит аналогично, разве что вместо «Зашифровать» вы пользуетесь кнопкой «Расшифровать».
А теперь момент, который пол часа выносил мне мозг: как передать ключ другу?
Да, мы настроили систему шифрования, и она работает, да, мы можем передать другу открытый ключ и не бояться, что сообщение будет прочитано. Но где его взять?
Как оказалось, все достаточно просто. В окне, в котором мы создавали ключи для шифрования, мы помечаем галочкой нужный ключ и в верхней панели выбираем «Экспорт в файл». Мы получили открытый ключ и можем передавать кому угодно, чтобы получать от него зашифрованные сообщения, которые можем прочитать только мы.
Так, а теперь я хочу получить закрытый ключ (а вдруг буду работать с другого компьютера? Ведь ключи хранятся локально).
Чтобы решить эту задачу, мы вновь возвращаемся на главный экран, в правой боковой панели нажимаем правой кнопкой мыши на нужный ключ и выбираем «Показать свойства ключа». А в открывшемся окне выбираем «Экспортировать Секретный ключ».
Готово, теперь у вас «на руках» открытый и закрытый ключи шифрования, которыми вы можете распоряжаться по своему усмотрению.
Ну и в завершении статьи хочу поделиться полезной методикой: моделирование угроз и оценка рисков.
Первое, что нужно понять — нельзя обеспечить 100% безопасность, как и свести все риски к нулю. Нельзя получить 100% анонимность. Нельзя получить 100% безопасность (разве что не использовать телефон и ПК).
Используя интернет мы так или иначе принимаем риски. Он дает нам шанс расширить свои возможности, но при этом есть риск потери наших данных. Поэтому безопасность — это балансирование между удобством, расширением знаний, комфортом и сохранением уже определенных, важных для нас данных.
Мы должны использовать риск—ориентированный подход.
Риск = уязвимость * угрозы * последствия
Например, кража ноутбука. Что мы можем сделать? Зашифровать весь диск, добавить дополнительные этапы авторизации.
Для обеспечения качественной защиты нужно пройти несколько этапов: