среда, 14 августа 2019 г.

[prog.c++] Быть или не быть tls_inspector-у в RESTinio? И если быть, то каким?

В комментариях к одной из статей про RESTinio на Хабре прозвучала идея сделать объект tls_inspector для проверки TLS-ных подключений. И не только проверки, но и просто извлечения из сертификата клиента различной полезной для сервера информации.

Дошли руки заняться этой темой. Но есть ощущение, что блин получился комом. Если кому-то интересно, то суть я попытался описать здесь: https://github.com/Stiffstream/restinio/issues/44
Там же можно высказать и свое "фи". Хотя его можно высказать и прямо здесь ;)

2 комментария:

Yury Schkatula комментирует...

Традиционно, если TLS, то подразумевается не просто чтение сертификата, но и разные политики, с этим связанные. Например, доверять всем (полезно для самоподписных сертификатов и кухонных проектов, чтобы не париться с LetsEncrypt). Или делать certificate pinning с последующим дропом коннектов от всех незапиненых сертификатов. Или чтобы делать Mutual TLS auth. В общем - штука выглядит востребованной.

eao197 комментирует...

@Yury Schkatula

Спасибо!

Но не достигается ли это все через уже имеющийся в Asio set_verify_callback?

Пока я вижу только одно существенное различие между set_verify_callback и имеющейся функциональностью tls_inspector-а: в tls_inspector-е уже есть connection_id, т.е. уже понятно, как RESTinio будет идентифицировать это подключение. Соответственно, с этим id можно что-нибудь связать. В случае с set_verify_callback такое невозможно.