запуск программирования смарт-карт - PullRequest
20 голосов
/ 23 апреля 2010

Как начать программирование со смарт-карт?Я спрашиваю здесь обо всем наборе инструментов, в котором он нуждается, чтобы начать: книги, учебные пособия, оборудование и т. Д.

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

Редактировать: Меня больше всего интересуют программисты, которые хорошо работают с Unix-подобными операционными системами.Кроме того, я не уверен, как это работает ... но я хотел бы запрограммировать их на C / C ++

Ответы [ 4 ]

21 голосов
/ 23 апреля 2010

Всякий раз, когда мне нужно было получить доступ к смарт-картам для использования в приложениях безопасности, это было либо через:

  • Microsoft CryptoAPI
  • a PKCS # 11 библиотека для карты.

Для доступа к карте с помощью Microsoft CryptoAPI требуются специальные поставщики криптографических услуг (CSP) для карты. CSP находится под слоем CryptoAPI.

Однако, если вы разрабатываете для Unix / Linux с использованием C / C ++, вам, возможно, захочется взглянуть на стандарт PKCS # 11 от RSA. Стандарт определяет API C, называемый Cryptoki (Cryptographic Token Interface), который дает общую абстракцию над всеми типами криптографических устройств. Почти все производители смарт-карт предоставляют для своих карт библиотеку PKCS # 11, которую можно программировать с помощью API Cryptoki.

Если вы хотите получить доступ к смарт-карте / считывателю на более низком уровне, вы можете использовать такие API, как PC / SC или CT-API.

  • Стандарт PC / SC по умолчанию для доступа к смарт-картам, реализованный в Windows, Linux и Mac OS X

  • CT-API обеспечивает только очень минимальную функциональность; не очень подходит для современных приложений.

Если вы заинтересованы в написании Java-апплетов, которые работают на смарт-картах, то вы, вероятно, захотите посмотреть http://java.sun.com/javacard/

Ресурсы, которые могут быть полезны

  • OpenSC - это набор библиотек и инструментов для смарт-карт. Он предназначен для работы с картами поддержки PKCS # 11. OpenCT предоставляет драйверы для кард-ридеров и токены, которые состоят как из карты, так и из ридера (т. Е. USB-токены и другие «полные» устройства).

  • http://www.linuxnet.com/ MUSCLE - движение за использование смарт-карт в среде linux

  • PKCS # 15 - Стандарт формата информации о криптографических токенах

  • Справочник по смарт-картам

  • A презентация по PKCS # 11 , представленная на конференции RSA в 2009 году.

  • PyKCS11 Оболочка Python вокруг PKCS # 11. Эти типы оболочек могут обеспечить более простой интерфейс более высокого уровня, чем работа непосредственно на уровне Cryptoki.

  • Альянс смарт-карт

3 голосов
/ 23 апреля 2010

Java начинает завоевывать огромные позиции на рынке смарт-карт, на что подталкивают очень крупные игроки (например, IBM).

Есть целые страны, в которых люди несут карты Java в кармане.Например, более 10 миллионов граждан Бельгии, чье национальное удостоверение личности (обязательно иметь с собой) - это Java-карта с «апплетом» BELPIC.

Если я не ошибаюсь, весьБразильская система здравоохранения также основана на Java Card (s).

Что касается SmartCard и Linux, вот руководство Linux SmartCard (обратите внимание, что это руководство полно ключевого слова "Java" везде):

http://www.faqs.org/docs/Linux-HOWTO/Smart-Card-HOWTO.html

Тогда есть .pdf с именем "Исследование смарт-карт" от июня 2008 года, в котором рассматривается большой беспорядок, который представляет собой мир "SmartCard" и который в основном начинается собъяснение того, что «SmartCard» является примерно таким же описательным, как и выражение «компьютер»: то есть не очень описательным;)

0 голосов
/ 01 сентября 2012

Уже очень поздно давать ответ, но я бы хотел добавить одно дополнение к ответу @ bignum.

Ну, вы можете начать играть с Java-разработкой смарт-карт, и я хотел бы порекомендовать одну хорошую книгу для понимания ноу-хау для начинающих и разработчиков. « Технология Java Card для смарт-карт ».

Если позволяет ваш карманный бюджет, то вы можете купить « Mobile Security Card » для исследования и разработки апплетов смарт-карт, используя знания, полученные из упомянутой выше книги.

И вы также можете ссылаться или использовать проект API смарт-карт ИСКАТЬ ANDROID размещенный на googlecode для непосредственного ознакомления.

0 голосов
/ 23 апреля 2010

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

Это также помогает понять криптографию (особенно криптографию с открытым ключом) и некоторая практика упаковки данных в действительно крошечные структуры.

Смарт-карты варьируются от невероятно глупых (безопасное хранилище памяти объемом 1 КБ) до довольно сложных (я видел рекламируемых, которые используют сокращение).NET Framework).

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

...