#java #ios #spring #security #model-view-controller
#java #iOS #spring #Безопасность #модель-представление-контроллер
Вопрос:
Я хочу, чтобы наши сотрудники, у которых есть iPhone, могли заставить представителей общественности подписать документ цифровой подписью, который начинается как веб-форма на основе Spring.
Эта форма присутствует только в нашей внутренней сети и заполняется только нашими сотрудниками.
В моем исследовании до сих пор рассматривался ряд возможных решений:
- Электронная подпись мокрыми чернилами на экране телефона;
- Использование сканера отпечатков пальцев на телефоне для захвата определенного пальца пользователя и сохранения его в цифровом виде;
- Система PKI;
Цель состоит в том, чтобы доказать, что конкретный человек подписал документ.
1 технически возможно, но не имеет большого значения, поскольку его можно легко скопировать.
Возможно ли захватить отпечаток пальца через браузер и javascript на устройстве iOS?
Можно ли создать 3 для такого сценария?
Комментарии:
1. Вариант 2 невозможен. Только чип Secure Enclave на устройстве имеет доступ к необработанным данным отпечатков пальцев. Я не уверен, как будет работать вариант 3; вам потребуется, чтобы у каждого участника public была своя пара ключей, и вам понадобится какой-то способ заставить их использовать ее. Вариант 1, вероятно, является единственным практическим решением
Ответ №1:
Если вы пытаетесь гарантировать неотказуемость формы подписавшим ее участником, я бы рекомендовал использовать 3.
Процесс может проходить следующим образом:
- Для пользователя генерируется пара ключей
(K , K-)
(общедоступный, закрытый) - Документ подписан против
K-(information_input_by_user)
- Вы храните K вместе с записями вашего пользователя в некоторой базе данных.
- Извлеките K из базы данных и используйте его, чтобы доказать, что пользователь является подлинным автором подписи
Примечание: information_input_by_user в строке 2 может быть любая личная информация, относящаяся к пользователю (его собственный ввод), используемая для его аутентификации.
Комментарии:
1. Остается ли K-информация конфиденциальной, иначе ничто не мешает любому, кто имеет доступ администратора к БД, подписывать там собственные записи?
2. Я бы сказал, что нам больше не нужно K-, поскольку участник public подписывает форму только один раз. Цель состоит в том, чтобы извлечь личную информацию, введенную подписывающим лицом, из подписи с помощью K . Предполагается, что доступ к интрасети имеют только сотрудники, поэтому я полагаю, что записи безопасны