]> Sergey Matveev's repositories - stargrave-blog.git/commit
Углубился в изучение TLS 1.3
authorSergey Matveev <stargrave@stargrave.org>
Sun, 4 Aug 2019 07:19:10 +0000 (10:19 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 4 Aug 2019 07:19:10 +0000 (10:19 +0300)
commit7b2ef1d249df7108d893980b93ed26e0ad2de0df
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parentc0e44ce80d4bf59c8e5db2f1cc256afd68a5c6c1
Углубился в изучение TLS 1.3

Честно говоря, про старые версии я не много чего знаю. Видел какие они
переусложнённые, а до TLS 1.2 ещё и имеющие проблемы с безопасностью. Но
я вот почему-то раньше думал что для сериализации сообщений там
используется ASN.1. Сейчас, так как занимаюсь 1.3 реализацией, то
вынужден уже вникать во всё это.

TLS 1.3 мне нравится. Это действительно уже продуманный, вменяемый,
*существенно* более простой чем предшественники протокол. Из него
колоссальное количество всякого legacy и странностей выкинули. Его
требование просто и ясно использовать AEAD-ы прекрасно. Его ключевое
расписание использующее HKDF-ы с label-ами прекрасно и элегантно,
надёжно был лишнего выпендрежа в виде собственных KDF функций.
Продолжение сессий, в виде простого PSK, красиво и элегантно
вырабатывающегося и создающего аутентификационные MAC-ы тоже
понравилось. Отсутствуют места где потребляется рандом без существенной
на то причины. Нравится что X.509 не является must-have-ом и можно
передавать голые публичные ключи. Нравится что DHE не обязателен при
использовании PSK, позволяя продолжать сессии без использовать
асимметричной криптографии вообще.

Единственное что там неприятно бросается в глаза это всякие legacy
форматы различных расширений и форматов сообщений. Например есть
32-байтный session_id который в TLS 1.3 не должен заполнятся вообще. Но
ради обратной совместимости и возможности downgrade до TLS 1.2 можно и
потерпеть. Но этот протокол уже вполне себе хорош для использования.
Нет, я всё-равно за Noise, так как он и проще и гибче (а бывают нужды
когда это надо).