У меня деплой CI шредингера, пока не наблюдаешь, он в суперпозиции, может упасть на docker pull
Как только наблюдаешь, все деплоится хорошо =D
Как только наблюдаешь, все деплоится хорошо =D
❤🔥2😁1
Ну здрасте приехали, а я говорил, что мы скоро будем контейнеры на флешках передавать. Вот пришло время.
Буду сейчас образы брать из своего регистри, раз такая пляска со стороны Майкрософт. Это что за фигня такая, что за санкции 401 ошибка? Это глюк или санкции?
Ошибка 429, слишком много запросов, лол, вопрос закрыт.
Из за этого 401 ошибка тоже возникает прсото потому что токен не сгенерировался из за 429 ошибки
Нейронка говорит, что просто тупо слишком много запросов на Майкрософт, от чего срабатывает рейтлимит и банит нахер соединения. Это печально
Буду сейчас образы брать из своего регистри, раз такая пляска со стороны Майкрософт. Это что за фигня такая, что за санкции 401 ошибка? Это глюк или санкции?
Ошибка 429, слишком много запросов, лол, вопрос закрыт.
Из за этого 401 ошибка тоже возникает прсото потому что токен не сгенерировался из за 429 ошибки
Нейронка говорит, что просто тупо слишком много запросов на Майкрософт, от чего срабатывает рейтлимит и банит нахер соединения. Это печально
Почему ваш платный VPN (Расширение для браузера) не работает с YouTube — и вы об этом не знаете
Сегодня у меня отлетел почему то платный VPN (Расширение для браузера, которое проксирует нужные конкретные сайты)
YouTube, как вы знаете, это не один сайт. Когда вы добавляете
Браузерное расширение (FoxyProxy, любой платный VPN-плагин) работает на уровне URL каждого запроса. Оно не знает "из какой вкладки пришёл этот запрос". Запрос на
Итого для нормальной работы YouTube нужно добавить:
Часто платные VPN-расширения просто держат актуальный список таких доменов внутри. Вот и весь секрет за ваши деньги.
Firefox кстати единственный браузер где это можно решить нормально — там есть
Лисята молодцы, сделали правильно, именно этот фактор подтолкнул меня на переезд с Edge на Firefox.
В Chrome/Edge этого API нет, там только PAC-скрипты с перечислением доменов вручную.
FoxyProxy кстати работает именно через такой подход в Firefox — и поэтому там это работает лучше чем в Chromium-браузерах. Там можно "обернуть" сайты в некие контейнеры.
Если у вас отвалился Прокси подобный ВПН, просто добавьте больше доменов с ним связанных и все заработает.
Сегодня у меня отлетел почему то платный 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
Как много я писал вам о Timing Attack уязвимостях (Относительно недавно можно сказать узнал об этом)
Но просматривая код своего старого проекта, которому уже почти 2 года (ASP.Net на котором держится мой сайт)
Там есть restAPI функционал для лаунчера игры. И да, я использую аутентификацию лаунчера по API ключу (Для того, что бы кидди скрипты не смогли заддосить мой API загрузками файлов)
Так как код старый, я допустил там как раз ту самую уязвимость! Хаха, кто бы мог подумать =)
работает это по тому же самому принципу, как только не совпадает один байт, он прерывается, что дает разное время.
Но фиксится это просто
Не забудьте добавить библиотеку
Так что перепроверьте свои API приложения что бы там небыло таких приколов. Исправление занимает БУКВАЛЬНО 1 минуту, но проактивно вас защищает.
#CyberSecurity #DotNet #TimingAttack #SecureCoding #APISecurity #FoxHardSoftness
Но просматривая код своего старого проекта, которому уже почти 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
Хорошие новости!
Я запустил свой лаунчер! Теперь можно смотреть на прогресс игры, как вообще там дела идут
Пощупать механики и что вообще там происходит =)
https://foxhardsoftness.ru/launcher
Пока что доступна версия для Windows, так как билда игры на линукс у меня физически нет пока что.
Я запустил свой лаунчер! Теперь можно смотреть на прогресс игры, как вообще там дела идут
Пощупать механики и что вообще там происходит =)
https://foxhardsoftness.ru/launcher
Пока что доступна версия для Windows, так как билда игры на линукс у меня физически нет пока что.
🔥4🥰1🙏1
Вау, оно реально работает на линухе!!!
И установка и распаковка и контроль версий! Крута!
С первого раза на линуксе завелось, проработал хорошо)
Только из за того, что небыло билда на линукс, сейчас там висит версия с переработкой менюшки, от чего игра по факту сломана.
По этому пока что закрою билд, как только выпущу стабильную версию игры, открою как на линукс, так и на виндовс билды =)
И установка и распаковка и контроль версий! Крута!
С первого раза на линуксе завелось, проработал хорошо)
Только из за того, что небыло билда на линукс, сейчас там висит версия с переработкой менюшки, от чего игра по факту сломана.
По этому пока что закрою билд, как только выпущу стабильную версию игры, открою как на линукс, так и на виндовс билды =)
🔥2
Сколько вам потребовалось времени на настройку CI/CD билда QT приложения на обе платформы?
ДА....
А если серьезно, я не знал, что линукс НА СТОЛЬКО КАПРИЗНЫЙ К РЕГИСТРУ НАЗВАНИЯ ИМЕН.
Ну типа для него Versioninfo.h и VersionInfo.h это СОВЕРШЕННО РАЗНЫЕ ФАЙЛЫ, хотя для Виндовс вообще не принипиально, там компилятор их хавает без проблем. Все эти сломанные билды, только линукс.
И то, мне пришлось аж почистить кеш файлов, что бы оно заработало, ведь сменив названия в git, гит просто их проигнорирует, ему как ВИндовсу пофигу на регистры.
И все заработает прекрасно. Кто бы знал, кто бы знал
ДА....
А если серьезно, я не знал, что линукс НА СТОЛЬКО КАПРИЗНЫЙ К РЕГИСТРУ НАЗВАНИЯ ИМЕН.
Ну типа для него 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
И все заработает прекрасно. Кто бы знал, кто бы знал
Объясняю для людей, которые не понимают что я делаю.
Я когда то давно писал о том, что есть инструмент, который называется Rosenpass (Немецкий заяц)
Проблема в том, что он работает на голом TCP (Протокол, который позволяет гарантированно доставить большой пакет данных) Это отдельный порт сетевой на сервере. + один паттерн обнаружения
Wireguard работает ТОЛЬКО на UDP, это 1500 байт МАКСИМУМ. А я написал модуль, который имитирует TCP протокол ВНУТРИ UDP протокола. Или правильнее сказать ПОВЕРХ UDP.
Благодаря чему, я могу отправлять очень большие пакеты без потери данных и в правильном порядке.
На данном скриншоте я отправил 12 тысяч байт и оно пришло.
Для чего?
ML-Kem и ML-DSA, это очень простые в вычислении алгоритмы, но данные, которые они генерируют, очень массивные. Это проблема для UDP, напомню, там 1500 байт максимум, когда как данные ML-DSA в среднем 5 тысяч байт.
Я когда то давно писал о том, что есть инструмент, который называется Rosenpass (Немецкий заяц)
Проблема в том, что он работает на голом TCP (Протокол, который позволяет гарантированно доставить большой пакет данных) Это отдельный порт сетевой на сервере. + один паттерн обнаружения
Wireguard работает ТОЛЬКО на UDP, это 1500 байт МАКСИМУМ. А я написал модуль, который имитирует TCP протокол ВНУТРИ UDP протокола. Или правильнее сказать ПОВЕРХ UDP.
Благодаря чему, я могу отправлять очень большие пакеты без потери данных и в правильном порядке.
На данном скриншоте я отправил 12 тысяч байт и оно пришло.
Для чего?
ML-Kem и ML-DSA, это очень простые в вычислении алгоритмы, но данные, которые они генерируют, очень массивные. Это проблема для UDP, напомню, там 1500 байт максимум, когда как данные ML-DSA в среднем 5 тысяч байт.
❤🔥3❤2
Я уперся в PQC реализации библиотек, для их адекватной работы стек должен быть +- 120 Кб, а в kernel в 10 меньше, к сожалению.
Похоже плакала моя идея PQC примитивов в kernel.
Самое забавное, что оказывается об этом уже писали и это известное ограничение, которое я проигнорировал, пока сам не столкнулся. Хаха =)
Как минимум транспорт у меня работает, передать в kernel пакет будет не сложно. По крайней мере я на это надеюсь.
Похоже плакала моя идея PQC примитивов в kernel.
Самое забавное, что оказывается об этом уже писали и это известное ограничение, которое я проигнорировал, пока сам не столкнулся. Хаха =)
Как минимум транспорт у меня работает, передать в kernel пакет будет не сложно. По крайней мере я на это надеюсь.
Я кстати придумал описание как работает 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 ключа в шифротексте нет в принципе. Квантовому компьютеру нечего вскрывать.
Может кому то будет любопытно.
Механизм:
Сервер генерирует приватный ключ 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
А я все еще скурпулезно и методично пытаюсь заставить работать посткванты.
Я настроил пейплайн Client userspace (PQC) -> Client Kernel -> BPT (Мой новый протокол mini-TCP over UDP) -> Server kernel -> Userspace (PQC)
Это знаете ли сложно =0
Но на самом деле переписывать Liboqs ЕЩЕ сложнее, так как постквантовые алгоритмы очень чувствительны на реализацию.
Мне предложили переписать алгоритмы с выделением памяти и прочего - прочего прямо в kernel, но это открывает целую КУЧУ векторов атак, на самом деле. На много безопаснее сделать это в userspace и не думать об этом.
Я настроил пейплайн Client userspace (PQC) -> Client Kernel -> BPT (Мой новый протокол mini-TCP over UDP) -> Server kernel -> Userspace (PQC)
Это знаете ли сложно =0
Но на самом деле переписывать Liboqs ЕЩЕ сложнее, так как постквантовые алгоритмы очень чувствительны на реализацию.
Мне предложили переписать алгоритмы с выделением памяти и прочего - прочего прямо в kernel, но это открывает целую КУЧУ векторов атак, на самом деле. На много безопаснее сделать это в userspace и не думать об этом.
👏3