Обновить
7
0

Пользователь

Отправить сообщение

Как XTLS Reality обходит whitelist? Анализ исходного кода Reality

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели7.8K

XTLS/Xray-core - инструмент для обхода цензуры с открытым исходным кодом. Он хорошо известен в Китае своими новыми и практичными концептуальными технологиями, а также создателем RPRX, который однажды исчез и, как считалось, сбежал. К таким технологиям относятся VLESS, XTLS-Vision, XUDP... О какой-то из них вы точно слышали или использовали.

С момента как в Китае началось внедрение новой системы цензурирование: белый список SNI (Server name indication), все инструменты обхода на основе TLS до появления REALITY и ShadowTLS, подключаемые напрямую или через транзит или CDN, стали недоступны.

Ранее широкое внимание привлек инструмент обхода ShadowTLS. Однако в то время ShadowTLS все еще находился в версии v1 с неполной кодовой базой и слабой устойчивостью к цензуре. Позже в Reality появилась возможность обходить цензуру на основе белого списка SNI, и он был интегрирован со зрелым инструментом обхода Xray-core.

Так как же REALITY обходит эту цензурную стратегию? Как понять ее детали с технической точки зрения? Эти два вопроса будут в центре внимания этой статьи. Интерпретируя исходный код REALITY, мы разберемся с конкретной реализацией REALITY для читателей.

Что такое белый список SNI? В чем связь между SNI и TLS?

Вы, возможно, знаете, что широко используемый протокол безопасности прикладного уровня, основа HTTPS, протокол TLS, имеет свой собственный «процесс рукопожатия» при инициировании соединения.

TLS был «гибридной системой шифрования» с момента разработки его первой версии. Это означает, что TLS использует как асимметричные, так и симметричные алгоритмы шифрования. Симметричные алгоритмы шифрования требуют, чтобы обе стороны имели абсолютно одинаковый ключ, а накладные расходы на шифрование и дешифрование низкие. В то время как асимметричное шифрование требует только обмена открытым ключом в своих соответствующих парах ключей, но требует проверки того, что открытый ключ не был заменен или подделан при обмене ключами, что привело к появлению механизма цифрового сертификата. Кроме того, накладные расходы на асимметричное шифрование и дешифрование высоки. Поэтому TLS использует асимметричное шифрование для передачи ключа, используемого для симметричного шифрования, и для того, чтобы обменять открытый ключ, используемый для асимметричного шифрования, родился механизм рукопожатия TLS.

Читать далее

Как поднять персональный VPN

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели22K

Как поднять свой VPN?


Зачем я вообще решил сделать свой VPN? 1. Я хочу быть уверен, что никто не пишет логи и не знает куда и что я отправил. 2. Я могу пользоваться ВПН без ограничений на количество устройств, скорости и объема траффика. 3. Если скинуться группой, то выйдет дешевле.

Что же, приступим к запуску персонального VPN. Расскажу как это делал я:

Читать дальше →

Time Limit Exceeded это не только про сложность алгоритма

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели3.7K

Решал алгоритмическую задачу. Написал код со сложностью O(n), работает правильно, но Leetcode посчитал, что это слишком долго. Посмотрел в решения, там тоже O(n), но код принимается, почему так?

Давай разбираться

Как я искал себя в IT

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели3.4K

Привет всем читающим! Здесь я хочу поведать вам о своей истории как я искал себя в IT - чем я хочу заниматься, в каком направлении развиваться и все подобные вопросы.

Уже гляда на список литературы, которые я прочитал за это время, можно понять, что я попробовал несколько, а может даже и много направлений (список есть в конце статьи).

Началось все в 2018 году, когда я поступал в универ. Я, думаю как и многие, начал с разработки сайтов. Я учился верстать странички, писать стили и какую-то логику на php. Этим я занимался все лето перед поступлением и это был мой первый опыт работы с каким-то кодом.

С началом первого курса интерес к сайтам начал пропадать, и я начал интересоваться C++ и программированием. Я начал учить синтаксис, возможности языка, какие-то базовые вещи по типу массивов, указателей, работы с файлами и прочим. Придумывал себе задачи и решал их. Одной из первый была подсчет и ранжирование слов в тексте. После того, как я хоть в какой-то степени понял что такое программирование, я полез в ООП. Но на C#.

На втором семестре универа меня завлекло машинное обучение. Но тогда я решил попробовать решить задачку так, как я это видел, вместо того, чтобы почитать книжки или посмотреть лекции. В общем, я хотел научить компьютер играть в крестики-нолики. Простая задача, но не для того, у кого 0 знаний и понимания как устроен ИИ. Мое решение выглядело как простой алгоритм с использованием файлов и статистики. После я все же прочитал книгу [12] и посмотрел некоторые видео, пообщался с преподом на эту тему. С преподавателем я начал дальше работу в сторону машинного обучения, он давал мне какие-то задачи на потренироваться, я строил глубокие нейросети, сверточные, читал про рекуррентные нейросети и т.д, даже написал НИР и курсовую на эти темы.

Читать далее

Клиент Ozon Seller API на Golang

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели5.2K

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

Для чего он нужен и как им можно пользоваться? Например, если вы продаете на нескольких площадках, то целесообразнее было бы хранить информацию о товаре в структурированном виде и добавлять их на площадки при помощи API. Так вы сэкономите время и убережете себя от ошибок. Также легко копировать карточки с одной площадки на другую. Или можно написать сайт с статистикой о продажах по категориям на основе данных продавцов, полученных при помощи API.

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность