TGViewer
Channel Public Channel
Лаборатория Лиса

Лаборатория Лиса

@foxfoxcsharp

Ставлю эксперименты с Юнити C#
Subscribers
79
Photos
171
Videos
6
Links
29

Showing posts older than #285 · Back to latest

Older Posts 20 shown
Post #281 133
  • 🔥 6
  • ❤ 1
Post #278 185

This post (sticker, poll or similar) has no web preview. Open in Telegram

  • 🔥 3
  • ❤ 1
Post #277 175
А я все еще скурпулезно и методично пытаюсь заставить работать посткванты.

Я настроил пейплайн Client userspace (PQC) -> Client Kernel -> BPT (Мой новый протокол mini-TCP over UDP) -> Server kernel -> Userspace (PQC)

Это знаете ли сложно =0

Но на самом деле переписывать Liboqs ЕЩЕ сложнее, так как постквантовые алгоритмы очень чувствительны на реализацию.

Мне предложили переписать алгоритмы с выделением памяти и прочего - прочего прямо в kernel, но это открывает целую КУЧУ векторов атак, на самом деле. На много безопаснее сделать это в userspace и не думать об этом.
  • 👏 3
Post #276 135
Я обещал перейти на FireFox, теперь буду сидеть на Firefox =)

Нахер Edge и Хромиум вообще.

Для VPN и Прокси самый удобный по архитектуре, это FireFox, как оказалось, это факты.

На его движке оказывается был сконструирован Tor, кто бы знал, кто бы знал. Я НЕ ЗНАЛ.

Ща буду настраивать под себя
  • ❤‍🔥 6
Post #274 141
Я кстати придумал описание как работает ML-KEM для простых смертных, кто плохо понимает постквантовую криптографию!
Может кому то будет любопытно.

Механизм:
Сервер генерирует приватный ключ ML-KEM алгоритма и из него публичный ключ.

Но, публичный ключ это не совсем ключ, это скорее описание структуры пространства, в которое клиент будет прятать секрет. Буду называть его Seed Server — для простоты аналогия рабочая.

Внимание! Самое прикольное на клиенте.

Клиент генерирует СВОЁ РАНДОМНОЕ ЧИСЛО, это не ключ AES и не ключ Кузнечика и ничего подобного, это просто его личный секрет. Буду называть его Seed Client.

Фокус. Следите за буквами.

Клиент запихивает в функцию ML-KEM(Seed Server + Seed Client) -> Получает СГЕНЕРИРОВАННЫЙ ключ AES или того же Кузнечика ИИИИИИ Шифротекст.

Этот шифротекст представляет из себя массив (набор) данных, в котором Seed Client спрятан на основе структуры Seed Server.

Это отправляется на сервер.

Сервер благодаря своему приватному ключу проводит обратную операцию над массивом данных и восстанавливает тот же самый AES ключ, который получил клиент. Не извлекает его напрямую — а именно приходит к тому же числу независимо.

Это и есть магия KEM.

Можно сказать магия происходит на клиенте. ML-KEM гарантирует, что даже перехватив шифротекст, квантовый компьютер не сможет вскрыть ключ — математика решёток не даёт. Ключа то по факту там нет внутри, там лежит Seed Client, который тоже ничего не даст!

Для понимания почему это так важно:

Классическая криптография на эллиптических кривых работает по простому. У нас есть приватный ключ и публичный ключ. Публичный ключ отправляется клиенту. Клиент ГЕНЕРИРУЕТ СВОЙ AES ключ и ЗАШИВАЕТ ЕГО В ПУБЛИЧНЫЙ КЛЮЧ от сервера. То есть шифротекст СОДЕРЖИТ в себе ключ — это первый момент. Второй момент: при передаче ПУБЛИЧНОГО ключа, из-за математики эллиптических кривых, квантовый компьютер сможет провернуть обратно публичный ключ в приватный — и тогда вскрыть шифротекст. Это особенности эллиптических кривых и алгоритма Шора.

В ML-KEM ключа в шифротексте нет в принципе. Квантовому компьютеру нечего вскрывать.
  • 🔥 2
  • ❤‍🔥 1
Post #273 119
Я уперся в PQC реализации библиотек, для их адекватной работы стек должен быть +- 120 Кб, а в kernel в 10 меньше, к сожалению.

Похоже плакала моя идея PQC примитивов в kernel.

Самое забавное, что оказывается об этом уже писали и это известное ограничение, которое я проигнорировал, пока сам не столкнулся. Хаха =)

Как минимум транспорт у меня работает, передать в kernel пакет будет не сложно. По крайней мере я на это надеюсь.
Post #272 158
Объясняю для людей, которые не понимают что я делаю.

Я когда то давно писал о том, что есть инструмент, который называется Rosenpass (Немецкий заяц)

Проблема в том, что он работает на голом TCP (Протокол, который позволяет гарантированно доставить большой пакет данных) Это отдельный порт сетевой на сервере. + один паттерн обнаружения

Wireguard работает ТОЛЬКО на UDP, это 1500 байт МАКСИМУМ. А я написал модуль, который имитирует TCP протокол ВНУТРИ UDP протокола. Или правильнее сказать ПОВЕРХ UDP.

Благодаря чему, я могу отправлять очень большие пакеты без потери данных и в правильном порядке.

На данном скриншоте я отправил 12 тысяч байт и оно пришло.

Для чего?

ML-Kem и ML-DSA, это очень простые в вычислении алгоритмы, но данные, которые они генерируют, очень массивные. Это проблема для UDP, напомню, там 1500 байт максимум, когда как данные ML-DSA в среднем 5 тысяч байт.
  • ❤‍🔥 3
  • ❤ 2
Post #271 133
ПОБЕДА!

H5 Заголовок Wireguard РАБОТАЕТ!

Скоро туда засуну посткванты =)
  • 🔥 3
Post #270 119
Сколько вам потребовалось времени на настройку CI/CD билда QT приложения на обе платформы?

ДА....

А если серьезно, я не знал, что линукс НА СТОЛЬКО КАПРИЗНЫЙ К РЕГИСТРУ НАЗВАНИЯ ИМЕН.

Ну типа для него Versioninfo.h и VersionInfo.h это СОВЕРШЕННО РАЗНЫЕ ФАЙЛЫ, хотя для Виндовс вообще не принипиально, там компилятор их хавает без проблем. Все эти сломанные билды, только линукс.

И то, мне пришлось аж почистить кеш файлов, что бы оно заработало, ведь сменив названия в git, гит просто их проигнорирует, ему как ВИндовсу пофигу на регистры.

git rm --cached -f Versioninfo.h
git add VersionInfo.h
git commit -m "Force fix case sensitivity in git"
git push origin master

И все заработает прекрасно. Кто бы знал, кто бы знал
Post #269 114
Вау, оно реально работает на линухе!!!

И установка и распаковка и контроль версий! Крута!

С первого раза на линуксе завелось, проработал хорошо)

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

По этому пока что закрою билд, как только выпущу стабильную версию игры, открою как на линукс, так и на виндовс билды =)
  • 🔥 2
Post #268 93
Ох, Озушка моя Озушка =0
Как мне тебя не хватает это жесть
Post #267 129
Хорошие новости!

Я запустил свой лаунчер! Теперь можно смотреть на прогресс игры, как вообще там дела идут

Пощупать механики и что вообще там происходит =)

https://foxhardsoftness.ru/launcher

Пока что доступна версия для Windows, так как билда игры на линукс у меня физически нет пока что.
  • 🔥 4
  • 🥰 1
  • 🙏 1
Post #266 188
А вы знали о таком инструменте?
Я нет!
Вот показываю.

Ставите:

sudo apt install timg


Выводите в консоль любую картинку:

timg image.png


Прикольно помогает посмотреть хотя бы примерно что находится в изображении на сервере, если вы не используете Kitty или Putty или XServer =)
  • ❤‍🔥 3
Post #265 128
Как много я писал вам о Timing Attack уязвимостях (Относительно недавно можно сказать узнал об этом)

Но просматривая код своего старого проекта, которому уже почти 2 года (ASP.Net на котором держится мой сайт)

Там есть restAPI функционал для лаунчера игры. И да, я использую аутентификацию лаунчера по API ключу (Для того, что бы кидди скрипты не смогли заддосить мой API загрузками файлов)

Так как код старый, я допустил там как раз ту самую уязвимость! Хаха, кто бы мог подумать =)

if (expectedSignature != receivedSignature) <-- Вот она
{
context.Result = new UnauthorizedResult();
return;
}


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

Но фиксится это просто

byte[] expectedBytes = Convert.FromBase64String(expectedSignature);
byte[] receivedBytes = Convert.FromBase64String(receivedSignature);

if (!CryptographicOperations.FixedTimeEquals(expectedBytes, receivedBytes))
{
context.Result = new UnauthorizedResult();
return;
}


Не забудьте добавить библиотеку
using System.Security.Cryptography;


Так что перепроверьте свои API приложения что бы там небыло таких приколов. Исправление занимает БУКВАЛЬНО 1 минуту, но проактивно вас защищает.

#CyberSecurity #DotNet #TimingAttack #SecureCoding #APISecurity #FoxHardSoftness
  • 🔥 2
Post #264 154
Почему ваш платный VPN (Расширение для браузера) не работает с YouTube — и вы об этом не знаете

Сегодня у меня отлетел почему то платный VPN (Расширение для браузера, которое проксирует нужные конкретные сайты)

YouTube, как вы знаете, это не один сайт. Когда вы добавляете youtube.com в список проксируемых доменов — вы проксируете только интерфейс. Само видео уходит через googlevideo.com, превьюшки через ytimg.com, аватарки через yt3.ggpht.com. И всё это летит мимо вашего прокси напрямую. (Видимо в моем сервисе про это забыли, иначе я не могу понять почему он отвалился)

Браузерное расширение (FoxyProxy, любой платный VPN-плагин) работает на уровне URL каждого запроса. Оно не знает "из какой вкладки пришёл этот запрос". Запрос на r4---sn-xxx.googlevideo.com выглядит для него как просто запрос в никуда — под правило youtube.com не попадает, идёт напрямую.
Итого для нормальной работы YouTube нужно добавить:
youtube.com
googlevideo.com
ytimg.com
youtu.be
yt3.ggpht.com

Часто платные VPN-расширения просто держат актуальный список таких доменов внутри. Вот и весь секрет за ваши деньги.

Firefox кстати единственный браузер где это можно решить нормально — там есть browser.proxy.onRequest API, который позволяет смотреть из какой вкладки пришёл запрос и роутить весь трафик вкладки через один прокси независимо от домена.
Лисята молодцы, сделали правильно, именно этот фактор подтолкнул меня на переезд с Edge на Firefox.

В Chrome/Edge этого API нет, там только PAC-скрипты с перечислением доменов вручную.

FoxyProxy кстати работает именно через такой подход в Firefox — и поэтому там это работает лучше чем в Chromium-браузерах. Там можно "обернуть" сайты в некие контейнеры.

Если у вас отвалился Прокси подобный ВПН, просто добавьте больше доменов с ним связанных и все заработает.
  • ❤ 1
  • ❤‍🔥 1
  • 🤔 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →