#certificate #client-certificates #handshake #mtls
Вопрос:
В нашем рукопожатии MTLS у нас есть сертификат клиента, выданный с использованием ECC, и сертификат сервера, выданный с использованием RSA. Мы видим ошибки рукопожатия при проверке алгоритма, поскольку сервер не имеет алгоритмов ecdsa, должен ли сертификат клиента и сервера быть одного типа (RSA или ECC ) для работы рукопожатия или есть способ добавить алгоритмы ecdsa на стороне сервера без изменения сертификата сервера RSA ?
Комментарии:
1. Во-первых, чтобы было ясно, вы имеете в виду, что сертификаты содержат ключи ECC и RSA или подписаны ключами CA этих типов? Я бы интерпретировал «выдано с использованием» как последнее, но первое более важно для TLS, хотя типы ключей, используемых для подписи всех сертификатов в каждой цепочке, могут иметь значение. Сертификаты сервера и клиента не обязательно должны содержать ключ одного и того же типа, если (1) каждый сертификат является типом, поддерживаемым противоположной конечной точкой, то есть одноранговым узлом, и (2) только для протоколов до 1.2 сертификат сервера совместим по крайней мере с одним набором шифров, предлагаемым клиентом и приемлемым для сервера.
2. Чтобы мы могли вам помочь, вы должны четко указать, какое программное обеспечение вы используете на обоих концах, как оно настроено, и какую именно ошибку вы получаете и где. Основные типы и, возможно, другие характеристики (например, размер) для всех сертификатов в цепочке может иметь отношение, а может быть подпись типа не только основных типов-в частности ключами RSA может использоваться для традиционного PKCSv1.5 подписей или для RSA-PSS в подписи, а в 1,3 последнее обычно предпочтительнее, в то время как в нижней протоколов экс-часто требуется.
Ответ №1:
Во время переговоров клиент отправляет приветственное сообщение. Он содержит наборы шифров, поддерживаемые клиентом. После получения приветственного сообщения сервер отвечает на приветственное сообщение, содержащее выбранный набор шифров. Это фаза переговоров. В вашем случае согласование завершится неудачно и приведет к сбою, так как алгоритм набора шифров, используемый клиентом, не поддерживается сервером.
Комментарии:
1. Это верно, но не относится к данному вопросу, поскольку ciphersuite полностью независим и никогда не влияет или не зависит от сертификата клиента. (В TLS 1.3 он также не зависит от сертификата сервера , но это не было верно в более ранних протоколах.)