ОМСКАЯ ГРУППА ПОЛЬЗОВАТЕЛЕЙ LINUX » Эксперименты http://omsklug.com Свобода - это ответственность. Вот почему все её так боятся. Бернард Шоу Fri, 10 Nov 2017 17:30:02 +0000 en hourly 1 http://wordpress.org/?v=3.2.1 Нам нравится Profanity! http://omsklug.com/2016/03/we-like-profanity/ http://omsklug.com/2016/03/we-like-profanity/#comments Wed, 02 Mar 2016 19:20:35 +0000 Shroom http://omsklug.com/?p=1988 .local p {text-align: justify!important; text-justify: inter-word!important;} .local a {color: rgb(16, 8, 96)!important;} .local a:visited {color: Gray!important;} .local a:hover {text-decoration: underline; color: Blue!important;} .local pre {overflow-x:auto;} .local code {font-family: Monospace,Courier!important;} .local code > span.kw { color: #268BD2; font-weight: bold; } .local code > span.dt { color: #268BD2; } .local code > span.dv { color: #D33682; } .local code > span.bn { color: #D33682; } .local code > span.fl { color: #D33682; } .local code > span.ch { color: #4070a0; } .local code > span.st { color: #2AA198; } .local code > span.co { color: #93A1A1; font-style: italic; } .local code > span.ot { color: #A57800; } .local code > span.al { color: #CB4B16; font-weight: bold; } .local code > span.fu { color: #268BD2; } .local code > span.er { color: #D30102; font-weight: bold; }
profanity project logo

Правда. :) Даже несмотря на наличие под катом ненормативной лексики. Так что, если вам нет 18 лет или если инвективная лексика является основной причиной ваших нравственных страданий, добро пожаловать в основной раздел нашего сайта. Если же вам интересны некоторые пикантные подробности наших счастлвых отношений с программкой из сабжа, тогда идёмте дальше…

По OmskLUG прокатилось поветрие сборки и/или установки консольного xmpp-клиента profanity. Может быть, это следствие его специфической суровой консольной кавайности, может быть, омсклуговцы просто устали от навороченного минимализма mcabber’а… А может быть, он на самом деле лучший из всех консольных джаббер-клиентов на сегодняшний день. И сегодня я не буду, как обычно это делал, скучно и долго рассказывать, как протанцевать по граблям сборки, установки и настройки очередного несговорчивого софта. Лучше я, как говорят в этих ваших интернетах, «просто оставлю это здесь»…

Собери Profanity!

(По щелчку на миниатюре загрузится оригинал)

“build profanity” banner in russian

И то же самое по-английски:

“build profanity” banner in english

На сегодня всё.


Спасибо за внимание!


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

]]>
http://omsklug.com/2016/03/we-like-profanity/feed/ 0
Криптография с использованием ключей SSH http://omsklug.com/2015/09/ssh-crypto-pgp-for-poors/ http://omsklug.com/2015/09/ssh-crypto-pgp-for-poors/#comments Sun, 20 Sep 2015 16:18:42 +0000 Shroom http://omsklug.com/?p=1932 .local p {text-align: justify!important; text-justify: inter-word!important;} .local a {color: rgb(16, 8, 96)!important;} .local a:visited {color: Gray!important;} .local a:hover {text-decoration: underline; color: Blue!important;} .local code {font-family: Monospace,Courier!important;}

…или «PGP для бедных»

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

История вопроса

Итак, давным-давно, кажется в прошлую пятницу… Хотя нет. На самом деле в начале мая этого года… Так вот, именно в то время Родригес задался вопросом, можно ли в рамках концепции криптографии с открытым ключом использовать для шифрования ключи ssh. Они же по умолчаню есть практически всегда, чего не скажешь, например, о PGP/GnuPG. И, как оказалось, это возможно! В общем, академический интерес Родригеса был удовлетворён почти сразу же, а вот у меня до практческой реализации идеи руки дошли только сейчас.

Впрочем, для того, чтобы что-то зашифровать и подписать, ssh будет маловато: в любом случае нужно будет поставить дополнительно хотя бы openssl. Не будем спрашивать, почему бы не поставить GnuPG, раз уж в любом случае нужно что-то ставить. Лучше предположим, что шифровать будет какой-нибудь бездомный (в смысле, без ~ и с nologin) робот в автоматическом режиме, и специально для него генерить связку pgp-ключей будет, наверное, слишком жирно. Так что пусть удовлетворяется тем, что есть.

В чём суть

Так чем же удовлетворить себя несчастному одинокому роботу, если GnuPG не стоит, а шифровать хочется? Ответ очевиден: OpenSSL! Более конкретно — модуль rsautl, который позволяет шифровать небольшие клочки данных (в зависимости от типа пэддинга максимум будет составлять 214, 245 или 256 байтов) открытым RSA-ключом. Не нужно быть семи пядей во лбу, чтобы понять, что даже максмальные 256 байтов не пойдут ни в борщ, ни в красную армию. По той простой причине, что их слишком мало. Тем более, что та же openssl enc умеет шифровать симметричными алгоритмами, коих знает туеву хучу, практически ничем не ограниченные тонны информации. Так в чём же фишка?

Фишка, собственно, в асимметричности RSA. То есть, в данном случае не нужно никому передавать по защищённому каналу секрет для расшифровки. В наличии меется открытый ключ, который используется для шифрования и может быть известен неограниченному кругу лиц, а адресат расшифрует файл своим секретным закрытым ключом. Вернее, всё не совсем так. Даже совсем не так. Во-первых, открытым ключом никто сами данные шифровать не будет. Во-вторых, шифровать симметричным алгоритмом всё равно придётся. «Нувыпонели, да?» Это я сейчас пересказываю принцип работы PGP. В общем, те, кто понял, могут переходить прямо к следующему разделу, а всем остальным я предлагаю раскрыть тайну PGP.

А тут на самом деле всё просто. Берём байт 200 какого-нибудь случайного мусора, например, из /dev/random и говорим, что это наш «одноразовый сессионный ключ». Одноразовый, потому что он действительно будет использован только один раз, в данном конкретном случае. При этом его на самом деле никто не знает. То есть, он нигде не светится. Так вот. Берём этот ключ и шифруем на нём всё, что нам нужно. После этого начинается немного магии. Мы берём открытый ключ адресата и на нём шифруем сессионный ключ. Voilá! После этого можно подшить зашифрованный сессионный ключ к зашифрованным данным и отправлять это всё по любым каналам связи: всё равно никто ничего расшфровать не сможет.

На приёмной стороне происходит нечто подобное, но в обратном направлении. Сначала берём закрытый ключ адресата и расшифровываем им сессионный ключ. А после этого естественным образом сессионным ключом расшифровываем данные. Собственно, всё… Вся магия куда-то испарилась, как обычно… Ну а дабы окончательно разогнать остатки мистического огненного тумана, ниже даны команды для осуществления подобного безобразия дома. Для определённости условимся, что данные, подлежащие закрытию, находятся в файле data, сессионный ключ — в файле skey (да, да, я знаю, что так делать нельзя и всё такое, но это просто общая схема, в настоящем скрипте «всё по-другому»), а цифровая подпись — в файле signature. Также будем считать, что открытый ключ записан в файле rsa_key.pub, а закрытый — rsa_key.priv.

# Encryption:
openssl [здесь любимый алгоритм шифрования] -pass file:skey -in data -out data.encrypted
openssl rsautl -encrypt -pubin -inkey rsa_key.pub -in skey -out skey.encrypted
# Decryption
openssl rsautl -decrypt -inkey rsa_key.priv -in skey.encrypted -out skey
openssl [здесь любимый алгоритм шифрования] -d -pass file:skey -in data.encrypted -out data

Если хочется ещё и добавить цифровую подпись, это можно сделать таким образом:

openssl [здесь любмый хзш] -sign [ЗАКРЫТЫЙ ключ ОТПРАВИТЕЛЯ] -out signature -binary data

Проверять, соответственно, так:

openssl [здесь любмый хзш] -verify [ОТКРЫТЫЙ ключ ОТПРАВИТЕЛЯ] -signature signature data

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

Собственно, скрипт

Реализация указанной идеи с помощью костылей shell и openssl повлекла за собой некоторое количество ограничений, о которых необходимо сказать сразу же. Из самого названия модуля rsautl легко можно сделать вывод, что использоваться будут только RSA-ключи. Это не самый удобный вариант, поскольку ssh-keygen умеет генерить не только RSA, но и DSA, а также ключи на основе эллиптических кривых, как, например, ECDSA и ED25519. И этот факт нужно учитывать, если всё-таки захочется шифровать файлы столь извращённым способом. В отношении подписи ограничения не столь суровы: не поддержвается только ED25519.

А собственно скрипт находится в репе на гитхабе. Ничего сверхъестественного, всё достаточно прозрачно и понятно. Если что-то всё-таки непонятно, можно запустить эту штуку с ключом --help, почитать ReadMe или, в конце концов, заглянуть в исходный код. Собственно, ради этого он и находится в свободном доступе.

Всем спасибо, все свободны!


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

]]>
http://omsklug.com/2015/09/ssh-crypto-pgp-for-poors/feed/ 0
Tame GNU/Linux! – реалити-шоу для начинающих линуксоидов http://omsklug.com/2011/09/tame-gnulinux/ http://omsklug.com/2011/09/tame-gnulinux/#comments Thu, 29 Sep 2011 05:30:40 +0000 Сторож http://omsklug.com/?p=407 Название проекта

Tame GNU/Linux! (Обуздай GNU/Linux!)

Фабула

Массовое шоу с видеозаписью того, как в закрытом зале в течение дня живут 4-5 начинающих линуксоидов (студентов первого курса ФКН ОмГУ, или людей, которые вообще GNU/Linux в глаза не видели), у которых задача: поставить GNU/Linux и настроить (поставить кодеки, программы) до какого-либо срока. Из комнаты не выходят до выполнения задачи, а если выходят – проигрывают. Сотовые телефоны, иные компьютеры – отбираются до окончания шоу. Общение с внешним миром только через установленные в зале 4-5 компьютеров (которые и надо настроить, или даже собрать).

Польза

1. Популяризация GNU/Linux
2. Возможно получим хороших неофитов.
3. Fun!

Необходимые ресурсы

0. Помещение;
1. 4-5 вандалоустройчивых компьютера (или просто комплектующие, котороые еще надо собрать в компьютер);
2. сложные для установки дистрибутивы;
3. 4-5 камер для просмотра экрана (отдельного рабочего места участника) и одна общая для всего зала;
4. 4-5 микрофонов участникам и общий микрофон в зале.
5. Ведущий.
6. Трансляция в эти наши интернеты.
7. Прием звонков, ставок.

]]>
http://omsklug.com/2011/09/tame-gnulinux/feed/ 1