У меня есть подписанные данные, передаваемые на мой сервер вместе с открытым ключом в шестнадцатеричном формате, с которым были подписаны эти данные. Хэш-алгоритм одинаковый для всех запросов sha-256, но открытые ключи разные для каждого запроса, потому что на клиенте создается rsa public + private.Проверка подписи с открытым ключом
Итак, мой вопрос: как проверить подпись с открытым ключом в шестнадцатеричном формате? В документах узла crypto
я вижу, что мне нужен файл формата pem, но у меня его нет. И на самом деле таких запросов будет много, поэтому было бы неплохо создавать эти файлы.
Это зависит от формата подписания данных. Нам понадобится дополнительная информация, которая поможет вам. Также - если ключи подписывания будут восстановлены на стороне клиента для каждого запроса - нет никакого способа, чтобы сервер мог знать, что они представляют или даже проверять. Вам нужен способ иметь постоянные ключи, даже через сеанс, чтобы иметь какую-либо надежду на проверку. В противном случае все ваши криптоны бесполезны. – Avery
Привет, @ Avery. В принципе, на стороне клиента у меня есть строка 'str'. Затем генерируется пара частных и открытых ключей и создается подпись 'sig = sha256 (str)' с закрытым ключом. На следующем шаге {'str',' sig' и 'public_key' в шестнадцатеричном формате} отправляются на сервер. На сервере мне нужно проверить подпись. – xaxa
Почему? Если вы отправляете pubkey с подписанными данными, перехватчик (которого я предполагаю, что вы пытаетесь защитить от него) может просто изменить ключ. Вы не можете использовать алгоритм diffie-hellman? Это позволит вам точно знать, откуда поступают данные, и это действительно сработает. – Avery