LINUX.ORG.RU

Поддержка токенов PKCS#11 с ГОСТ-криптографией в Python

 , , , ,


2

1

Многих интересует работа с токенами PKCS#11 с поддержкой российской криптографии в скриптовом языке Python.

В окружении Python имеется замечательный пакет PyKCS11, однако в нём отсутствует поддержка электронной подписи по ГОСТ Р 34.10-2012. Автор пакета PyKCS11, к сожалению, не планирует добавлять эту поддержку пакет. Как альтернатива PyKCS11, можно рассматривать пакет pyp11. В нём реализована поддержка следующих криптографических функций:

  • генерация ключевых пар по ГОСТ Р 34.10-2012 (512 и 1024 бита для открытого ключа), и даже по ГОСТ Р 34.10-2001;

  • подсчет хэша по ГОСТ Р 34.10-2012 (256 и 512 бит), а также по ГОСТ Р 34.11-94 и SHA1;

  • подписание и проверка подписи.

Из общих функций реализованы:

  • управление токенами (инициализация токена, установка и смена PIN-кодов);
  • получения списка слотов и информации о них;
  • импорт сертификатов и ключей (только для ГОСТ-криптографии): установка меток для объектов (сертификаты, ключи); и другие.

>>> Подробности



Проверено: Shaman007 ()

Интересно…

anonymous ()

добавлять эту поддержку пакет

Проверено: Shaman007

Turbid ★★★★★ ()

Автор пакета PyKCS11, к сожалению, не планирует добавлять эту поддержку пакет.

В чем проблема или опять «я/мы не будем добавлять код от русских»?

anonymous ()

зачем это нужно?

Многих интересует работа с токенами PKCS#11 с поддержкой российской криптографии в скриптовом языке Python.

Кто эти люди?

bhfq ★★★★★ ()
Ответ на: зачем это нужно? от bhfq

Re: зачем это нужно?

Очевидно те, кто пользуется токенами PKCS#11 с поддержкой российской криптографии. Ну тебе это же не понять.

anonymous ()
Ответ на: комментарий от anonymous

Если бы мне написали на таком английском, я бы тоже был…. обескуражен.

Плюс там ссылка на гитхаб, ты читал?

anonymous ()
Ответ на: Re: зачем это нужно? от anonymous

Re: зачем это нужно?

Очевидно те, кто пользуется токенами PKCS#11 с поддержкой российской криптографии…

Мне вот кажется, что заход «Многих интересует…» - это риторический приём, повышающий значимость автора в своих глазах. Для того, чтобы интересоваться такой темой, нужно сочетание нескольких условий:

  1. есть потребность в ГОСТ-овской криптографии.
  2. есть потребность в интеграции ГОСТ-овской криптографии в своё ПО.
  3. своё ПО должно быть на python-е. Т.е. есть уверенность, что python нужен. Далеко не все посетители ЛОРа согласны с этим.
  4. есть уверенность, что уровень PKCS#11 необходим и достаточен.

Могу предположить, что на 146 миллионов человек 10 наберётся. Если привести себя в качестве примера, то я прохожу по первым трём пунктам и не прохожу по четвёртому.

API PKCS#11 по своему прекрасен, и обвязка на ctypes пишется на «одном дыхании». Но это механизм достаточно низкого уровня, очень многое придётся делать самостоятельно. Альтернативы выглядят много практичнее…

anonymous ()
Ответ на: Re: зачем это нужно? от anonymous

1. есть потребность в ГОСТ-овской криптографии.

С 30 апреля 2020 года все бюджетные организации в России в обязательном порядке, в любой сфере связанной с обработкой персональных данных.
+ Все предприятия России оформляющие электронные больничные листы, с даты указанной выше, обязаны работать только с ГОСТ-2012.

Ну это так, вводная. А масштабный список прямого или косвенного использования ГОСТ-2012 ты легко найдёшь выбирая любую позицию госуслуг на сайте госуслуг - все [повтор для нерезидентов - все] госуслуги, где фигурируют персональные данные, уже обмазаны им.

Могу предположить, что на 146 миллионов человек 10 наберётся

Как хорошо тебе живётся в твоём мире, счастливом и беззаботном, красота :)

bass ★★★★★ ()
Ответ на: комментарий от ggrn

Сходи заодно по ссылкам на той странице, там есть больше интересного. Например, отчёт о встрече с авторами этих алгоритмов: https://cdn.virgilsecurity.com/assets/docs/meeting-report-for-the-discussion-on-kuznyechik-and-streebog.pdf

hateyoufeel ★★★★★ ()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Да нет там вопросов. Этой тягомотине уже лет восемь точно - кучка исследователей истошно вопит про бэкдоры, ненадежность и блаблабла, но ни одного математического доказательства за всё это время представлено так и не было.

araks ★★ ()
Ответ на: комментарий от araks

Про бэкдоры никто не вопит. Ты либо читал не тот текст, либо неправильно его понял.

Для непосвящённых, драма вот в чём: одним из основных компонентов блочных шифров является таблица замены (S-Box). Авторы Кузнечика и Стрибога в публикациях писали, что S-Box для этих шифров был сгенерирован случайным образом. Другие чуваки нашли в этом S-Box определённую структуру (см. по ссылке), и из этого следует, что вероятность что эта таблица была сгенерирована случайным образом крайне мала и ГОРАЗДО более вероятно, что таблица – результат какого-то алгоритма, о котором авторы Стрибога и Кузнечика не упоминают. Когда тех спросили об этом и заодно попросили предоставить код генерации таблицы, авторы ушли в несознанку и стали говорить, что это вся фигня.

Из всего этого не следует, что в этих алгоритмах есть бэкдоры. Но из этого следует, что авторы этих алгоритмов как минимум немного гонят.

hateyoufeel ★★★★★ ()
Ответ на: комментарий от hateyoufeel

Этой истории про скрытые структуры, внедренные по заданию кейджиби, уже лет пять. http://0x1.tv/Российская_криптография.Как_перестать_беспокоиться_и_начать_жить(Вартан_Хачатуров,_OSSDEVCONF-2016)

  • с шестой минуты срывают покровы.
araks ★★ ()
Ответ на: комментарий от araks

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

Про фамилии авторов, использованных как константы для генерации чего-то там (в видео не очень понятно), о которых этот чувак говорит, в публикациях о СтрибКузнечике не было ни слова. Почему? Если всё так просто, почему нельзя было просто предоставить код, показывающий генерацию S-Box из фамилий авторов?

hateyoufeel ★★★★★ ()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от araks

Зачем мне изучать все публикации по этим шифрам?

Я повторю ещё раз: проблема в том, что S-Box в этих шифрах с очень большой вероятностью был сгенерирован каким-то алгоритмом, о котором авторы не упомянули, вместо этого написав, что S-Box выбран случайным образом. Для этого не нужно читать все публикации. Для этого достаточно прочитать публикации Лео Перрина и отчёт в встрече комитета ISO/IEC, на котором присутствовали представители разработчиков этих шифров.

Если у тебя есть ссылка на статью, поясняющую алгоритм генерации S-Box и почему именно такая структура получилась, я был бы рад это прочитать. Только всё равно непонятно, почему авторы упорно заявляют, что S-Box сгенерирован случайным образом.

Отличным аргументом в пользу Стрибознечика, кстати, была бы какая-нибудь статья, показывающая, что найти такую структуру, как найденная Лео, или похожую по сложности в случайных S-Box немного более вероятно, чем ожидалось. Т.е., что случайные алгоритмы генерации S-Box для блочных шифров – не такие случайные. Но этого тоже почему-то нет.

hateyoufeel ★★★★★ ()
Последнее исправление: hateyoufeel (всего исправлений: 2)

> Автор пакета PyKCS11, к сожалению, не планирует добавлять эту поддержку пакет.

Кстати, есть уже дистры, в которых OpenSSL и прочие пакеты пересобраны без поддержки GOST-шифрования?

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

вместо этого написав, что S-Box выбран случайным образом

Они такого никогда не говорили. Напротив, они прямо говорили, что «S-box п was obtained by pseudo-random search». Прямо на заседании комитета ISO. Так что все эти «ах, они нас обманули, там не рандом» - блаблабла из разряда «сам придумал - сам опроверг». А если тебе это действительно интересно - рекомендую воспользоваться гуглом.

araks ★★ ()
Ответ на: комментарий от araks

Они такого никогда не говорили. Напротив, они прямо говорили, что «S-box п was obtained by pseudo-random search».

Это был косяк в моём пересказе, а не в аргументе Лео Перрина сотоварищи. Аргумент Перрина в том, что вероятность получить S-Box с такими свойствами в результате такого псевдо-случайного поиска – крайне мала. Я это уже в четвёртый раз, кажется, в этом треде пишу.

Так что все эти «ах, они нас обманули, там не рандом» - блаблабла из разряда «сам придумал - сам опроверг».

Почему? Ты сам выше написал про псевдо-случайный поиск.

Пока твоя позиция заключается в том, что «ваши доказательства – не доказательства». С этим не очень интересно дискутировать. Если у тебя есть какие-нибудь интересные ссылки по теме, было бы круто почитать. В противном случае, предлагаю закончить.

hateyoufeel ★★★★★ ()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Нет никаких доказательств. Есть лишь претензия вида «ах, это не случайная структура», хотя авторы это говорили с самого начала. И на том же заседании они сказали следующее: «At the same time, it is obvious that for any transformation a lot of representations are possible (see, for example, a lot of AES S-box representations)».

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

araks ★★ ()
Ответ на: комментарий от anonymous

За восемь лет шумихи вокруг «забэкдоренного вдоль и поперек» Стрибога/Кузнечика до сих пор не существует ни одной практической атаки на шифр, лол.

araks ★★ ()
Ответ на: комментарий от anonymous

Бэкдоры GOST никто не включал в состав OpenSSL и не собирается.

А это что?

static_lab ★★★★★ ()
Последнее исправление: static_lab (всего исправлений: 1)
Ответ на: комментарий от static_lab
$ sudo apt install libengine-gost-openssl1.1
$ openssl req -engine gost -x509 -newkey gost2012_256 -pkeyopt paramset:A -nodes -keyout key.pem -out cert.pem -days 365
$ openssl x509 -text -noout -in cert.pem | grep GOST
        Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)
            Public Key Algorithm: GOST R 34.10-2012 with 256 bit modulus
    Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)
static_lab ★★★★★ ()
Ответ на: комментарий от hateyoufeel

Gentoo.

* dev-libs/gost-engine
     Доступные версии:      (~)1.1.0.3_p20181031-r1(0/1.1.0.3_p20181031)^t **9999(0/9999)*l^t {test}
     Домашняя страница:     https://github.com/gost-engine/engine
     Описание:              A reference implementation of the Russian GOST crypto algorithms for OpenSSL

$ openssl req -engine gost -x509 -newkey gost2012_256 -pkeyopt paramset:A -nodes -keyout key.pem -out cert.pem -days 365
engine "gost" set.
Generating a GOST2012_256 private key
writing new private key to 'key.pem'

$ openssl x509 -text -noout -in cert.pem | grep GOST
        Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)
            Public Key Algorithm: GOST R 34.10-2012 with 256 bit modulus
    Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)

ArtSh ★★★ ()
Последнее исправление: ArtSh (всего исправлений: 2)
Ответ на: комментарий от bass

Как хорошо тебе живётся в твоём мире, счастливом и беззаботном, красота :)

Сам себе завидую, бро! :))

Моё ПО шлёт листки нетрудоспособности в ФСС, но PKCS#11 для этого не пригодился. Ну ладно, я-то ленив и временами бестолков, но вдруг кто-то осилил весь круг задач включая шифрование и расшифровку посредством PKCS#11 и готов поделиться историей успеха?

anonymous ()
Ответ на: Re: зачем это нужно? от anonymous

Re: зачем это нужно?

А вы почитайте закон об Электронной Подписи или спросите Госдуму…

anonymous ()
Ответ на: комментарий от anonymous

PKCS#11 для этого не пригодился.

А что пригодилось? КриптоПро-CSP? Или OpenSSL с ГОСТ-ами? И небось Винда…

anonymous ()
Ответ на: комментарий от Desmond_Hume

Криптография от товарища майора? Занятно …

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

torvn77 ★★★★★ ()
Ответ на: PKCS#11 для этого не пригодился. от anonymous

Re: PKCS#11 для этого не пригодился.

А что пригодилось?

КриптоПро-CSP или ViPNet-CSP. Винда, ясен пень, должна поддерживаться. Но я разрабатываю в linux, благо оба CSP предоставляют доступ по crypto API.

На объектах появляются и альты и астры, всё работает. КриптоПро можно скачать под кучу ОС и аппаратных платформ. С ViPNet-CSP похуже, похоже что они решили сдать рынок криптопрошникам.

anonymous ()
Ответ на: комментарий от hateyoufeel

Ну что ты как маленький… Товарищ тут по заветам маши захаровой работает, хайли лайкли, все дела. А ты мешаешь.

anonymous ()
Ответ на: Re: PKCS#11 для этого не пригодился. от anonymous

Re: PKCS#11 для этого не пригодился.

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

anonymous ()
Ответ на: комментарий от Desmond_Hume

Если ты так или иначе работаешь с госструктурами, то будь готов использовать криптографию «от товарища майора».

Лично Васю Пупкина, для его личного сервачка, никто не заставляет пользоваться ГОСТовскими алгоритмами.

WatchCat ★★★★★ ()
Ответ на: Re: зачем это нужно? от anonymous

есть потребность в ГОСТ-овской криптографии.

Если учесть, что госорганы РФ работают только по госту…

есть потребность в интеграции ГОСТ-овской криптографии в своё ПО.

Например, работа с госуслугами и вообще с любыми системами с ЭЦП в РФ.

своё ПО должно быть на python-е. Т.е. есть уверенность, что python нужен. Далеко не все посетители ЛОРа согласны с этим.

Если опускаться на уровень «нужен ли питон?», то вообще ничего не нужно. Можно закрывать ЛОР ибо линукс нужен заметно меньшему числу людей, нежели питон…

есть уверенность, что уровень PKCS#11 необходим и достаточен.

Достаточно того, что необходим. Иначе все можно свести к играм в линуксе. Нет дока2 под линукс, значит не достаточно и не нужно…

AVL2 ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Кстати, есть уже дистры, в которых OpenSSL и прочие пакеты пересобраны без поддержки GOST-шифрования?

Насколько я помню, стандарт fips прямо запрещает сборку с гостами. Так что все американские дистры.

AVL2 ★★★★★ ()
Ответ на: комментарий от anonymous

Это ты, и автор статьи на Хабре идиоты - прочитай переписку в https://github.com/LudovicRousseau/PyKCS11/issues/28 , придурок.

Ментейнер же сказал - «What I can propose you is to create a PyKCS11_GOST.py file with the constant names and functions you want in order to extend PyKCS11 with GOST support.»

Нет бы кто пошевелил жопой и сделал этот файл, а потом можно было бы обсудить, не засунуть ли его в пакет типа в папку «contrib» без официальной поддержки.

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

anonymous ()
Ответ на: комментарий от anonymous

Нет бы кто пошевелил жопой и сделал этот файл

Вы плохо читали статью. Перечитайте заключение. Как вы пишите безобразно, автор пошевелил «жопой» и отправил все файлы в том числе и с ГОСТ-оыми расширениями ментейнеру, то он ответил, пока нет международного стандарта ничего и никуда включать не будем.

Поэтому не надо обижать российских программистов! Прочитайте статью до конца!!!!

anonymous ()

Тред не читал, но могу сообщить квинтэссенцию комментов этого треда:

ГОСТовое шифрование ненужно, потому что это товарищ майор следит за тем, какое онемэ качает анонимус.

Любое другое шифрование нужно, потому что оно не ГОСТовое и поэтому используется исключительно во благо, ЭТОДРУГОЕ.

Alve ★★★★★ ()
Ответ на: комментарий от Alve

Тред не читал, но могу сообщить квинтэссенцию комментов этого треда:

ГОСТовое шифрование ненужно, потому что это товарищ майор следит за тем, какое онемэ качает анонимус.

Любое другое шифрование нужно, потому что оно не ГОСТовое и поэтому используется исключительно во благо, ЭТОДРУГОЕ.

Да ты шаман, однако…

WatchCat ★★★★★ ()
Ответ на: комментарий от Desmond_Hume

Что же тебя смущает, если это стандарт, который требуется во множестве ведомств вокруг всяких госуслуг и бух отчетностей? Добавили чтобы было удобно пользовать где надо и кому надо

На связи был ваш капитан о.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от Alve

Криптография - это такая штука: если есть малейшие подозрения или недосказанности, то использовать такой алгоритм нельзя, так что в текущей итерации, ГОСТ идет на свалку.

X-Pilot ★★★★★ ()
Ответ на: комментарий от X-Pilot

есть малейшие подозрения или недосказанности

А кто и на основании чего высказывает подозрения? Такие подозрительные?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.