Client certificate auth - моментально 403 Forbidden
-
- Уже с Приветом
- Posts: 3170
- Joined: 17 May 2007 14:07
Re: Client certificate auth - моментально 403 Forbidden
Девайс и назначение его устраивать MITM для всех машин внутри корпоративной сети. Его устанавливают чтобы видеть весь SSL traffic то бишь ещё один девайс для слежкибезопастности.
-
- Уже с Приветом
- Posts: 13601
- Joined: 16 Jan 2001 10:01
Re: Client certificate auth - моментально 403 Forbidden
Если бы был proxy, это было видно в адресах пакетов
-
- Уже с Приветом
- Posts: 13601
- Joined: 16 Jan 2001 10:01
Re: Client certificate auth - моментально 403 Forbidden
Я бы наваял простейшую утилиту на джаве, устанавливающую соединение, запустил её с обоих машин, включив ssl debug.
А может SoapUI умеет трассировать ssl handshake?
А может SoapUI умеет трассировать ssl handshake?
-
- Уже с Приветом
- Posts: 13601
- Joined: 16 Jan 2001 10:01
Re: Client certificate auth - моментально 403 Forbidden
...или curl в verbose mode.
Я бы посмотрел на две вещи:
- какие CA сервер заявляет
- какой именно сертификат посылается клиентом.
Я бы посмотрел на две вещи:
- какие CA сервер заявляет
- какой именно сертификат посылается клиентом.
-
- Уже с Приветом
- Posts: 3170
- Joined: 17 May 2007 14:07
Re: Client certificate auth - моментально 403 Forbidden
Данный девайс вполне способен прикидываться под любым IP как было например в моём случае. Так что я бы так критично не утверждал
Его видно по сертификатам - такие девайсы генерят сертификаты on fly используя корпоративный CA который обычно установлен на всех машинах. Если посмотреть на сертификат сервера то будет видно есть ли «демон» в сети или нет: если сертификат вернулся тот что установлен на сервер то демона нет
-
- Уже с Приветом
- Posts: 9381
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: Client certificate auth - моментально 403 Forbidden
Спасибо всем за помощь.. продвинулись дальше.
Как оказалось в Windows Server 2012 и выше ввелись изменения насчет того как система работает с TLS и в частности как она работает с клиентскими сертификатами. У нас стоят Windows 10 и поэтмоу у нас все работало без проблем. У клиента Windows Server 2016.
Когда поставили опцию “ClientAuthTrustMode” = 2 в этой ветке реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel
то консольное приложение заработало и серверное приложение теперь валидирует сертификат. Может кому нибудь пригодится для информации.
Как оказалось в Windows Server 2012 и выше ввелись изменения насчет того как система работает с TLS и в частности как она работает с клиентскими сертификатами. У нас стоят Windows 10 и поэтмоу у нас все работало без проблем. У клиента Windows Server 2016.
Когда поставили опцию “ClientAuthTrustMode” = 2 в этой ветке реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel
то консольное приложение заработало и серверное приложение теперь валидирует сертификат. Может кому нибудь пригодится для информации.
-
- Уже с Приветом
- Posts: 3170
- Joined: 17 May 2007 14:07
Re: Client certificate auth - моментально 403 Forbidden
Классно. Удачи
-
- Уже с Приветом
- Posts: 13601
- Joined: 16 Jan 2001 10:01
Re: Client certificate auth - моментально 403 Forbidden
Чего-то я не догоняю:shadow7256 wrote: ↑20 Jul 2021 14:28 Спасибо всем за помощь.. продвинулись дальше.
Как оказалось в Windows Server 2012 и выше ввелись изменения насчет того как система работает с TLS и в частности как она работает с клиентскими сертификатами. У нас стоят Windows 10 и поэтмоу у нас все работало без проблем. У клиента Windows Server 2016.
Когда поставили опцию “ClientAuthTrustMode” = 2 в этой ветке реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel
то консольное приложение заработало и серверное приложение теперь валидирует сертификат. Может кому нибудь пригодится для информации.
Как это?2 - Exclusive CA Trust
Requires that a client certificate is chained to an intermediate CA certificate or to a root certificate in the caller-specified trusted issuer store.
Вызывающая сторона указывает как проверять её аутентичность?
-
- Уже с Приветом
- Posts: 3170
- Joined: 17 May 2007 14:07
Re: Client certificate auth - моментально 403 Forbidden
Скорее всего клиентский сертификат выписан банком с ихним CA который не находиться в листе public known CAs. CA банка стоит на компьютере но винда его заблеклистила поэтому поводу. Переключив на 2 винду заставили смотреть на все CA установленные в сторе. Я так понял эту опциюPalych wrote: ↑20 Jul 2021 20:18Чего-то я не догоняю:shadow7256 wrote: ↑20 Jul 2021 14:28 Спасибо всем за помощь.. продвинулись дальше.
Как оказалось в Windows Server 2012 и выше ввелись изменения насчет того как система работает с TLS и в частности как она работает с клиентскими сертификатами. У нас стоят Windows 10 и поэтмоу у нас все работало без проблем. У клиента Windows Server 2016.
Когда поставили опцию “ClientAuthTrustMode” = 2 в этой ветке реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel
то консольное приложение заработало и серверное приложение теперь валидирует сертификат. Может кому нибудь пригодится для информации.
Как это?2 - Exclusive CA Trust
Requires that a client certificate is chained to an intermediate CA certificate or to a root certificate in the caller-specified trusted issuer store.
Вызывающая сторона указывает как проверять её аутентичность?
-
- Уже с Приветом
- Posts: 9381
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: Client certificate auth - моментально 403 Forbidden
да, так и есть. У них все сертификаты подписаны ихним же банком.
стоит да.CA банка стоит на компьютере
вот тут непонятно почему.. винда его заблокировала на стороне сервера?но винда его заблеклистила поэтому поводу.
я честно говоря не до конца догнал почему эта опция решила проблему.
-
- Уже с Приветом
- Posts: 3170
- Joined: 17 May 2007 14:07
Re: Client certificate auth - моментально 403 Forbidden
Я в начале топика упоминал что у Винды есть дополнительная секьюрити для private SSL certs... Я нашел это в одном из топиков про mutual SSL auth но там не говорилось что конкретно и я тогда дальше копать не стал Теперь понятно что имели виду - винда блеклистит private CA and it's chain for mutual auth. Во всяком выглядит именно так в Вашем случае. Опять же это мое понимание ситуации и я не виндовс человек.
Возможно в винде в сторе разные уровни (бакеты) для сертификатов по типу как в *nix. Просто не так прозрачно.
Возможно в винде в сторе разные уровни (бакеты) для сертификатов по типу как в *nix. Просто не так прозрачно.
-
- Уже с Приветом
- Posts: 13601
- Joined: 16 Jan 2001 10:01
Re: Client certificate auth - моментально 403 Forbidden
Согласно спецификации TLS при подключении вываливает список CA которые он признает.
Можно их посмотреть, включив отладку на клиенте.
И сравнить этот список при разных значениях той волшебной опции.
Можно их посмотреть, включив отладку на клиенте.
И сравнить этот список при разных значениях той волшебной опции.
-
- Уже с Приветом
- Posts: 9381
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: Client certificate auth - моментально 403 Forbidden
У нас клиент при коннекте сразу же передаёт сертификат поэтому сервер изначально не шлёт клиенту.
-
- Уже с Приветом
- Posts: 13601
- Joined: 16 Jan 2001 10:01
Re: Client certificate auth - моментально 403 Forbidden
Интересно бы теперь взять какой-нибудь другой сертификат подписанный тем же банком, например от другого сервиса.
И подсунуть в качестве удостоверения личности клиента...
И подсунуть в качестве удостоверения личности клиента...
-
- Уже с Приветом
- Posts: 9381
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: Client certificate auth - моментально 403 Forbidden
В данном случае Винда скорее всего "разрешит" данный сертификат (если конечно алгоритм проверки винды состоит только в том, чтобы проверить подписан ли данный сертификат банком), но затем вступит в дело Authentication filter (это уже наш код) и он делает более тщательную проверку, в том числе проверяет установлен ли данный сертификат на сервере. Если такого клиентского сертификата нет на сервере, то вернется 403 Forbidden.
-
- Уже с Приветом
- Posts: 13601
- Joined: 16 Jan 2001 10:01
Re: Client certificate auth - моментально 403 Forbidden
То есть, проверять работает ли авторизация никто не будет?
-
- Уже с Приветом
- Posts: 9381
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: Client certificate auth - моментально 403 Forbidden
проблема была не в авторизации, а в том, что сертификат отвергался операционной системой из за особенностей работы винды с TLS.Palych wrote: ↑21 Jul 2021 17:12То есть, проверять работает ли авторизация никто не будет?
-
- Уже с Приветом
- Posts: 2846
- Joined: 28 Jun 2000 09:01
- Location: Milwaukee, WI
Re: Client certificate auth - моментально 403 Forbidden
shadow7256 wrote: ↑14 Jul 2021 00:07 Уважаемые,
на сервере есть WEB API (self hosted, имплементировано на .NET), которая требует при каждом запросе предьявить валидный Client Certificate.
Но вот какая проблема.
Когда я, с моей машины (А) из браузера пытаюсь вызвать какой то метод из этого API, то браузер мне вываливает окошко с предложением выбрать клиентский сертификат (из того списка сертификатов, что доступны на моей машине). Все четко и правильно. Браузер послал запрос к API, ему пришел ответ что нужен сертификат, он показал мне выбор сертификатов.
Когда я набираю тот же URL в браузере на другой машине (В), то мне сразу же возвращается 403 Forbidden ответ. Никакого диалога с выбором сертификатов я не получаю вообще.
Если я на стороне сервера (WEB API) отключу требование наличия клиентского сертификата, то я могу запрашивать API с обоих машин без проблем.
Но как только я включаю требование иметь клиентский сертификат, то на все запросы с машины В сразу же получаю 403 Forbidden в ответ.
У меня есть клиентское приложение (тоже на .NET) которое работает с API и в коде в каждом запросе прикладывает сертификат.
Если я запускаю прилоежние с моего компутера, то все в порядке и запрос уходит и обрабатывается сервером.
Как только я запускаю тоже самое приложение на машине В, то в клиентском коде сразу же получаю 403 forbidden ответ.
Получается какая то проблема между машиной В и сервером? Никак не пойму в чем дело..
Пытался Wireshark пронюзхать траффик между В и сервером, но ничего не смог найти.. одни TLS, TCP и UDP пакеты
Если сервер не запрашивает сертификат - то клиент его и не передает
The TLS 1.2 and TLS 1.3 standards clearly describe the sequence of communication inside the TLS handshake. A client certificate can not be send inside the ClientHello since the structure of the ClientHello record does not have a place for it. It is instead sent within a Certificate record, similar to how server certificates are sent. Only a Certificate record from the client is supposed to be sent only after the server explicitly requested it with a CertificateRequest. (see TLS 1.3 spec, sections CertificateRequest, and Certificate for the definition of this behavior)
Вы видите этот CertificateRequest?
moria# show running-config