LINUX.ORG.RU

SQUID и неправильный сайт HTTPS

 , ,


0

1

Здравствуйте. Настроил прозрачный SQUID 3.5.24 с подменой сертификата, добавил сертификат в браузер. На все сайты с https заходит без ругани, acl с фильтрацией содержимого работают, кэширование вроде бы тоже. Проблемы возникают с сайтом eisz.kz - firefox ругается на сертификат sec_error_unknown_issuer. В принципе он ругается и без подмены сертификата - сам сайт кривой изначально. Можно ли как то избавиться от этой ошибки используя SQUID?

Конфиг сквида по части https

https_port 10.0.0.1:3129 cert=/etc/squid3/squid.pem generate-host-certificates=on ssl-bump intercept
always_direct allow all

sslcrtd_program /lib/squid3/ssl_crtd -s /etc/squid3/ssl_db -M 4MB
sslproxy_cert_adapt setCommonName ssl::certDomainMismatch all
sslproxy_cert_error allow all
acl step1 at_step SslBump1
ssl_bump stare step1
ssl_bump bump all

Текст ошибки из браузера

К сертификату нет доверия, так как сертификат его издателя неизвестен. Сервер мог не отправить соответствующие промежуточные сертификаты. Может понадобиться импортировать дополнительный корневой сертификат.

Скорее он использует сертифицированные гостовые крипто, о которых что линукс, что сквид имеют представление слабое

Avial ★★★★ ()
Ответ на: комментарий от Avial

у нас лиси-софт прогнали за спам и нарушение лицензий, а у них сборка лисы есть с гостами. Можно проверить.

mandala ★★★★ ()
Ответ на: комментарий от Avial

Так и под виндой что в хроме, что в лисе выдаётся ошибка. Причём раз в несколько месяцев (не раз в год) сертификаты обновляются и приходится по новой добавлять исключение в браузере.

Я то думал, что с подменой сертификата на свой в сквиде ошибка исчезнет. Но ни фига - даже если добавить сертификат сквида в лису на этом сайте выдаётся предупреждение (нужно добавлять исключение в браузер).

Вообще в Казахстане большинство государственных сайтов использует сертификат НУЦ РК но eisz.kz использует что-то другое.

murderer ()
Ответ на: комментарий от murderer

Ну попробуй забщать криптопроfox, и посмотреть, что будет

Avial ★★★★ ()
Ответ на: комментарий от Avial

Ну уж нет - это же на каждом клиентском компьютере устанавливать надо.

Можно ли как-то настроить сквид, чтобы он отдавал клиентам трафик именно этого сайта по HTTP без шифрования?

murderer ()
Ответ на: комментарий от Avial

Согласно спецификации SSL сервер ведь не может использовать абы какие алгоритмы. Алгоритмы определяются клиентом

1) Клиент посылает серверу номер версии SSL клиента, поддерживаемые алгоритмы шифрования и сжатия... 2) Сервер посылает клиенту номер версии SSL сервера, алгоритм сжатия и шифрования (выбранные из посланных ранее клиентом)...

Это выдержка из википедии. Или я не правильно понял?

murderer ()

Можно посмотреть сертификат через openssl

openssl s_client -showcerts -connect eisz.kz:443 | openssl x509 -inform pem -text

что там за алгоритм

TheAnonymous ★★★★★ ()

В принципе он ругается и без подмены сертификата - сам сайт кривой изначально. Можно ли как то избавиться от этой ошибки используя SQUID?

Это плохая идея с точки зрения безопасности. Если до сквида сертификат сайта не проходит проверку, то после сквида конечный юзер должен как-то видеть, что с сайтом что-то изначально не так.

Если сквид будет генерировать для кривых сайтов валидный сертификат, то будет риск нарваться на mitm за пределами сквида и не заметить это.

mironov_ivan ★★★★★ ()
Ответ на: комментарий от TheAnonymous

В ответе openssl помимо всего прочего нашёлся ИИН некоего Кожахметова Марата Саятовича и его email: MARAT_K@EZDRAV.KZ. Алгоритмы вроде бы стандартные... или нет?

depth=1 C = KZ, L = \D0\90\D0\A1\D0\A2\D0\90\D0\9D\D0\90, ST = \D0\90\D0\A1\D0\A2\D0\90\D0\9D\D0\90, O = \D0\A0\D0\9C\D0\9A \C2\AB\D0\9C\D0\95\D0\9C\D0\9B\D0\95\D0\9A\D0\95\D0\A2\D0\A2\D0\86\D0\9A \D0\A2\D0\95\D0\A5\D0\9D\D0\98\D0\9A\D0\90\D0\9B\D0\AB\D2\9A \D2\9A\D0\AB\D0\97\D0\9C\D0\95\D0\A2\C2\BB, CN = \D2\B0\D0\9B\D0\A2\D0\A2\D0\AB\D2\9A \D0\9A\D0\A3\D3\98\D0\9B\D0\90\D0\9D\D0\94\D0\AB\D0\A0\D0\A3\D0\A8\D0\AB \D0\9E\D0\A0\D0\A2\D0\90\D0\9B\D0\AB\D2\9A (RSA)
verify error:num=20:unable to get local issuer certificate
verify return:0
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            41:e0:85:7c:86:fa:a0:47:28:57:4a:7e:39:3e:c9:8b:4d:3b:b6:7f
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=KZ, L=\xD0\x90\xD0\xA1\xD0\xA2\xD0\x90\xD0\x9D\xD0\x90, ST=\xD0\x90\xD0\xA1\xD0\xA2\xD0\x90\xD0\x9D\xD0\x90, O=\xD0\xA0\xD0\x9C\xD0\x9A \xC2\xAB\xD0\x9C\xD0\x95\xD0\x9C\xD0\x9B\xD0\x95\xD0\x9A\xD0\x95\xD0\xA2\xD0\xA2\xD0\x86\xD0\x9A \xD0\xA2\xD0\x95\xD0\xA5\xD0\x9D\xD0\x98\xD0\x9A\xD0\x90\xD0\x9B\xD0\xAB\xD2\x9A \xD2\x9A\xD0\xAB\xD0\x97\xD0\x9C\xD0\x95\xD0\xA2\xC2\xBB, CN=\xD2\xB0\xD0\x9B\xD0\xA2\xD0\xA2\xD0\xAB\xD2\x9A \xD0\x9A\xD0\xA3\xD3\x98\xD0\x9B\xD0\x90\xD0\x9D\xD0\x94\xD0\xAB\xD0\xA0\xD0\xA3\xD0\xA8\xD0\xAB \xD0\x9E\xD0\xA0\xD0\xA2\xD0\x90\xD0\x9B\xD0\xAB\xD2\x9A (RSA)
        Validity
            Not Before: Dec 26 10:53:20 2016 GMT
            Not After : Dec 26 10:53:20 2017 GMT
        Subject: CN=*.EISZ.KZ/serialNumber=IIN770429350276, C=KZ, L=\xD0\x90\xD0\xA1\xD0\xA2\xD0\x90\xD0\x9D\xD0\x90, ST=\xD0\x90\xD0\xA1\xD0\xA2\xD0\x90\xD0\x9D\xD0\x90, O=\xD0\xA0\xD0\x95\xD0\xA1\xD0\x9F\xD0\xA3\xD0\x91\xD0\x9B\xD0\x98\xD0\x9A\xD0\x90\xD0\x9D\xD0\xA1\xD0\x9A\xD0\x9E\xD0\x95 \xD0\x93\xD0\x9E\xD0\xA1\xD0\xA3\xD0\x94\xD0\x90\xD0\xA0\xD0\xA1\xD0\xA2\xD0\x92\xD0\x95\xD0\x9D\xD0\x9D\xD0\x9E\xD0\x95 \xD0\x9F\xD0\xA0\xD0\x95\xD0\x94\xD0\x9F\xD0\xA0\xD0\x98\xD0\xAF\xD0\xA2\xD0\x98\xD0\x95 \xD0\x9D\xD0\x90 \xD0\x9F\xD0\xA0\xD0\x90\xD0\x92\xD0\x95 \xD0\xA5\xD0\x9E\xD0\x97\xD0\xAF\xD0\x99\xD0\xA1\xD0\xA2\xD0\x92\xD0\x95\xD0\x9D\xD0\x9D\xD0\x9E\xD0\x93\xD0\x9E \xD0\x92\xD0\x95\xD0\x94\xD0\x95\xD0\x9D\xD0\x98\xD0\xAF "\xD0\xA0\xD0\x95\xD0\xA1\xD0\x9F\xD0\xA3\xD0\x91\xD0\x9B\xD0\x98\xD0\x9A\xD0\x90\xD0\x9D\xD0\xA1\xD0\x9A\xD0\x98\xD0\x99 \xD0\xA6\xD0\x95\xD0\x9D\xD0\xA2\xD0\xA0 \xD0\xAD\xD0\x9B\xD0\x95\xD0\x9A\xD0\xA2\xD0\xA0\xD0\x9E\xD0\x9D\xD0\x9D\xD0\x9E\xD0\x93\xD0\x9E \xD0\x97\xD0\x94\xD0\xA0\xD0\x90\xD0\x92\xD0\x9E\xD0\x9E\xD0\xA5\xD0\xA0\xD0\x90\xD0\x9D\xD0\x95\xD0\x9D\xD0\x98\xD0\xAF" \xD0\x9C\xD0\x98\xD0\x9D\xD0\x98\xD0\xA1\xD0\xA2\xD0\x95\xD0\xA0\xD0\xA1\xD0\xA2\xD0\x92\xD0\x90 \xD0\x97\xD0\x94\xD0\xA0\xD0\x90\xD0\x92\xD0\x9E\xD0\x9E\xD0\xA5\xD0\xA0\xD0\x90\xD0\x9D\xD0\x95\xD0\x9D\xD0\x98\xD0\xAF \xD0\x98 \xD0\xA1\xD0\x9E\xD0\xA6\xD0\x98\xD0\x90\xD0\x9B\xD0\xAC\xD0\x9D\xD0\x9E\xD0\x93\xD0\x9E \xD0\xA0\xD0\x90\xD0\x97\xD0\x92\xD0\x98\xD0\xA2\xD0\x98\xD0\xAF \xD0\xA0\xD0\x95\xD0\xA1\xD0\x9F\xD0\xA3\xD0\x91\xD0\x9B\xD0\x98\xD0\x9A\xD0\x98 \xD0\x9A\xD0\x90\xD0\x97\xD0\x90\xD0\xA5\xD0\xA1\xD0\xA2\xD0\x90\xD0\x9D, OU=BIN131240004404/emailAddress=MARAT_K@EZDRAV.KZ
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    ...
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, 1.2.398.3.3.4.1.2
            X509v3 Authority Key Identifier:
                keyid:55:B5:B4:E2
            X509v3 Subject Key Identifier:
                65:E4:62:93:A7:B4:9D:F6:93:DF:5C:8D:31:E6:28:8F:17:3A:BF:48
            X509v3 Certificate Policies:
                Policy: 1.2.398.3.3.2.5
                  CPS: http://pki.gov.kz/cps
            X509v3 Subject Alternative Name:
                DNS:*.eisz.kz, DNS:eisz.kz, DNS:mzsr.kz, DNS:*.mzsr.kz
            X509v3 CRL Distribution Points:
                Full Name:
                  URI:http://crl.pki.gov.kz/rsa.crl
                  URI:http://crl1.pki.gov.kz/rsa.crl
            X509v3 Freshest CRL:
                Full Name:
                  URI:http://crl.pki.gov.kz/d_rsa.crl
                  URI:http://crl1.pki.gov.kz/d_rsa.crl
            Authority Information Access:
                CA Issuers - URI:http://pki.gov.kz/cert/pki_rsa.cer
                OCSP - URI:http://ocsp.pki.gov.kz
    Signature Algorithm: sha256WithRSAEncryption
         ...
read:errno=104

Кстати теперь понял как использовать unicode в сертификатах.

murderer ()
Ответ на: комментарий от mironov_ivan

Это плохая идея с точки зрения безопасности. Если до сквида сертификат сайта не проходит проверку, то после сквида конечный юзер должен как-то видеть, что с сайтом что-то изначально не так. Если сквид будет генерировать для кривых сайтов валидный сертификат, то будет риск нарваться на mitm за пределами сквида и не заметить это.

Дело в том, что большая часть конечных юзеров не могут даже самостоятельно добавить исключение в браузер. На сайт заходят используя заранее созданные вкладки в браузере (более «продвинутые» могут зайти на портал используя google (sic!)). Если кто-то случайно закрыл панель закладок или обновился сертификат - звонят мне со словами «не работает интернет».

Вопросами безопасности как мне кажется должны заниматься админы министерства здравоохранения или регионального центра электронного здравоохранения.

murderer ()

Есть подозрение, что там на серверах идёт множественный редирект и проблема в этом. История такая: изначально было несколько поддоменов в домене eisz.kz каждый со своей системой авторизации всё это на HTTP. Затем прикрутили HTTPS - сразу же появились ошибки в браузере. Затем пошли дальше - прикрутили единую систему авторизации, то есть при входе на портал по старому URL происходит редирект на eisz.kz там вводится единый логин и пароль, затем сервер авторизации авторизуется на порталах сам в зависимости от того есть ли у пользователя права на этот портал. Как я понимаю всё сделано по принципу матрёшки.

murderer ()
Ответ на: комментарий от murderer

Вроде стандартный. Если в браузере проигнорировать ошибку, добавить исключение, всё открывается?

Ошибка в том, что нет сертификата CA (удостоверяющего центра)

unable to get local issuer certificate
Issuer: C=KZ, L=..., ST=..., O=..., CN=... (RSA)

Возможно, нужно скачать его и установить его на машину, где запущен squid.
Хотя sslproxy_cert_error allow all, по идее, должно работать и без этого. Или что, в случае ошибок squid специально генерирует невалидный сертификат?

TheAnonymous ★★★★★ ()
Ответ на: комментарий от TheAnonymous

Вроде стандартный. Если в браузере проигнорировать ошибку, добавить исключение, всё открывается?

Да. Исключение нужно добавлять для каждого домена в eisz.kz. Исключения появляются на вкладке «Серверы» в сертификатах firefox.

murderer ()
Ответ на: комментарий от murderer

В папке ssl_db нашёл сертификат для eisz.kz. При просмотре встроенной утилитой в Debian Jessie xfce в поле «Проверен» указывается «Not trusted by „имя организации“», то же самое в поле «CN (Общее имя)» в разделе «Имя выдающего». А вот например для www.linux.org.ru поле «Проверен» пустое, а поле «CN (Общее имя)» в разделе «Имя выдающего» отсутствует.

access.log для этого сайта

1486520595.581    171 192.168.1.177 TAG_NONE/200 0 CONNECT 5.104.236.181:443 - ORIGINAL_DST/5.104.236.181 -
1486520595.758     78 192.168.1.177 TCP_MISS/302 455 GET https://www.eisz.kz/ - ORIGINAL_DST/5.104.236.181 -
1486520595.879    110 192.168.1.177 TCP_MISS/200 10470 GET https://www.eisz.kz/login? - ORIGINAL_DST/5.104.236.181 text/html
1486520596.035    115 192.168.1.177 TCP_MISS/200 20001 GET https://www.eisz.kz/Content/css/bootstrap.min.css - ORIGINAL_DST/5.104.236.181 text/css
1486520596.078    157 192.168.1.177 TAG_NONE/200 0 CONNECT 5.104.236.181:443 - ORIGINAL_DST/5.104.236.181 -
1486520596.092    169 192.168.1.177 TAG_NONE/200 0 CONNECT 5.104.236.181:443 - ORIGINAL_DST/5.104.236.181 -
1486520596.120    196 192.168.1.177 TAG_NONE/200 0 CONNECT 5.104.236.181:443 - ORIGINAL_DST/5.104.236.181 -
1486520596.121     81 192.168.1.177 TCP_MISS/200 10207 GET https://www.eisz.kz/Scripts/bootstrap.min.js - ORIGINAL_DST/5.104.236.181 application/x-javascript
1486520596.132     45 192.168.1.177 TCP_MISS/200 6613 GET https://www.eisz.kz/Content/css/font-awesome.min.css - ORIGINAL_DST/5.104.236.181 text/css
1486520596.134    209 192.168.1.177 TAG_NONE/200 0 CONNECT 5.104.236.181:443 - ORIGINAL_DST/5.104.236.181 -
1486520596.139    212 192.168.1.177 TAG_NONE/200 0 CONNECT 5.104.236.181:443 - ORIGINAL_DST/5.104.236.181 -
1486520596.141     42 192.168.1.177 TCP_MISS/200 693 GET https://www.eisz.kz/Content/css/ace-fonts.min.css - ORIGINAL_DST/5.104.236.181 text/css
1486520596.210     86 192.168.1.177 TCP_MISS/200 28211 GET https://www.eisz.kz/bundles/jqueryval? - ORIGINAL_DST/5.104.236.181 text/javascript
1486520596.240    107 192.168.1.177 TCP_MISS/200 1522 GET https://www.eisz.kz/favicon.ico - ORIGINAL_DST/5.104.236.181 image/x-icon
1486520596.270    130 192.168.1.177 TCP_MISS/200 16320 GET https://www.eisz.kz/Content/css/ace-rtl.min.css - ORIGINAL_DST/5.104.236.181 text/css
1486520596.316    183 192.168.1.177 TCP_MISS/200 61967 GET https://www.eisz.kz/Content/css/ace.min.css - ORIGINAL_DST/5.104.236.181 text/css
1486520596.334    188 192.168.1.177 TCP_MISS/200 34418 GET https://www.eisz.kz/Scripts/jquery1x.min.js - ORIGINAL_DST/5.104.236.181 application/x-javascript
1486520596.401     44 192.168.1.177 TCP_MISS/200 7450 GET https://www.eisz.kz/Content/css/images/pattern.jpg - ORIGINAL_DST/5.104.236.181 image/jpeg
1486520596.469     71 192.168.1.177 TCP_MISS/200 23028 GET https://www.eisz.kz/Content/fonts/OpenSans-300.woff - ORIGINAL_DST/5.104.236.181 font/x-woff
1486520596.546    141 192.168.1.177 TCP_MISS/200 66997 GET https://www.eisz.kz/Content/fonts/fontawesome-webfont.woff2? - ORIGINAL_DST/5.104.236.181 font/x-woff2

murderer ()
Ответ на: комментарий от murderer

Решение нашлось - нужно пометить сертификат для eisz как trusted!

sslcrtd_program /lib/squid3/ssl_crtd -s /etc/squid3/ssl_db -M 4MB
sslproxy_cert_adapt setCommonName ssl::certDomainMismatch all
acl eisz ssl::server_name .eisz.kz
sslproxy_cert_error allow eisz
sslproxy_cert_sign signTrusted eisz
acl step1 at_step SslBump1
ssl_bump stare step1
ssl_bump bump all

murderer ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.