Рейтинг:1

Безопасно ли подписывать сообщение закрытым ключом TLS?

флаг br

Я хочу подписать все HTML и JavaScript с моего сайта закрытым ключом TLS сайта.

(Шестнадцатеричной подписи будет предшествовать <!-- комментарий, который действителен как для HTML, так и для JavaScript и прикреплен к концу текстовых файлов.)

Это делается для того, чтобы конечные пользователи могли доказать, что вредоносный код JavaScript исходил от нас, и таким образом обрести уверенность, что мы никогда этого не сделаем.

Существуют ли какие-либо проблемы с безопасностью при использовании одного и того же закрытого ключа как для шифрования TLS, так и для подписи на уровне приложения?

real-or-random avatar
флаг th
Что это за закрытый ключ? Это ключ ECDSA? Я надеюсь, что это так. ;) Или это ключ RSA?
DannyNiu avatar
флаг vu
Я думаю, что ваш вариант использования может быть покрыт [целостностью субресурса] (https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity), вы не думаете?
Zac67 avatar
флаг vu
Если сервер скомпрометирован, чтобы можно было внедрить вредоносный код, вероятно, скомпрометирован и закрытый ключ сервера для SSL.
Maarten Bodewes avatar
флаг in
Меня интересует, как будет проверяться подпись. Хитрость заключается в том, как справиться с управлением ключами, а также в том, где кроются возможные проблемы, особенно вы не указали, как будет доверять соответствующему открытому ключу. Если управление ключами осуществляется должным образом, это *может* добавить немного безопасности. Если ключ скомпрометирован, то и подпись для аутентификации TLS, и подпись HTML будут скомпрометированы, но это нормально, если они используются примерно для одной и той же цели.
Рейтинг:2
флаг by

Вы наверняка можете подписать файлы, используя закрытый ключ TLS сервера. Затем на стороне клиента вы можете получить сертификат TLS, используемый для ссылки HTTPS, используя некоторый код. например с OpenSSL, как я писал здесьи проверьте подпись.

Но стоит ли? В сфере безопасности изобретать велосипед не очень безопасно. Алгоритм, с которым вы придете, скорее всего, будет нарушен.

Обеспечение того, чтобы данные не подделывались между сервером и клиентом, — это уже то, что делает TLS — проверенным способом. Если какой-либо злоумышленник сможет подделать ваши файлы на сервере, также возможно, что он/она сможет добавить свой собственный сертификат. Таким образом, весь ваш процесс подписи станет бессмысленным.

Я бы предпочел полагаться на TLS и использовать отдельный сертификат, если вам действительно нужно проверить содержимое файла. Я бы использовал закрытый ключ TLS только для TLS/HTTPS, а не для чего-либо еще.

Рейтинг:1
флаг cn
Vic

Термин закрытый ключ tls неоднозначен. PRF генерирует из согласованного предварительного секрета целый набор различных ключей в зависимости от выбранного набора шифров. Возможно, вы имеете в виду закрытый ключ из сертификата, используемого для аутентификации сервера. В этом случае вы должны проанализировать, может ли злоумышленник повлиять на контент, на который вы отвечаете и подписываете. В некоторых сценариях это может дать ему возможность сгенерировать правильную подпись манипулируемого сообщения без знания закрытого ключа.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.