惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
A
About on SuperTechFans
量子位
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
T
Threat Research - Cisco Blogs
Spread Privacy
Spread Privacy
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News and Events Feed by Topic
C
Cybersecurity and Infrastructure Security Agency CISA
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Tenable Blog
V
V2EX
月光博客
月光博客
L
Lohrmann on Cybersecurity
W
WeLiveSecurity
Webroot Blog
Webroot Blog
H
Hacker News: Front Page
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Exploit Database - CXSecurity.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 三生石上(FineUI控件)
T
Troy Hunt's Blog
Google Online Security Blog
Google Online Security Blog
AI
AI
腾讯CDC
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Google DeepMind News
Google DeepMind News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V2EX - 技术
V2EX - 技术
Martin Fowler
Martin Fowler
博客园 - Franky
I
Intezer
Project Zero
Project Zero
I
InfoQ
P
Privacy International News Feed
C
Check Point Blog
T
The Blog of Author Tim Ferriss
P
Palo Alto Networks Blog
L
LINUX DO - 最新话题
有赞技术团队
有赞技术团队
Cloudbric
Cloudbric
人人都是产品经理
人人都是产品经理
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
SegmentFault 最新的问题
Latest news
Latest news
小众软件
小众软件

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Не покупайте плохой VPN
Намильский · 2026-05-10 · via Все публикации подряд на Хабре

Простой

11 мин

53K

Я думаю, все мы понимаем текущую ситуацию с интернетом на территории Российской Федерации. Сейчас это выходит на уровень абсурда, а VPN-сервисы выходят на уровень первой необходимости, и в связи с этим я хотел бы поговорить о том, насколько некоторые из них ну абсолютно ужасны, и каким сервисам верить не стоит.

Сразу хочу сказать одно. Не поймите текст ниже неправильно: цель статьи — не сказать, что определенные сервисы предоставляют плохое обслуживание, а донести, что нельзя верить в маркетинг. Этот материал был мной написан только потому, что на моих глазах люди верили в этот идиотизм. Особо технических действий здесь не будет, просто базовый анализ (не является реверс-инжинирингом, т. к. реверс законодательно подразумевает декомпиляцию и/или обход встроенных механизмов защиты), который должен быть понятен даже обывателю. Статья может быть немного кривоватой, если я где-то не доглядел, — изначально писалась не для хабра, а для моего сайта. Но вроде знакомым зашло, так что почему бы нет?

Вообще в основном это касается тех сервисов которые вышли за уровень подписки (любой клиент + панель которая отдает конфигурации), то есть у них имеется свое приложение. Обычно после его разработки они начинают говорить что-то в духе “- Эксклюзивные обходы: обходы, которые появляются только в нашем приложении, и работают благодаря кастомному ядру”. (цитата телеграм-канала Atlanta, неплохой, кстати, сервис был, но селфхост все равно лучше) Это заявление является абсолютным бредом.

Поясню на пальцах и примере Kakadu.

Цитаты рекламы некоторого сервиса с ИИшным попугаем на логотипе:

  • “Наш сервис разрабатывался 5 лет и специально для чебурнета”

  • “Мы используем запатентованную технологию ‘invisible protocol’”

Цитаты из одного видео, сказать такой бред еще надо умудриться.

Хорошо, так давайте проверим их патент.

Ни в нашей, ни в глобальной патентной службе, ни в выдаче гугла, ни у них на сайте, вообще НИГДЕ нет ничего об их “invisible protocol”. Я, конечно, понимаю, что это маркетинг, но маркетинг ужасно отвратительный.

Ладно, ладно, не угнетаем их раньше времени, давайте проверим, что у них под капотом, и почитаем лицензионное соглашение, может, там будут зацепки? Я полез в пользовательское соглашение.

11. Шифрование и безопасность

Мы используем ChaCha20-Poly1305, Curve25519 и Noise Protocol Framework — те же технологии шифрования, которым доверяют Google, Signal и Cloudflare.

Актуальная версия всегда будет доступна на нашем официальном сайте или внутри приложения.

Это буквально описание Wireguard…

Я подозреваю Wireguard в основном из-за Noise protocol, он используется в хендшейке Noise_ikpsk2. Само собой, Noise Protocol это “фреймворк”, он не обязательно принадлежит Wireguard, но в данном контексте это самый вероятный случай т.к. никаких патентов на их собственный прото не было обнаружено, а значит что они используют обычное VPN-ядро. В singbox/xray Noise обычно использует только подозреваемый wireguard. И что они используют VLESS, что wg шифр вероятно заявлен верный, AEAD_CHACHA20_POLY1305 из TLSv1.3.

Все проведенные ниже действия актуальны на 19.04.2026, все что я провел ниже может быть проверено вами.

Посмотрим самым быстрым способом: Проверим, есть ли упоминания “invisible protocol” в коде, раз уж его документаций и патентов нигде нет. (strings более наглядный нежели распаковка apk и прикладывание сюда скринов)

Вывод strings на их android пакет для проверки наличия "invisible-protocol"
namilsk@mpc ~> strings Kakadu.apk | grep -i "invisible" | uniq  
       index: jstmpllitinterptarinsecurepathreflectlite.SetCurrency_SymbolModifier_LetterModifier_SymbolNonspacing_MarkSpace_Separator  
Hanifi_RohingyaPsalter_PahlaviELFOSABI_NETBSDELFOSABI_86OPENEM_ALTERA_NIOS2EM_ARC_COMPACT2EM_CSR_KALIMBA SHT_GNU_LIBLISTSHT_GNU_VERNEED  
COMPRESS_LOPROCCOMPRESS_HIPROCPT_GNU_EH_FRAMEPT_GNU_PROPERTYDT_INIT_ARRAYSZDT_FINI_ARRAYSZDT_SYMTAB_SHNDXDT_GNU_CONFLICT.debug_line_str  
.debug_rngliststoo many imagesno symbol tableinvalid pointerAuthoritative: AuthenticData: NSResource bodycreating name: initialize time  
AddRange(%v-%v)invalid IPRangeframe too largeX-Accel-ExpiresX-Forwarded-Forstart outbound/close outbound/close endpoint/read ECH config  
decode short_idreload key pairunpack responsefound user id: parse rule-set[close rule-set[fallback-delay=source_ip_cidr=domain_suffix=[  
domain_keyword=fetch rule-set network changedlistener closedreceive message: TLS handshakepeek first byteinvalid requestdiscard padding  
parse host key parse range endResolveAddress ResolveService SetLinkDomains downlinkPacketsmissing servers already existsset exit node:  
"MultiLabelMap"Derp-Fast-Start (no semicolon)fswatch: watch passCredEnabledquickAckEnabledmonotonicOffsetHasIPPacketInfoDestinationAddr  
pkg/tcpip.RoutePacketsReceivedNeighborSolicitMembershipQueryIGMPPacketStatsLinkLocalSourceHostUnreachableRepliesReceivedpkg/tcpip.Stats  
packetsReceivedmembershipQueryicmpRateLimiterrtrSolicitTimerinvalidationJobaddressEndpointneighborSolicit%T.Prefix(): %s%s unrecognized  
networkEndpointmaxHeaderLengthNetworkProtocolOutputInterfaceMinRandomFactorMaxRandomFactorRetransmitTimerqueuedProtocolsicmpPacketEntry  
timeWaitTimeoutlastRcvdAckTimePrevCopiedBytesunhandled statepkg/buffer.Viewinvalid timeout is unavailableinvalid integerinvalid boolean  
0601021504Z0700non-minimal tagunknown Go typeBelowExactAbovetimestamp replyfmipv6 messages#multipartfilesAccept-Language/etc/mime.types  
accept-encodingaccept-languagex-forwarded-forstring too longDiacriticalDot;DoubleRightTee;DownLeftVector;GreaterGreater;HorizontalLine;  
InvisibleComma;InvisibleTimes;LeftDownVector;LeftRightArrow;Leftrightarrow;LessSlantEqual;LongRightArrow;Longrightarrow;LowerLeftArrow;  
NestedLessLess;NotGreaterLess;NotLessGreater;NotSubsetEqual;NotVerticalBar;OpenCurlyQuote;ReverseElement;RightTeeVector;RightVectorBar;  
ShortDownArrow;ShortLeftArrow;SquareSuperset;TildeFullEqual;UpperLeftArrow;ZeroWidthSpace;curvearrowleft;doublebarwedge;downdownarrows;  
hookrightarrow;leftleftarrows;leftrightarrow;leftthreetimes;longrightarrow;looparrowright;nshortparallel;ntriangleright;rightarrowtail;  
rightharpoonup;trianglelefteq;upharpoonright;not enough data# Lookups = %d  
       index: jstmpllitinterptarinsecurepathreflectlite.**SetCurrency_SymbolModif**
...

Вообще достаточно комично что единственное что нашлось в их пакете связанное с тем самым “запатентованным протоколом разрабатывавшимся 5 лет” – это “Невидимая запятая” (InvisibleComma, вывод выше) из HTML спецсимволов. Никаким “Invisible Protocol” здесь как видите не пахнет.

Хорошо, тогда вынюхаем подозреваемые протоколы и самые популярные ядра, чтобы понять что они на самом деле используют, смотреть будем наличие Wireguard-go, Xray и SingBox.

Аналогичная операция с Wireguard
namilsk@mpc ~> strings Kakadu.apk | grep -i "wireguard" | uniq 
IsWireGuardOnly  
isWireguardOnly  
WireGuardGoString  
*wireguard.Device  
*netlink.Wireguard  
*wireguard.Outbound  
*wireguard.Endpoint  
*wireguard.wireConn  
*option.WireGuardPeer  
*wireguard.ClientBind  
*wireguard.peerConfig  
sendWireGuardOnlyPing  
*wireguard.stackDevice  
*wireguard.PeerOptions  
*[]option.WireGuardPeer  
*wireguard.wireEndpoint  
*wireguard.systemDevice  
*[]wireguard.peerConfig  
*[]wireguard.PeerOptions  
forceFullWireguardConfig  
*wireguard.DeviceOptions  
*[1]wireguard.PeerOptions  
*wireguard.deviceEndpoint  
*wireguard.remoteEndpoint  
*wireguard.EndpointOptions  
addrForWireGuardSendLocked  
*option.LegacyWireGuardPeer  
maybeReconfigWireguardLocked  
*wireguard.systemStackDevice  
sendWireGuardOnlyPingsLocked
&*option.LegacyWireGuardOutboundOptions  
'github.com/sagernet/wireguard-go/device  
'github.com/sagernet/wireguard-go/replay  
'github.com/sagernet/wireguard-go/tai64n  
)github.com/sagernet/wireguard-go/rwcancel
.....
github.com/sagernet/tailscale/tailcfg.(*NodeView).IsWireGuardOnly  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).ParseEndpoint  
github.com/sagernet/wireguard-go/conn.(*StdNetEndpoint).ClearSrc  
github.com/sagernet/wireguard-go/conn.(*StdNetEndpoint).DstIP  
github.com/sagernet/wireguard-go/conn.(*StdNetEndpoint).DstToBytes  
github.com/sagernet/wireguard-go/conn.(*StdNetEndpoint).DstToString  
github.com/sagernet/wireguard-go/conn.listenNet  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).Open  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).makeReceiveIPv4  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).makeReceiveIPv6  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).Open.(*StdNetBind).makeReceiveIPv6.func2  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).Open.(*StdNetBind).makeReceiveIPv4.func1  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).Open.deferwrap1  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).putMessages  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).receiveIP  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).getMessages  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).receiveIP.deferwrap1  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).BatchSize  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).Close  
github.com/sagernet/wireguard-go/conn.(*StdNetBind).Close.deferwrap1  
github.com/sagernet/wireguard-go/conn.ErrUDPGSODisabled.Error

Wireguard-go имеется, записано. Он также разработан SagerNet как и sing-box, по этому, вероятно, он засунут здесь в купе с самим sing-box. Проверим эту теорию.

То-же самое с sing-box
namilsk@mpc ~> strings Kakadu.apk | grep -iE "sing-box|singbox|libbox" | uniq 
....
github.com/sagernet/sing-box/experimental/libbox/internal/procfs/procfs.go  
github.com/sagernet/sing-box/experimental/libbox/build_info.go  
github.com/sagernet/sing-box/experimental/libbox/command_clash_mode.go  
github.com/sagernet/sing-box/experimental/libbox/command_client.go  
github.com/sagernet/sing-box/experimental/libbox/iterator.go  
github.com/sagernet/sing-box/experimental/libbox/command_close_connection.go  
github.com/sagernet/sing-box/experimental/libbox/command_connections.go  
github.com/sagernet/sing-box/experimental/libbox/command_conntrack.go  
github.com/sagernet/sing-box/experimental/libbox/command_deprecated_report.go  
github.com/sagernet/sing-box/experimental/libbox/command_group.go  
github.com/sagernet/sing-box/experimental/libbox/command_log.go  
github.com/sagernet/sing-box/experimental/libbox/command_power.go  
github.com/sagernet/sing-box/experimental/libbox/command_select.go  
github.com/sagernet/sing-box/experimental/libbox/command_system_proxy.go  
github.com/sagernet/sing-box/experimental/libbox/command_urltest.go  
github.com/sagernet/sing-box/experimental/libbox/config.go  
github.com/sagernet/sing-box/experimental/libbox/dns.go  
github.com/sagernet/sing-box/experimental/libbox/panic.go  
github.com/sagernet/sing-box/experimental/libbox/deprecated.go  
github.com/sagernet/sing-box/experimental/libbox/http.go  
github.com/sagernet/sing-box/experimental/libbox/log.go  
github.com/sagernet/sing-box/experimental/libbox/memory.go  
github.com/sagernet/sing-box/experimental/libbox/monitor.go  
github.com/sagernet/sing-box/experimental/libbox/pidfd_android.go  
github.com/sagernet/sing-box/experimental/libbox/pprof.go  
github.com/sagernet/sing-box/experimental/libbox/profile_import.go  
github.com/sagernet/sing-box/experimental/libbox/remote_profile.go  
github.com/sagernet/sing-box/experimental/libbox/service.go  
github.com/sagernet/sing-box/experimental/libbox/service_other.go  
github.com/sagernet/sing-box/experimental/libbox/link_flags_unix.go  
github.com/sagernet/sing-box/experimental/libbox/service_error.go  
github.com/sagernet/sing-box/experimental/libbox/service_pause.go  
github.com/sagernet/sing-box/experimental/libbox/setup.go  
github.com/sagernet/sing-box/experimental/libbox/tun.go  
github.com/sagernet/sing-box/experimental/libbox/tun_name_linux.go  
github.com/sagernet/sing-box/build/amd64/libbox/go_libboxmain.go  
github.com/sagernet/sing-box/experimental/libbox/platform.go  
github.com/sagernet/sing-box/build/amd64/libbox/go_main.go  
github.com/sagernet/sing-box/build/amd64/libbox/seq.go  
github.com/sagernet/sing-box/build/amd64/libbox/seq_android.go  
path    github.com/sagernet/sing-box/build/amd64/libbox  
lib/arm64-v8a/libbox.soPK  
lib/armeabi-v7a/libbox.soPK  
lib/x86/libbox.soPK  
       lib/x86_64/libbox.soPK
.....

Удивительно, но они даже не умудрились почистить ссылки на go пакеты зависимости через -ldflags="-s -w". Кстати распаковав APK и зайдя в /lib/$(ARCH)/ можно увидеть libbox.so, который в очередной раз показывает нам что они просто забрали себе свободный софт (GPLv3.0) в бэкенд и называют его “своей, запатентованной технологией” Понятно, осталось только понять какой же из всех возможных протоколов этот сервис реально использует.

Посмотрим на активность через PCAPDroid (с Google Play версией Kakadu). Раз в 30 секнунд приложение отправляет DNS запросы на домены google-statistics.com, say-today.ru и firebaselogging.googleapis.com. firebaselogging - понятно, это FireBase, сервис через который работают все уведомления в Android. Но вот первое и второе это какие то левые, судя по дизайну вайбкод сайты, что смущает.

Скрин сайта заглушки

Скрин сайта заглушки

В прочем метриках нет ничего удивительного. Никаких данных все равно не передается, летят только DNS запросы. Да и когда приложение выключено никаких запросов нет. К этому вернемся попозже.

Анализ сетевого поведения

Я послушал их трафик через Wireshark, отталкиваясь от резульатов я могу сказать что вероятнее всего они используют VLESS + Reality связку, стандартную на данный момент, по тому что характерных хендшейков иных протоколов вроде Hys2 (QUIC), WG (Noise_ik), ShadowSocks я не наблюдаю, также при включении он всегда стучит на русский IP с ISP SELECTEL и SNI say-today.ru.

Скрин дампа WireShark

Скрин дампа WireShark

Обратите внимание на пакет 9156: 9156 192.168.240.112 155.212.215.82 TLSv1.3 609 ClientHello (SNI=say-today.ru) тот самый SNI на счет которого отправлялись DNS запросы. А сам по себе конфиг использует http/1.1 который выглядит абсолютно также как обычный GET запрос на сайт, настройки неплохие.

Но на деле это может быть только SNI, проверим DNS запись, совпадает ли SNI с доменом?

namilsk@mpc ~> nslookup say-today.ru
Server:         8.8.8.8  
Address:        8.8.8.8#53  
  
Non-authoritative answer:  
Name:   say-today.ru  
Address: 155.212.215.82

и второй

namilsk@mpc ~> nslookup google-statistics.com
Server:         8.8.8.8  
Address:        8.8.8.8#53  
  
Non-authoritative answer:  
Name:   google-statistics.com  
Address: 155.212.215.82

Все правильно, но еще раз напоминаю что я НЕ подключался к say-today.ru напрямую, от чего можно сделать вывод что это балансировщик или часть прокси-цепи за сайтом-заглушкой (Xray fallback на веб сервер локалхоста) по тому что все сервера ведут туда. (А судя по их tik-tok который я начал смотреть чуть чаще так и есть, это часть цепочки прокси. Но в целом я не могу точно сказать реально ли один у них один сервер или нет, то требует уже реверс-инжиниринга)

Дальше я заинтересовался теми самыми “вайбкод сайтами” который мы видели выше, google-statistics и say-today. Они имеют один IP, одни номера телефонов которые отличаются только последней цифрой (+7(495)128449{0,2}). Я отправил заявку с TempMail и левым номером на этот сайт - ответа ноль.

Ну, я думаю, тут и в воду глядеть не надо, чтобы понять, что это просто две заглушки без реальной смысловой нагрузки:

  • Нет ценообразования у, казалось бы, бизнес-сайтов

  • Нет ответа на заявки (ни автоматического, ни реального)

  • Близкий к вайб-коду дизайн

  • Одинаковые номера телефонов (вероятно, фиктивные, отличие только в последней цифре)

  • Один IP

  • Одинаковые формы подачи заявок (отсутствие ЛК/регистрации уже должно настораживать, если бы это был реальный сервис)

  • Обфусцированный код

И что собственно не так? Почему я говорю что настройки хорошие но все равно продолжаю гнать на этот VPN?

А потому что устойчивость к блокировкам. Ее нет. Он централизован: каждый раз при подключении все ваши адреса будут стучать на один балансировщик или одну часть цепи, IP которой пока что чудом остался нетронутым РКН; а когда до него доберутся, документы не гарантируют их ответственности за их лежащие сервера. По крайней мере, сколько я его не тыкал, менял сервера, перезапускал и исполнял прочие действия, которые могут его стриггерить, ничего не поменялось. (Кстати, бесплатный премиум, который они дают для тестов на два дня, так у меня и не завелся.)

И последний штрих:

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

- проблем у интернет-провайдера;
- государственных блокировок;
- перегрузки сети;
- ошибок на устройстве пользователя.
  
Мы не несем ответственности за любые убытки или неудобства, связанные с использованием Сервиса, включая, но не ограничиваясь:

- потерей данных;
- нарушением законодательства;
- проблемами с подключением;
- неисправностями оборудования.

Здесь вы видите фактически полное снятие ответственности. Вы — заплатили, Kakadu — не обязуется предоставлять вам гарантии на рабочее подключение. Похвалить можно только за политику возврата, она у них приятная. Хотя, впрочем, ничего удивительного — это стандартная юридическая защита сервиса.

Итого:

  • Инфраструктурное бутылочное горло в лице одного входного сервера. (В одном из их рекламных видео которое крутилось вокруг доп. тарификации зарубежного трафика было заявлено что “Весь их трафик идет сквозь русские сервера дальше в Европу”, отсюда мы можем видеть что мои расследования были частично подтверждены, но точно утверждать нельзя тк декомпиляцией я не занимался)

  • Отсутствие гарантий на работоспособность (юридическая база большинства таких сервисов, терпимо)

  • Украденный свободный софт (нарушена лицензия GPLv3.0, которая требует открыть код программы если она была модифицирована, а также указывать авторство если софт под этой лицензией используется в проприетарном продукте. Ни одно из требований не соблюдено.)

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

А лучше - потратьте пару вечеров и поднимите все свое, за такие-же деньги вы сможете получить не ограниченное кол-во устройств, минимальные задержки и высокую скорость.