Библиотеки для цифровой подписи данных измерений с помощью смарт-карт

Вопрос или проблема

Мой работодатель попросил меня написать программное обеспечение, позволяющее коллегам цифрово подписывать данные измерений (Windows 10). Я получил комплект разработчика, состоящий из считывателя карт, смарт-карт и программного обеспечения для назначения пин-кодов и сертификатов (https://www.acs.com.hk/en/products/495/evo-pki-kit-pki-software-solution/).

С помощью программного обеспечения от компании, производящей смарт-карты, я смог добавить сертификат на карту и подписать с его помощью PDF в Adobe Acrobat. Но чтобы ускорить процесс измерения и подписания, мой работодатель хотел бы обойтись без PDF/Acrobat и использовать собственное программное обеспечение для размещения цифрово подписанных данных измерений (например, в виде строки JSON, содержащей данные измерений также в виде открытого текста) непосредственно в базе данных SQL.

Самая подходящая библиотека, которую я смог найти до сих пор, это: https://github.com/LudovicRousseau/PyKCS11, но она зависит от Visual Studio 2010 SDK (https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.VisualStudio2010SP1SDK), официальная загрузка Microsoft которого больше недоступна.

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

ИЗМЕНЕНИЕ:
в деталях сертификата, который мы хотим использовать для цифровой подписи, значится среди прочего:

  • алгоритм подписи: “sha256RSA”
  • алгоритм хеширования подписи: “sha256”
  • публичный ключ: “RSA (4096 Bits)”

ИЗМЕНЕНИЕ2:
Я попробую https://github.com/LudovicRousseau/pyscard,
любые другие предложения также приветствуются.

Я думаю, что мы изобретаем колесо заново.

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

Microsoft в ближайшем будущем откажется от виртуальных смарт-карт.
Пользователям, использующим виртуальные смарт-карты, настоятельно рекомендуется перейти на
Windows Hello for Business. Microsoft опубликует дату отказа, чтобы гарантировать, что у пользователей будет достаточно времени для перехода на Windows
Hello for Business. Мы рекомендуем, чтобы новые установки Windows использовали
Windows Hello for Business.

Я предлагаю осмотреться, прежде чем начинать разработку чего-то, что уже может существовать.

Ответ или решение

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

Анализ текущей ситуации

Ваш работодатель предоставил комплект разработчика, состоящий из считывателя карт, смарт-карт и ПО для назначения PIN-кодов и сертификатов. Ваша цель — ускорить процесс подписи данных, исключив необходимость использования Adobe Acrobat и PDF, и вместо этого подписывать данные, например, в формате JSON, с последующей передачей их в SQL-базу данных.

Выбор подходящих библиотек

  1. PyKCS11: Вы упомянули библиотеку PyKCS11, которая основана на CK (Cryptoki) для Python и позволяет работать со смарт-картами. Однако, она требует Visual Studio 2010 SDK, который больше недоступен для загрузки, что делает её использование затруднительным.

  2. PySCARD: Вы собираетесь попробовать PySCARD. Это отличная альтернатива для взаимодействия с картами через Python. Она предоставляет возможность работы с PC/SC через Python, что может быть полезным для управления картами и получения доступа к их функциям.

  3. Cryptography Library: Рекомендуем также рассмотреть библиотеку Python Cryptography, которая предоставляет надежные криптографические функции, включая работу с RSA и SHA-256, что соответствует вашим требованиям.

Рекомендации и дополнительные соображения

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

  2. Переход на Windows Hello for Business: Учитывая запланированное прекращение поддержки виртуальных смарт-карт Microsoft, рекомендуется изучить возможность перехода на Windows Hello for Business, что может упростить интеграцию и управление идентификацией в вашей среде Windows.

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

  4. Тестирование: Проведите обширное тестирование разработанного решения для проверки его эффективности и безопасности перед внедрением.

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

Заключение

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

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

Капча загружается...