Как сделать PDF документ уникальным?

Я разрабатываю веб-приложение, которое генерирует вопросы пробной версии. Поэтому безопасность очень важна в проекте. Когда отрисовка вопроса для пробной версии завершена, приложение создает документ в формате PDF. И я пишу зашифрованную строку в нижнем колонтитуле документа:

public function Footer()
{

if ($this->logo != null) {

$this->Image($this->logo, 20, 278, 10, 10, 'PNG', '', 'C', false, 200, '', false, false, 0, false, false, false);

}$this->SetY(-20);$this->SetFont('helvetica', 'I', 8);$this->Cell(0, 20, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');

$this->Cell(0, 20, date("d/m/Y"), 0, 0, 'R', 0, '', 0, false, 'T', 'M');

if ( $this->text_crypter != null ) { // this is the encrypted string$this->SetY(-7);

$this->SetFont('helvetica', '', 6);
$this->MultiCell(0, 7, $this->text_crypter, false, 'L', false, 0, '', '', true);

}

}

Как видите, зашифрованная строка написана в нижнем колонтитуле каждой страницы.

введите описание изображения здесь

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

Так, каковы средства, чтобы сделать документ в формате pdf, чтобы доказать, что он исходит из моего приложения?

1

Решение

(собрана из комментариев к вопросу …)

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

Альваро Гонсалес указал на Пример 052: сертификация цифровой подписи В качестве примера того, как применять цифровую подпись с использованием TCPDF.

Райан Винсент объяснил, что подпись содержит хэш документа PDF, а также другие детали. Когда это проверено — проверяется и хеш документов. Невозможно перенести подпись в другой документ. Проверка наверняка не удастся.

Вы можете проверить встроенную подпись PDF в Adobe Reader. Убедитесь, что ваш сертификат действительно является сертификатом подписавшего в диалоговом окне проверки подписи.

Райан Винсент указал на цифровой подписи а также Криптография Цифровые подписи учебник для получения информации о том, как цифровые подписи работают в целом.

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]