Самозаверяющие сертификаты в Java - Подписание XML-файлов - PullRequest
1 голос
/ 01 марта 2012

У меня есть Java-приложение, которое собирает данные, записывает их в XML-файл и отправляет этот XML-файл по почте. Это приложение работает на разных компьютерах (не в моей области). Затем есть другое приложение, которое берет полученный XML-файл и вставляет данные в базу данных (это приложение работает на моем собственном сервере). До сих пор мне приходилось верить, что данные не были изменены и что XML-файл действительно исходит из надежного источника.

Теперь я подумал о подписании XML с помощью Java-Keystore. До сих пор работает следующее:

  • Я могу создать пару ключей, используя keytool.
  • Затем я использую созданный закрытый ключ для подписи XML-файла с помощью API цифровой подписи XML Java (http://java.sun.com/developer/technicalArticles/xml/dig_signature_api/).
  • Я также могу проверить подписанный файл.

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

1 Ответ

1 голос
/ 01 марта 2012

Вы должны стать центром сертификации (CA) для своих клиентов.Каждый клиент должен предоставить свой собственный запрос сертификата клиента, который будет подписан вами, который он затем использует для подписи каждого документа перед его отправкой.Это классическая проблема управления PKI, которая привела к появлению продуктов, которые решают эту проблему более элегантно, но вам придется заплатить за них.

...