Перевірка цифрового підпису XML

Процедура перевірки проста і логічно може бути виведена з методики формування цифрового підпису XML, розглянутого вище. Вона розпадається на три етапи.

По-перше, необхідно канонізувати елемент SignedInfo. Нагадаємо, що елемент CanonicalizationMethod встановлює алгоритм канонізації. Тому слід скористатися цією канонічною формою елементу SignedInfo для частини процесу перевірки, що залишилася.

По-друге, необхідно проконтролювати цілісність повідомлення, перевіривши дайджест, який знаходиться в елементі Reference, сформованому раніше, на кроці 2. При перевірці дайджеста потрібно мати в своєму розпорядженні інформацію, яка включає:

1. Дані, по яких побудований дайджест. Слід розіменувати атрибут Reference елементу, щоб отримати ці дані;

2. Будь-які трансформації, які можуть застосовуватися до цих даних до запуску алгоритму профілю. У елементі Transforms міститься ця інформація. Перш ніж отримувати дайджест даних, необхідно застосувати до них ті ж трансформації;

3. Алгоритм дайджеста. Ця інформація знаходиться в значенні атрибуту Algorithm елементу DigestMethod. Необхідно застосувати цей дайджест повідомлення і перевірити, чи не відрізняється значення дайджеста від тієї, що міститься в елементі DigestValue.

Якщо перевірка дайджеста приводить до негативного результату, то процес перевірки закінчується і вважається незадовільним.

Якщо з'ясовується, що з величиною профілю все гаразд, наступає черга третього етапу - перевірки підпису. Для перевірки підпису необхідний ключ сторони, що підписала (відкритий або загальний секретний). Інформацію про ключ можна отримати з елементу KeyInfo, якщо він присутній (або якщо застосуванню вже відома така інформація). Як тільки ключ, використовуваний при перевірці підпису, відомий, потрібно прочитати метод підпису, який застосовувався при створенні цього підпису. Атрибут Algorithm елементу SignatureMethod містить цю інформацію. Після чого слід скористатися канонічною формою елементу SignedInfo і ключем, щоб підтвердити величину підпису.

При реалізації специфікації “Цифровий підпис XML” можна створювати заголовки SOAP для генерації підписаних SOAP-повідомлень. Брандмауер XML, що знаходиться на стороні одержувача, обробляє цей заголовок SOAP, щоб перевірити підписи, перш ніж переслати запит на SOAP-сервер. Завдання забезпечення безпеки може бути досягнуті таким чином:

· Можна перевірити, що отримане SOAP-повідомлення було дійсно відправлене відомим відправником;

· Можна перевірити, що отримані дані не були змінені, поки вони передавалися, і що вони не відрізняються від тих, що відправник збирався відправити.

Таким чином, стосуючись даного прикладу, можна бути упевненим, що запит про резервування за спеціальною ціною із знижкою був відправлений дійсно партнером, і що ці дані не були змінені, поки вони передавалися. Проте, можливо ситуація, коли дані, передавані по Інтернет, можуть бути проглянуті хакерами. Розглянемо, як ця проблема може бути вирішена за допомогою специфікації “Шифрування XML”.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: