TimeStampToken Хранение в MySQL или Oracle?
Я получаю TimeStampToken (RFC3161) с помощью клиента на основе Java.
Мне нужно хранить всю информацию, включенную в TSTInfo, в базе данных, MySql или Oracle. Есть ли какой-то конкретный формат для ее хранения?
2 ответа
Для такого рода вещей не указан формат1.
Но на ум приходят некоторые очевидные альтернативы:
Сохраните DER-кодированную форму как BLOB.
Примите форму в кодировке DER, закодируйте ее в base-64 и сохраните в столбце CHAR(n).
Создайте таблицу со столбцами для представления каждого из полей
TSSInfo
структура... при условии, что вы уже декодируете это.Сериализация представления объектов Java с использованием протокола сериализации Java, XML, JSON и т. Д.
и так далее.
1 - На самом деле, согласно Википедии, существует кодировка для ASN.1, называемая XER, которая представлена с использованием XML.
Обратите внимание, что если вы сохраняете только TSTInfo, вы теряете подпись, в чем весь смысл наличия токена RFC3161. TSTInfo без подписи ничего не доказывает!
Чтобы сохранить его доказательственное свойство, вам действительно следует хранить весь токен временной метки (который определяется как подписанный CMS ContentInfo, который является оболочкой TSTInfo).
С точки зрения того, какой формат использовать, вероятно, может быть полезна глава 3.2 спецификации RFC3161 (https://tools.ietf.org/html/rfc3161) (хотя это всего лишь предложение):
3. Transports
There is no mandatory transport mechanism for TSA messages in this
document. The mechanisms described below are optional; additional
optional mechanisms may be defined in the future.
[...]
3.2. File Based Protocol
A file containing a time-stamp message MUST contain only the DER
encoding of one TSA message, i.e., there MUST be no extraneous header
or trailer information in the file. Such files can be used to
transport time stamp messages using for example, FTP.
Итак, я бы сохранил закодированную в DER CMS ContentInfo (а не TSTInfo) как BLOB