Цифровая подпись веб-документа

#java #ios #spring #security #model-view-controller

#java #iOS #spring #Безопасность #модель-представление-контроллер

Вопрос:

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

Эта форма присутствует только в нашей внутренней сети и заполняется только нашими сотрудниками.

В моем исследовании до сих пор рассматривался ряд возможных решений:

  1. Электронная подпись мокрыми чернилами на экране телефона;
  2. Использование сканера отпечатков пальцев на телефоне для захвата определенного пальца пользователя и сохранения его в цифровом виде;
  3. Система PKI;

Цель состоит в том, чтобы доказать, что конкретный человек подписал документ.

1 технически возможно, но не имеет большого значения, поскольку его можно легко скопировать.

Возможно ли захватить отпечаток пальца через браузер и javascript на устройстве iOS?

Можно ли создать 3 для такого сценария?

Комментарии:

1. Вариант 2 невозможен. Только чип Secure Enclave на устройстве имеет доступ к необработанным данным отпечатков пальцев. Я не уверен, как будет работать вариант 3; вам потребуется, чтобы у каждого участника public была своя пара ключей, и вам понадобится какой-то способ заставить их использовать ее. Вариант 1, вероятно, является единственным практическим решением

Ответ №1:

Если вы пытаетесь гарантировать неотказуемость формы подписавшим ее участником, я бы рекомендовал использовать 3.

Процесс может проходить следующим образом:

  1. Для пользователя генерируется пара ключей (K , K-) (общедоступный, закрытый)
  2. Документ подписан против K-(information_input_by_user)
  3. Вы храните K вместе с записями вашего пользователя в некоторой базе данных.
  4. Извлеките K из базы данных и используйте его, чтобы доказать, что пользователь является подлинным автором подписи

Примечание: information_input_by_user в строке 2 может быть любая личная информация, относящаяся к пользователю (его собственный ввод), используемая для его аутентификации.

Комментарии:

1. Остается ли K-информация конфиденциальной, иначе ничто не мешает любому, кто имеет доступ администратора к БД, подписывать там собственные записи?

2. Я бы сказал, что нам больше не нужно K-, поскольку участник public подписывает форму только один раз. Цель состоит в том, чтобы извлечь личную информацию, введенную подписывающим лицом, из подписи с помощью K . Предполагается, что доступ к интрасети имеют только сотрудники, поэтому я полагаю, что записи безопасны