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






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


Российский стандарт ЭЦП «слегка» отличается от западных стандартов 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

Источник

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Don`t copy text!
Прокрутить вверх