Android SSL со смарт-картой через PKCS # 11 - PullRequest
1 голос
/ 10 февраля 2012

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

У меня есть приложение для Android, веб-сервис, смарт-карта MicroSD (карта безопасности для мобильных устройств). Мне нужно знать, как я могу использовать карту с ssl для безопасной связи с веб-сервисом. Пересборка и прошивка ОС невозможна.

Что я знаю:

  • API, используемый для связи с MSC
  • Как писать / развертывать апплеты в MSC
  • Как позвонить в веб-сервис

Чего я не знаю:

  • SSL
  • Слишком много о сертификатах и ​​криптографии (только сомнительные академические материалы из университета)
  • Как все складывается и что я должен использовать для достижения этой цели

seek-for-android имеет руководство по OpenSC и библиотеку, но для этого нужно исправить ОС. Есть ли способ избежать этого и все же использовать решение?

Я знаю, что мог бы пойти гораздо дальше в этом деле с небольшим исследованием, но мой крайний срок довольно близок (несколько дней), поэтому мне нужна помощь, большая помощь и очень скоро .. Заранее спасибо!

EDIT:

Более конкретно:

У меня есть SD-карта для смарт-карт от Giesecke & Devrient, с ОС Java Card и прекрасными апплетами и средствами разработки. Я также получил службу Android для связи с картой (апплетами) с APDU. Это довольно низкий уровень, он принимает байт-коды в качестве команд и данных.

Мне нужно вызвать веб-сервис через SSL-аутентификацию. Теперь я знаю, что SSL использует (может использовать) аппаратные токены с интерфейсами PKCS # 11.

Существует проект под названием seek-for-android с руководством по исправлению ОС и стандартным интерфейсом PKCS # 11 через смарт-карту (я полагаю, это будет OpenSC). Я НЕ МОГУ патчить ОС.

Итак, снова вопросы:

  • Может ли реализация Android Android использовать (настраиваемые) интерфейсы PKCS # 11 каким-либо образом, если да, то как? (например, возможно, с некоторыми провайдерами безопасности)
  • Могу ли я использовать OpenSC (и другие вещи, упомянутые в связанном руководстве) без исправлений ОС (например, извлечь библиотеки и включить их в мое приложение)?
  • В целом, как мне связать разрыв между смарт-картой низкого уровня и SSL высокого уровня? Я прошу у вас любые материалы по этому поводу.

Ответы [ 3 ]

1 голос
/ 15 февраля 2012

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

Это зависит от определенной реализации API.Обычно такая карта microSD уже поставляется с библиотеками Android (так как это самая открытая соответствующая мобильная платформа) от производителя.Вы должны спросить там для получения дополнительной информации.

0 голосов
/ 26 июля 2012

Используйте Bouncycastle (Spongycastle - это форк для Android) и внедрите своего собственного провайдера безопасности, который использует SmartCard вместо файла для хранимых сертификатов.

0 голосов
/ 10 февраля 2012

Если вы можете получить доступ к своей карте без исправления ПЗУ, вы можете свернуть свою собственную (требует знания криптографии) реализацию SSL поверх нее.

Если нет, то AFAIK вам нужно исправить Android, чтобыдоступ к дополнительному оборудованию.А встроенная библиотека SSL не имеет никакой поддержки для клиентских «аппаратных токенов» AFAIK.

...