Замена привязки канала сеанса tls: поиск общего материала между Java и csharpC#

Место общения программистов C#
Anonymous
Замена привязки канала сеанса tls: поиск общего материала между Java и csharp

Сообщение Anonymous »

Поскольку Java JSSE пока не поддерживает токены привязки каналов (CBT), я не могу написать MitM-доказательные аутентификационные рукопожатия через делегированное TLS-соединение, используя простой «tls-unique» токен, описанный в RFC 5056. p>
Если вы хотите узнать, почему CBT имеет решающее значение для аутентификации на уровне приложения, см. https://csb.stevekerrison.com/post/2022 ... ding/Токен «tls-server-end-point» также недоступен, но это заставило меня подумать, что я мог бы создать какую-то замену из сертификата открытого ключа сервера, с которой оба узла должны согласиться (если нет MitM).
Итак, я подумал: хорошо, давайте sha256 ожидаемый/видимый открытый ключ сервера с каждой стороны и будем использовать его в качестве токена.
Моя проблема в том, что одна сторона находится в Java, другая в С#, и они не могут создать общий байт [], который был бы сопоставим. Я имею в виду, что API-интерфейсы сообщают о различных закодированных форматах сертификата, открытого ключа или подписи, но они не имеют одинакового формата на этих языках.
Мне удалось получить клиент C# подключитесь к Java-серверу, управляя обоими источниками, и с каждой стороны углубитесь в открытый ключ RSA, чтобы найти модуль и показатель степени (и даже в этом случае представление byte[] BigInteger все еще немного отклонялось от знакового байта), но Мне бы не хотелось знать обо всех подобных типах сертификатов. Это не продлится долго, учитывая шум всех будущих изменений TLS. Это будет означать исправления обслуживания, особенно на двух языках.
Мои вопросы: в каком формате эти сертификаты, открытые ключи и подписи, как их анализировать и почему byte[] не представляет они одинаковы в разных реализациях, поскольку они отправлялись по протоколу TCP/TLS?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -between-j

Вернуться в «C#»