Читаю блог Microsoft Office 2010 Engineering, в котором 8 декабря появилось сообщение Shelley Gu Digital Signatures in Office 2010. Запись показалась интересной, а потому, позволю себе привести некоторые моменты.
Как вы помните в предыдущей версии продукта - Office 2007, Microsoft перешла на xml-based формат документов. В связи с этим поменялся и способ хранения цифровой подписи - в качестве такового был выбран стандарт XML Signature (XML-DSig, http://www.w3.org/Signature). К сожалению, базовый вариант этого алгоритма предполагает использование только простой подписи, которая, в частности, не рассчитана на длительное хранение документов.
В версии Office 2010 было принято решение о переходе к расширению XML-DSig, стандарту XAdES (XML Advanced Electronic Signatures, http://www.w3.org/TR/XAdES/). Сделано это было, в том числе, для соответствия European Union Advanced Electronic Signature Criteria.
Сам стандарт XAdES интерес тем, что имеет несколько уровней реализации, каждый из которых является расширением предыдущего:
|
Уровень подписи
|
Описание |
| XML-DSig |
Простая цифровая подпись, которая становится не валидной при истечении срока действия сертификата. Содержит только саму подпись |
| XAdES-BES/EPES (Base) |
К предыдущему уровню добавляется информация о подписывавшем сертификате. Т.е. пользователь уже не сможет воспользоваться аналогичным сертификатом, в который просто добавлены ключи из текущего |
| XAdES-T (Timestamp) |
К предыдущему уровню добавляется штамп времени установки подписи |
| XAdES-C (Complete) |
Добавляет информацию о цепочках сертификатов (т.е. сертификатах всех вышележащих узлов центров сертификатов) и ссылки на информации об отозванных сертификатах |
| XAdES-X (Extended) |
На данном уровне с помощью штампа времени защищается не только сам документ, но и данные добавленные на предыдущих уровнях (на T и C). |
| XAdES-X-L (Extended Long-Term) |
Предыдущий уровень дополняется сертификатами из цепочки сертификатов, а также информацией (т.е. уже не ссылкой) о статусе отзывов сертификатов. Это позволяет работать с подписью, даже если прекратит существование центр сертификатов. |
В настоящее время (Beta-версия) поддерживается только уровень XAdES-T, но к релизу обещают сделать поддержку всех уровней.
Кроме того, в блоге приводится подборка ключей реестра, которые позволяют управлять режимами подписания.
Для задания настроек уровня подписи используются ключи XAdESLevel и MinXAdESLevel
XAdESLevel
|
Положение
|
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Signatures |
| Описание |
Указывает запрашиваемый уровень подписи |
| Тип |
REG_DWORD |
| Значения |
0 – XAdES не используется (только XML-DSig)
1 – Создается XAdES-BES/EPES подпись (по умолчанию)
2 – Создается XAdES-T подпись
3 – Создается XAdES-C подпись
4 – Создается XAdES-X подпись
5 – Создается XAdES-X-L подпись
|
MinXAdESLevel
|
Положение
|
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Signatures |
| Описание |
Минимально допустимый уровень XAdES |
| Тип |
REG_DWORD |
| Значения |
0 – минимальный уровень не задан (по умолчанию)
1 – Требуется XAdES-BES/EPES подпись
2 – Требуется XAdES-T подпись
3 – Требуется XAdES-C подпись
4 – Требуется XAdES-X подпись
5 – Требуется XAdES-X-L подпись
|
Office пытается создать подпись требуемого уровня, если это не возможно (не доступна какая-то информация, например, об отзывах сертификатов или не доступен сервер штампов времени), то офис последовательно перебирает все остальные уровни вплоть до минимально допустимого и пытается их реализовать.
Для указания сервера штампов времени используется другой ключ TSALocation
TSALocation
|
Положение
|
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Signatures |
| Описание |
URL сервера штампов времени |
| Тип |
REG_SZ |
| Значения |
Адрес HTTP-сервера штампов, который работает в соответствии с RFC 3161 |
К сожалению открытым остаются вопросы о возможности использования национальных криптографических алгоритмов. В предыдущих версиях Office, на сколько мне известно, это было можно сделать лишь средствами сторонних дополнений.