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

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

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

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

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

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

    ОтветитьУдалить
  2. @Yury Schkatula

    Спасибо!

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

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

    ОтветитьУдалить