Posts of DEV: Рубиновые тона

newest first

#1441Link preview
Views418−38%vs avg
Forwards2
Reactions11
Comments—
#1440Photo
Views597−11%vs avg
Forwards10
Reactions6
Comments—
Views growthHide views growth

Views growth

Hours after publication

Show as table
Hours after publicationViews
0 h0
3 h318
4 h360
15 h440
27 h509
76 h597
  1. After 6 hours360
  2. After 24 hours509
  3. Total to date597
#1439Text

И немного из рубрики "записки на манжетах", коей не было сколько-то месяцев... Чем дальше я продвигаюсь в плейлисте про абстрактную алгебру, тем больше думаю, как, вероятно, тяжело это давалось бы студентам в среднестатистическом институте. Просто я хорошо помню эти суровые книги, в которых всё всегда было *очевидно* и вытекало из какой-нибудь леммы номер 1.8, а если тебе не очевидно - ну ты просто дурак. Почему-то запомнился один учебник по программированию, переведённый с английского. Он прямо сломал парадигму, потому что он разговаривал с тобой на равных и *вежливо*. Разумеется, это был далеко не первый учебник по разработке, но именно он оказался какой-то "не такой". Потому что старые учебники - они прямо были агрессивные и сильно ругались. "ТЫ ВООБЩЕ КТО ТАКОЙ? *Меня* написали самые лучшие, самые бородатые мужики в самых растянутых свитерах, лучшие из лучших в СССР! Ты вообще знаешь, мелкий засранец, сколько миллионов - сотен миллионов! - жило в СССР? Так вот самые крутые из этих миллионов создали меня! Поэтому, сопляк, сиди тихо и слушай. И *я* говорю тебе, что вот это следствие *очевидным образом* вытекает из леммы 1.8. Понял?! А если не понял, я надеру тебе задницу!". Впрочем, я тоже, вероятно, грешу такими заходами, что, мол, "тут всё просто", но стараюсь этого избегать, насколько возможно. Лучше повторить несколько раз, чем понадеяться, что слушателю будет всё очевидно 😂

Open in Telegram
Views499−26%vs avg
Forwards5
Reactions16
Comments—
Views growthHide views growth

Views growth

Hours after publication

Show as table
Hours after publicationViews
0 h0
3 h172
8 h366
26 h433
38 h464
74 h499
  1. After 6 hours366
  2. After 24 hours433
  3. Total to date499
#1438Text

Как взломать криптографию за четыре попытки, или Индийский центр сертификации наносит ответный удар 🤡 Недавно выяснилось, что у нескольких промежуточных центров сертификации индийской компании eMudhra приватные ключи были числами 4, 56, 66, 115, 155, 156, 230 и 237. Да-да, один из приватных ключей был буквально 4 (при этом использовалась вполне серьёзная эллиптическая кривая P-384, рассчитанная на 192-битную криптографическую стойкость). В нормальных условиях восстановить приватный ключ по публичному практически невозможно. Но если приватный ключ равен 4, то взлом выглядит примерно так: from cryptography.hazmat.primitives.asymmetric import ec curve = ec.SECP384R1() # Представим, что CA сгенерировал ключ 4. private_key = ec.derive_private_key(4, curve) public_key = private_key.public_key().public_numbers() # Атакующий знает только публичный ключ. for candidate in range(1, 256): test = ec.derive_private_key(candidate, curve) point = test.public_key().public_numbers() if (point.x, point.y) == (public_key.x, public_key.y): print(f"ВЗЛОМАЛИ: {candidate}") break Почему это плохо? Центры сертификации (они же "удостоверяющие центры") выпускают цифровые сертификаты, с помощью которых браузеры проверяют подлинность HTTPS-сайтов. Если злоумышленник получает приватный ключ доверенного промежуточного CA, он потенциально может выпускать поддельные сертификаты для чужих доменов и использовать их для перехвата соединений. Самое забавное, что математика P-384 не сломалась, просто вместо случайного числа из примерно 2^384 возможных значений система использовала числа, которые можно перебрать за долю секунды. И да, теоретически честный генератор тоже может случайно выдать 4. Просто вероятность этого примерно один шанс на 10^116. А сколько пришлось бы перебирать нормальный ключ? Для P-384 лучший известный универсальный классический алгоритм требует порядка 2^192 операций. Даже если представить фантастический компьютер, выполняющий триллион операций над точками кривой в секунду, поиск занял бы порядка 10^38 лет. Для сравнения, возраст Вселенной — около 13,8 миллиарда лет. То есть взлом занял бы примерно в 10^28 раз больше времени, чем существует Вселенная.

Open in Telegram
Views570−15%vs avg
Forwards11
Reactions8
Comments—
Views growthHide views growth

Views growth

Hours after publication

Show as table
Hours after publicationViews
0 h0
6 h267
11 h448
29 h507
41 h536
77 h570
  1. After 6 hours267
  2. After 24 hours507
  3. Total to date570
#1437Link preview
Views616−9%vs avg
Forwards9
Reactions6
Comments—
Views growthHide views growth

Views growth

Hours after publication

Show as table
Hours after publicationViews
0 h0
10 h452
34 h580
45 h600
70 h616
  1. Total to date616
#1436Link preview
Views617−9%vs avg
Forwards19
Reactions7
Comments—
Views growthHide views growth

Views growth

Hours after publication

Show as table
Hours after publicationViews
0 h0
5 h368
15 h442
27 h496
42 h516
76 h617
  1. After 6 hours368
  2. After 24 hours496
  3. Total to date617
#1435Photo
Views839+24%vs avg
Forwards11
Reactions21
Comments—
Views growthHide views growth

Views growth

Hours after publication

Show as table
Hours after publicationViews
0 h0
5 h450
10 h542
36 h720
71 h839
  1. After 6 hours450
  2. Total to date839
#1434Textedited
Views830+23%vs avg
Forwards5
Reactions17
Comments—
Views growthHide views growth

Views growth

Hours after publication

Show as table
Hours after publicationViews
0 h0
12 h447
33 h656
38 h674
76 h830
  1. Total to date830
#1433Textedited
Views6770%vs avg
Forwards4
Reactions5
Comments—
Views growthHide views growth

Views growth

Hours after publication

Show as table
Hours after publicationViews
0 h0
17 h425
35 h492
68 h677
  1. After 24 hours425
  2. Total to date677
#1432Photo
Views742+10%vs avg
Forwards6
Reactions9
Comments—
Views growthHide views growth

Views growth

Hours after publication

Show as table
Hours after publicationViews
0 h0
57 h715
75 h742
  1. Total to date742
#1423Link preview

В общем, мне тут особо было нечего делать и я подумал создать небольшой скрипт для решения простой задачи - поиска открытых PR в интересующих репозитариях. Конечно, о появлении PR и без того должен сообщать Github, но проблемы начинаются, когда репозитариев слишком много, и они торчат в разных организациях. Вопрос лично для меня сводился к чему-то вроде "какие существуют открытые PR в моих собственных репо, а также в указанных организациях?". Но другая сложность в том, что в указанной организации может быть полно репо, с которыми я вообще не работаю, и они меня мало интересуют. Собственно, скрипт эту задачу и решает: находит репо в разных профилях, по дефолту убирает архивированные и такие, где PR отключены, смотрит в каких репо юзер что-то делал, и потом выдаёт ограниченный список PR. Это особенно удобно для поиска каких-то древних PR, про которые вы вообще уже забыли. Этот скрипт доступен в видe ruby gem, можно пользоваться https://github.com/bodrovis/nya_pr Потребуется только сгенерировать токен с правами чтения в соответствующих организациях.

Open in Telegram
Views1,886+180%vs avg
Forwards6
Reactions15
Comments—
#1421Link previewedited

Гугл проказничает опять. На сей раз они начали менять то, как выглядят ссылки в поисковой выдаче. Если раньше в SERP обычно лежали обычные ссылки на целевые сайты, то теперь вместо них можно получить что-нибудь вроде /goto?url=CAESabrakadabra. Такая ссылка сначала ведёт в Google, а уже оттуда вас перенаправляют на нужный сайт. Для обычного пользователя разницы почти никакой, а вот для скрейпера — уже интереснее, потому что такие ссылки выдаются не всегда и не всем, а если вы их получили, из HTML уже нельзя просто вытащить нормальный целевой URL. Я поисследовал эту штуку и написал статью о том, что вообще представляют собой новые ссылки /goto, что находится внутри загадочных CAES токенов (спойлер: внутри какая-то криптографическая фиговина, а не просто хитро закодированный URL), насколько их реально декодировать, почему просто вытащить исходный URL из токена не получается и как нормально резолвить такие ссылки на практике. В общем, приятного чтения: https://www.scrapingbee.com/blog/google-goto-redirect-urls/

Open in Telegram
Views1,932+186%vs avg
Forwards14
Reactions27
Comments—
#1419Link preview
Views2,376+252%vs avg
Forwards5
Reactions11
Comments—
#1415Link preview

*Я понял, в чём ваша беда: вы слишком серьёзны. Серьёзное лицо — это ещё не признак ума, господа. Все глупости на земле делаются именно с этим выражением лица. Улыбайтесь, господа. Улыбайтесь!* В общем, книга про ведьмака и возвращение в Элизиум (да, это где смесь Witcher и Disco Elysium) была дописана около месяца тому назад. Всего по объёму около 90-95 тысяч слов, короче в районе "ГП и философский камень" (кхм, эту серию я в своё время разнёс в пух и прах, но в целом отношусь к ней с симпатией). Почитать можно тут https://bodrovis.tech/tags/%D0%B2%D0%B5%D0%B4%D1%8C%D0%BC%D0%B0%D0%BA-%D0%B2%D0%BE%D0%B7%D0%B2%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-%D1%8D%D0%BB%D0%B8%D0%B7%D0%B8%D1%83%D0%BC/ Скажу сразу: присутствует нецензурная лексика и темы, не предназначенные для лиц младше 18 лет (впрочем, всё это вымышленное и ненастоящее). Аудиоверсия этого безобразия тоже записана и будет опубликована после переслушивания и подготовки обложки. Это некоммерческая инициатива, которую реализовали полтора человека из Cat&Mouse team, так что мне будет приятно, если вы поделитесь ссылкой с друзьями. Клоунов можно не кидать. Спасибо

Open in Telegram
Views2,227+230%vs avg
Forwards7
Reactions25
Comments—
#1413Link preview

Я долго воспринимал Polymarket просто как сайт со ставками на выборы и курс биткоина. Но с инженерной точки зрения это отличный полигон для Web3-разработчика: CLOB, WebSocket-потоки, EIP-712-подписи, несколько API, частичные исполнения и постоянная синхронизация onchain- и offchain-состояний. Гораздо интереснее очередного учебного NFT-маркетплейса. В курсе Guide DAO «Основы Polymarket» за десять модулей собирается TypeScript-проект polymarket-operator: каталог рынков, живая книга ордеров, симулятор исполнения, журнал позиций, анализ кошельков и аварийная остановка. Реальные ордера отправлять не придётся, зато на выходе получается нормальный инженерный проект на стыке backend, real-time data и блокчейна. Заодно сейчас у Guide DAO самая большая скидка года: 60% по промокоду KRUK, даже больше, чем на Black Friday. Одно членство открывает все направления, от Solidity и JS до агентской разработки, продакт-менеджмента и биотека. Оставляй заявку на сайте: https://www.guidedao.xyz/polymarket

Open in Telegram
Views1,835+172%vs avg
Forwards11
Reactions23
Comments—