Почему Chromium и Firefox по разному запрашивают сайты в плане TLS/SSL?
Сейчас из за DPI блокировок, страдают и обычные сайты/юзеры, вроде как от того что VPN трафик маскируют под Chromium браузер. Некоторые сайты у меня в Chromium не открываются например из за таймаута или что совсем странно на mirkvartir.ru статика отваливается с 403 ошибкой. Некоторые сайты открываются но после нескольких попыток.
А в Firefox всё открывается и быстро.
Где-то читал что у этих браузеров отличается SSL Fingerprint или что-то такое. Но ведь есть четкие протоколы, какие там могут быть различия во взаимодействии с сайтом? Зачем в запросах передавать что-то лишнее из за чего различия могут быть?
На mirkvartir.ru взял запрос из инструментов разработчика, который с 403 ответом, нажал Copy as Curl. Он и в терминале 403, поудалял заголовки, стал норм 200. Но это уже наверно сам сервак криво настроен.
Протокол говорит что в начале разговора нужно поздороваться. Но один человек всегда говорит «Здравствуйте», а другой «Добрый день». Оба соблюдают протокол, но очевидно что их легко можно отличить.
Lynn «Кофеман», для оптимизации лучше передавать минимум данных и говорить "hi". Странно что в итоге все к этому единообразию не пришли и браузер выдаёт себя, даже если "user-agent" в http поменять.
Странно что в итоге все к этому единообразию не пришли
А зачем? В 95% мира все прекрасно работает.
На mirkvartir.ru взял запрос из инструментов разработчика, который с 403 ответом, нажал Copy as Curl. Он и в терминале 403, поудалял заголовки, стал норм 200.
200 и отличающийся (от оригина) контент часто отдают ботам, в качестве теневого бана.
Василий Банников, там далеко не только в списке шифров отличия. Там всего 6 расширений в протоколе mandatory-to-implement, остальное всё опциональное. Дальше каждый новый опциональный пункт добавляет в комбинаторику к итоговому количеству вариантов в масштабе порядков чисел:
- Кто-то поддерживает EarlyData, соответственно, вместе с ClientHello уже может начать идти поток данных, если предыдущие ключи от сессии не протухли.
- Кто-то просто восстанавливает сессию на основе ключей и пропускает повторную проверку сертификата, а кто-то игнорит это расширение, т.к. оно опционально.
- Один может вначале передачи ещё тикет пиру послать, типа сохрани ключ, а пир вообще не реализовал у себя resumption и просто игнорит эти тикеты.
- Кто-то поддерживает легаси, а кто-то — нет.
- Каждый раз всё это может быть покрыто разным алгоритмом шифрования, с хешем разного размера.
- И ещё десятки и сотни различных комбинаций настроек протокола.
Это всё только про один современный стандарт TLS 1.3. А сколько серверов сейчас настроено через жопу без понимания настроек? Вот этот весь зоопарк приходится поддерживать, к сожалению. Обратная совместимость называется.
отличается TLS отпечаток.
вообще есть статейка интересная, как РКН детектит ВПН. там отпечаток + IP + еще триггеры. если они все совпадают то блок) и не важно сайт там или рабочее что то )
мне вон РКН на серваке в РФ банил некстклауд, потому что видео я хотел оттуда смотреть, а для этого запускается VLC плеер, а его отпечаток видимо на что то поход или не разрешен, я хз )
Но ведь есть четкие протоколы, какие там могут быть различия во взаимодействии с сайтом?
Любые. Басня "Лебедь, рак и щука" прекрасно это иллюстрирует. Вот тут примерно то же самое. Стандарт-то один, а вот его интерпретация и реализация могут сильно отличаться.
одинаково все они интерпретируются, там нечего интерпретировать, если реализовывать современный протокол на сегодняшний день TLS 1.3. По пальцам двух рук можно действительно необходимые фичи сосчитать.
Проблема комбинаторного взрыва вариантов формата пакетов — тупо обратная совместимость с предыдущими версиями, кривыми реализациями, историческими костылями, и прочим ненужным для функционирования барахлом.