Эцп на андроид

Ничего смешного и абсурдного в этом вопросе нет.

Российский стандарт ЭЦП «слегка» отличается от западных стандартов digital signature

. Стандарт описан в ГОСТ Р 34.10-2012

По идее все российские ЭЦП должны соответствовать указанному стандарту, но, как говорится — в жизни бывает всякое.

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

Теперь внимание, вы должны понять, что публичный ключ принадлежит тому кто вам его выдал. Для этого существуют сертификаты публичных ключей. Вся фишка именно в этом. Если бы дело касалось западных digital signature, то в любом легальном Android устройстве хранятся корневые сертификаты крупнейших удостоверяющих центров (типа VeriSign, Thawte и проч.), с помощью которых легко можно понять кому принадлежит полученный ЭЦП. Российские корневые (квалифицированные) сертификаты надо получать в соответствующем удостоверяющем центре, в котором получен ЭЦП. Этих центров у нас прямо скажем много… При этом большинство из них не идентифицируют друг друга. На всякий случай корневой сертификат налоговой здесь, а Сбербанковский здесь — в общем понятно надеюсь.

Ближе к программированию. Упомянутый выше ГОСТ реализован в Bouncy Castle — для тех кто в танке — это один самых известных публичных API реализующих почти все мыслимые и немыслимые криптографические алгоритмы. И что особенно приятно, Bouncy Castle реализует алгоритмы в качестве стандартного Java Cryptography Extension провайдера.

Для Андроида есть специальный порт Bouncy Castle — называется Spongy Castle

Проверка юзера должна сводиться к:

  1. Получить корневой сертификат удостоверяющего центра
  2. Получить сертификат публичного ключа юзера
  3. Сверить его на валидность с корневым сертификатом удостоверяющего центра

Все это можно сделать программно (хотя и не просто…)

Далее уж гуглите сами на тему validate+certificate+java

Источник

Поделиться:
Нет комментариев

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

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

×
Рекомендуем посмотреть