Onion Gun Forum

Общение => Безопасность в Сети => Тема начата: Pendalf от августа 23, 2021, 15:00 Пн.

Название: Алекс - Юстасу. Шифровка из штаба.
Отправлено: Pendalf от августа 23, 2021, 15:00 Пн.
Все мы помним военные фильмы советской эпохи, сколько эмоций вызывали "шифровки".
Но и сейчас, война не окончилась, а разгорается - информационная война. Если раньше эфир надо было слушать, записывать на магнитную ленту, слушать. То сейчас пишется все автоматически.
Хоть шифрование и внедрено во все средства связи, безопасной связь не стала.

Есть 2 основных типа шифрования, симметричное и асемметричное.
При симметричном шифровании используется один пароль. Простой пример Wi-Fi, при подключении к сети в вводите ключ сети и получаете доступ. Ключ можно подсмотреть, перехватить, взломать методом перебора (что сложно при большой длине ключа, иммено по этому пароли делают от 8 символов, взлом перебором пароля займет несколько лет).
По этому был придуман ассиметричный способ шифрования. Он сам по себе не единственный, АйТишники знают, но заморачиваться с теорией я не буду.

Рассмотрим PGP или GPG что в принципе можно упрощенно считать одним и тем же.

ЦитироватьGNU Privacy Guard  (https://ru.wikipedia.org/wiki/GnuPG)(GnuPG, GPG) — свободная программа для шифрования информации и создания электронных цифровых подписей. Разработана как альтернатива PGP и выпущена под свободной лицензией GNU General Public License.

Цитировать
PGP (англ. Pretty Good Privacy) (https://ru.wikipedia.org/wiki/PGP) — компьютерная программа, также библиотека функций, позволяющая выполнять операции шифрования и цифровой подписи сообщений, файлов и другой информации, представленной в электронном виде, в том числе прозрачное шифрование данных на запоминающих устройствах, например, на жёстком диске.

В основном мы пользуемся GPG или OpenPGP, создаваемые ими ключи и шифровки совместимы.

И так, для чего же нужна эта программа?
Программа создает очень сложный секретный ключ по сложному алгоритму, на основе этого ключа созаются закрытый и открытый ключи. На закрытый ключ можно еще и пароль поставить, и E-Mail с именем прописать. Закрытый ключ мы держим в тайне, как и пароль к нему.
Открытый ключ мы раздаем, есть даже серверы ключей публичные и бесплатные, куда можно загрузить свой открытый ключ, что бы можно было по Нику, ФИО или E-Mail (смотря для чего ключ предназначен), найти в публичной базе нужный ключ. Проще оставить ссылку на такую базу, чем весь ключ публиковать, да и многие программы умеют как публиковать открытые ключи, так и находить нужные открытые ключи в таких базах.

И для  чего нам эти ключи? Что с ними делать?

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

2) Шифрование текстов. Простой пример, два друга договариваются о в одноклассниках сделать сюрприз своим женам к 8 марта, но аккаунты у них семейные, и каждая из жен может прочитать вашу переписку. Допустим Саша и Сережа генерируют ключи, кладут ключи на флешки и кидают друг-другу шифровки в общем чате. Жены читают и не поимают что за портянки бессмысленных символов они понаприсылали.
Пример конечно так себе, но если представить что за вами следит ФСБ вместо жен, а вместо одноклассников стоят системы СОРМ у провайдеров и логируют вашу переписку, то даже если вы обсуждаете котят и хомячков, это не их собачье дело, знать о чем вы беседуете.

3) Шифрование файлов. Самый простой способ, который наверное знают все, с шифрованием файлов - это архив с паролем. Но это как-раз симметричное шифрование. Узнал пароль - открыл. GPG позволяет зашифровать файл целиком, без сжатия. Но все же основное - это шифрование текстов.

Как этим пользоваться.

Для гиков Линуксойдов, и других любителей консоли - не эта статья, они и так разберутся, попробую объяснить для не искушенных пользователей.

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


-----BEGIN PGP MESSAGE-----

hQEMA+gqVOHvRq8UAQf+N5GGQXFdb6uWmceKsDPrrg4Aqdm8E7mBmLBUsD9auh3z
+8XZVXtdkrwz+L1Elw8mE/BB8W7eqqsTQwx0mtWz8u9Aay4/Z2ZCAgz/rqh25Rx9
xswyEFyPXMnhij1u3u3hwG9JVCUwrAVZmr64nhYksHYBnrpwcsNd0aygwCCd3zHW
k0o6j0pLNML5oNyzcABltV+V9znaERxUcGG2LTdYYRRbX/6hPx4HoT8l13w5andU
P9SS0t9ZdUArmyZ6csBrNY1uA4GQd6/YLCiKjq5crlDuv57MullPzcEpB0vzEBSA
18Zj3ick/EnovOIT8C8D6ncNyHFoTS0j8JOzmW75W4UCDAP90SgwZ8tGWQEQAId9
eP7KwberkUClebueiuiPS6MOWffJmzIGFq7T+RF8Qi7F6olbJzVU1KrEbTLcQRp6
sKG5T9Z5f4V+l/aRCnoIYxwS801l2qFbBLLH4AlhK86lEQnt1SY/1y2trWrSJTF1
bmvdlL7UAAjzuUoN09HgOM62qMvu60D0STsvE1C+U33lcVLhDsGW0jcMp/UcUAop
OpJyecADTrjbPNSSh34EOrTswyuKD2VcTO4W5OSe1Nd+9S7/sSkjDwDYXN6asM77
n5KVfDjz2Mj0ih7PN2jhsHFaAhjYwaZH2jmOnsTo2Wx2RYFLbzegeh5KePrBopJc
JHESrp4/op81eg/6x7lt5Ei0scurtJyKHFEpaXQYL8sMGf0XWPcYyRMwQHMd4kWt
AKZw3Rbo7hqt7+gZt5tlO1q9mNy1tEulT8H9c0Q84oyHQSL4yiuuOVtGGpoOGck9
IGWxkKYuAWotrcyzzOkHogJOO39bX6MlNsYcXu/h1KCGJVapBSSaT4Elh+YmzLs/
/+0eB77fUvfaEXfk5w/HYmxwgtb41SUCkKbUEotPtYwJk7iOEQoLEMTpbTeXfnxR
tiivGOIxVvhuEdp02cn0urWxfQF9q8KC1+DFVSO592auq0nOhUlLTmY4ywhnb0DJ
DLviIfsBZjH/3oooHBPFCNUWXwOu5JAiqdA6Gpb60k0BhXaYeLgU8t53264CDL5f
Ro7SDGbKHyAWDhBj6xwOiSqtjSpZhgi94KKRH76BH1740CGlJgCoDWHhUiAuskVS
5TW3Ksck3cLqiYv9FA==
=0mXx
-----END PGP MESSAGE-----


 [ This attachment cannot be displayed inline in 'Print Page' view ]  
Отправляет его по почте или в чате, или на форуме Валере.
Валера копирует в свою программу, и жмет кнопку расшифровать. Если был установлен пароль на закрытом ключе - то вводит пароль и читает текст.
 [ This attachment cannot be displayed inline in 'Print Page' view ]  

Если это письмо не для Валеры, или сережа косячнул и не тем ключом шифровал, Валерик увидит это

 [ This attachment cannot be displayed inline in 'Print Page' view ]  

Сама программа работает как под Windows так и под Linux. Скачать можно здесь (https://www.gpg4usb.org/download.html)

Название: От: Алекс - Юстасу. Шифровка из штаба.
Отправлено: Energizer от сентября 24, 2022, 01:00 Сб.
А как работает функция в PGP-менеджерах "зашифровать паролем"?
Какой там алгоритм, такой же ли он стойкий к взлому если попадёт к СС? Где тогда хранится одноразовый ключ если он есть?
Название: От: Алекс - Юстасу. Шифровка из штаба.
Отправлено: Pendalf от сентября 24, 2022, 08:00 Сб.
О каких месенджерах речь идет?
Название: От: Алекс - Юстасу. Шифровка из штаба.
Отправлено: Energizer от сентября 24, 2022, 09:00 Сб.
Не в мессенджере, а в самой программе шифрования Password and Keys, Kleopatra или OpenKeyChain. У них у всех такая галочка есть.
Получается тоже зашифрованный файл или текст с шапкой "-----BEGIN PGP MESSAGE-----", но подозрительно короткий.

И какой программой лучше пользоваться на iOS,macOS ?
Название: От: Алекс - Юстасу. Шифровка из штаба.
Отправлено: Pendalf от сентября 24, 2022, 14:00 Сб.
Я не совсем понял о чем ты. Вероятно ты имеешь ввиду пароль для PGP ключа. Он может быть, а может и не быть. И галочкой ты включаешь команду на установку пароля для ключа.
Все программы в общем то менеджеры для утилит PGP/GPG
И непосредственно с ключом можно работать из командной строки.
Например в GPG4USB при генерации пароля запрашивается пароль в обязательном порядке.
На счет яблок не скажу, но в них должна работать консольная gpg.

Давай приведу пример генерации ключевой пары из командной строки

gpg --full-generate-key
запускаем генерацию
оставляем по дефолту 1


Выбираем длину ключа 4096 и срок действия


Просит ввести пароль для ключа.

 
Если не вводить пароль, и нажать Ок.
Получим предупреждение

 
Генерация завершена


Пароль можно изменить (добавить или удалить, сменить)

gpg --edit-key 2732858859A7FDB1


запросим справку по командам
 

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

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

gpg --delete-secret-keys 2732858859A7FDB1
gpg --delete-keys 2732858859A7FDB1


Подтвердим удаление

 

Название: От: Алекс - Юстасу. Шифровка из штаба.
Отправлено: Energizer от сентября 24, 2022, 14:00 Сб.
Не, про защиту секретного ключа паролем в курсе. Это другое.
Именно "зашифровать для всех у кого есть пароль".
Проверил, такая функция есть и на Android OpenKeyChain.
Шифровать можно и файлы и текст из буфера.
В консольном варианте не видел аналога.



Название: От: Алекс - Юстасу. Шифровка из штаба.
Отправлено: Pendalf от сентября 25, 2022, 10:00 Вс.
Надо посмотреть документацию, думаю это обычное симметричное шифрование. Чуть позже поковыряю.

Вот пример в OpenKeyChain зашифровано
пароль 123456

-----BEGIN PGP MESSAGE-----

jA0ECQMCchgd7lotEgxg0jkBbCFWjoZrEX4U2dX3N/9Pq94ChBioCxd6pwmoCSF+
hPaC7n04J5osRPu6mnIiokOzaOhvM/CxGT4=
=Rm7T
-----END PGP MESSAGE----- 
И в GPG4USB расшифровывается.

Но при попытке шифровать так
gpg --symmetric --batch --yes --passphrase 123456 <input file>
получаю бинарник, а не PGP сообщение.
Нужно покурить еще опции PGP
Название: От: Алекс - Юстасу. Шифровка из штаба.
Отправлено: Energizer от сентября 25, 2022, 12:00 Вс.
Цитата: Pendalf от сентября 25, 2022, 10:00   Вс.Вот пример в OpenKeyChain зашифровано
пароль 123456

-----BEGIN PGP MESSAGE-----

jA0ECQMCchgd7lotEgxg0jkBbCFWjoZrEX4U2dX3N/9Pq94ChBioCxd6pwmoCSF+
hPaC7n04J5osRPu6mnIiokOzaOhvM/CxGT4=
=Rm7T
-----END PGP MESSAGE----- 
Ну да, расшифровалось только с этим паролем, вводить пароль на какой-либо из ключей не пришлось. Пометка что это AES256
Название: От: Алекс - Юстасу. Шифровка из штаба.
Отправлено: Pendalf от сентября 25, 2022, 16:00 Вс.
Нашел опции.
Последовательность напишу.

echo "hello" > hello.txt
gpg --symmetric --batch --yes --passphrase 12345678 --armor hello.txt
cat hello.txt.asc
-----BEGIN PGP MESSAGE-----

jA0ECQMCLw1xUfDVnzj/0kEBVWPo6UjKlAFWR0tfq/QljHAEVkTKaVkRmATu8x7Y
52T1Wt28kfNZguPiJw4BNrBl82eaL55oRppG+L0J4o6tUQ==
=/pnD
-----END PGP MESSAGE-----
Файлы в приложении к посту.
TinyPortal 2.2.2 © 2005-2022