Intereting Posts
php numeric array выбирает значения, превышающие число, и меньше, чем другое, и сохраняет его в новом массиве Подготовить команды в интерактивном режиме CLI CakePHP преобразует целые числа MySQL в строки … messing up Функция rand () Как перенаправить Mobile & Web на разные ссылки Невозможно автоматически загрузить / загрузить базу данных базы данных в codeigniter Что такое DOM Core Level / Version, поддерживаемый PHP DOM? переменные класса Как очистить данные JSON, передаваемые через веб-сайты на целевом сайте DOMPDF не может отображать шрифт, вместо этого отображает круги PHP ternary operator vs switch statement vs if-elseif …, который я должен использовать? как получить значение в массиве из отдельного запроса получить текущий идентификатор страницы внутри страницы плагина wordpress Как изменить загруженное изменение пути по умолчанию на CKFinder с помощью php Laravel, вам нужно указать путь к файлу для хранения семени Стриптиз новых строк в PHP

Цифровые подписи с PHP

Можно ли разрешить пользователям подписывать документ?

сценарий

  1. Я загружаю документ для пользователя на своем веб-сайте для просмотра и подписи
  2. Пользователь регистрируется, просматривает документ и затем каким-то образом подписывает его. (не изображение их подписи)
  3. Я получаю документ с каким-то способом проверки, который они юридически подписали.

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

    Одним из возможных способов было бы создание криптографической пары ключей для каждого пользователя. Оба ключа (частный и общедоступный) должны храниться на вашем сервере, а закрытый ключ защищен паролем. Пароль в идеале должен быть известен только самому пользователю (попросите его при создании ключей, но НЕ сохраняйте его), и никто другой. Затем, после того, как пользователь подписал документ, введя свой секретный пароль, вы сможете проверить его «подпись» с помощью его открытого ключа.

    Сам процесс в значительной степени зависит от настройки вашего сервера (т. Е. Доступа к криптографическим инструментам, базе данных и т. П.).

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

    «какой-то способ проверки их юридически подписанных» .. имеет несколько иные последствия в зависимости от страны (ваш профиль не указывает ваше местоположение). Я могу ответить только за США в отношении юридической части .. но что касается технической части ..

    Вы можете использовать PHP для экспорта каждой страницы PDF в виде PNG, а затем представлять каждую страницу (в виде PNG-изображения) для просмотра пользователем. Затем используйте JavaScript для записи действий пользователя подписи в указанном месте. Затем пользователь отправляет свое подтверждение и подписывает его. Когда каждый пользователь «подписал», вы можете сделать документ доступным для загрузки. Когда первый пользователь хочет загрузить PDF со всеми сигнатурами, вы можете просто применить сертификат подписи, подтверждающий, что вы (ваше приложение / компания) удостоверяете подлинность документа и подписей, так же, как «нотариус» нотариально заверяет документ. Вам нужно будет предоставить способ привязки документа к журналу подписи для подписей (при регистрации действия подписи пользователя) и журнала проверки подлинности при аутентификации пользователя. Я использую iText, завернутый в службу Java SOAP, для управления PDF-файлом, а затем просто PHP вызывает службу. Я создал приложение, которое делает это таким образом, но на данный момент он все еще находится в alpha else, я бы связал его.

    dotloop имеет простой подход, аналогичный приведенному выше, минус реальная аутентификация и, по-видимому, их система успешно используется для тысяч сделок с недвижимостью (компания условного депонирования будет аутентифицировать всех участников транзакции)

    Примечание: вход в приложение или даже OAuth не так аутентичен, как европейские смарт-карты, но даже те, которые не являются безупречными. Возможно, лучшим решением для проверки подлинности было бы то, чтобы пользователь загрузил копию своего идентификатора (AirBnB делает это). Другим решением может быть интеграция простого флеш-приложения для записи подписывающего лица, сделавшего заявление, что они принимают подпись для этой транзакции и связывают ее с документом и подписью.

    Ключевыми моментами для запоминания являются: (1) Вы можете обрабатывать все в стеке веб-приложений (HTML, JavaScript, PHP; iText), чтобы пользователь никогда не загружал фактический PDF-файл. (2) Во многих случаях, пока вы можете аутентифицировать пользователя, делающего действие подписи для документа, нужно только «сертифицировать» в конечном документе, который пользователь сделал, и предоставить подтверждение этого (например, dotloop) вместо удостоверяя каждую подпись. Подтверждаю, я имею в виду, вы подписываете окончательный PDF-файл с сертификатом AATL .