Салем!
Пытаюсь сделать подпись и проверку файла так же как и ezSigner, чтобы если что можно было бы потом проверить пользователям свою подпись и посмотреть сам оригинальный файл на этом же ezSigner портале, на случай если пользователь хотел удостовериться в двойне. Но никак не могу найти информацию как ezSigner подписывает файл.
У меня есть идея чтобы фронт перед подписью через NCALayer, этот файл для подписи превратил в base64 и подписывает эти огромные base64 данные. Потом эту PEM подпись отправляет мне на бекенд, я валидирую PEM подпись, сертификат на отозванность. После на бекенде формирую .cms файл с этой PEM подписью, так же еще формирую оригинальный файл вытащив signData из PEM подписи (не пробовал, но по форуму видел что вытащить данные из подписи возможно).
Но тут выходят всякие проблемы в этом System Design’e.
- Проблемно узнать расширение оригинального файла. (При генерации с base64 на file, на бекенде)
- На фронте злоумышленник может подменить либо файл, либо после конверта файла в base64 сам base64. В итоге подпишется вообще рандомный файл
- Начнется хаос если подписывать нужно нескольким пользователям один и тот же файл
Как мне лучше реализовать подписи файлов через SDK? Какой System design будет лучший по безопасности. Мне нравится как на ezSigner, но пока не нашел как они формируют .cms файл и в целом что именно подписывают, что в итоге потом получается вернуть аж оригинальный файл. Рахмет