Univelis / Foxspeed
Сегодня в Воронеже выступаем на фурфесте. Позади 9 часов дороги, но кажется, оно того стоило: опять этот вайб небольших городов и локальных фестов :3 Через пару дней наконец расскажу, как мы отыграли в Москве.
Хороший фест, мне понравился!
Команда проводила его первый раз, но получилось неплохо, ещё и мы выступили ок. Буду ещё вспоминать и фест, и Воронеж :3
Впереди сон и обратно в Москву 6 часов.
Команда проводила его первый раз, но получилось неплохо, ещё и мы выступили ок. Буду ещё вспоминать и фест, и Воронеж :3
Впереди сон и обратно в Москву 6 часов.
❤5👍4🥰3
Univelis / Foxspeed
Сегодня в Воронеже выступаем на фурфесте. Позади 9 часов дороги, но кажется, оно того стоило: опять этот вайб небольших городов и локальных фестов :3 Через пару дней наконец расскажу, как мы отыграли в Москве.
Как фурри-группа, мы обязательно сфоткались с котёнком с улицы Лизюкова :3
И домой.
И домой.
👍14❤6🥰5🌚1
Forwarded from Andrey Novozhilov (blackgaze, ambient, etc.)
зря вы отписываетесь, я же ещё новый сбор денег не объявлял
😁5🦄5❤1🆒1
Друзья, я вступил в серьезный бизнес-конфликт с могущественными людьми. Они кинули моего человека на деньги, стали ему угрожать, я вступился. Они начали угрожать мне. Человека спасли, но мне теперь обещают очень большие проблемы. Я их послал нахуй. Они пообещали мне масштабную кампанию по дискредитации.
Точно могу сказать, что реально мне они сделать ничего не смогут, оказалось, что руки коротки, у меня тоже есть могущественные заступники. Но анонимно гадить они начали, все по классике: оскорбительные выдумки, доксинг и клевета моим партнерам, друзьям и родственникам. Из-за денег и того, что я один из немногих, кто смог их послать, они в бешенстве. Поэтому не гнушаются ничем.
Разумеется, ничего реального на меня нарыть не удалось, поэтому придумали обвинения в лгбт, педофилии и еще чёрт знает в чем, придумывают по ходу. Не ведитесь, будьте бдительны — кампания ведется, разумеется, от анонимных аккаунтов и без каких-либо реальных доказательств. На их условия я не соглашусь, поэтому грязь на меня будут лить, пока не надоест. Но они трусы, так что в итоге они конечно обломаются (по большому счету, уже обломались).
Спасибо за внимание.
Точно могу сказать, что реально мне они сделать ничего не смогут, оказалось, что руки коротки, у меня тоже есть могущественные заступники. Но анонимно гадить они начали, все по классике: оскорбительные выдумки, доксинг и клевета моим партнерам, друзьям и родственникам. Из-за денег и того, что я один из немногих, кто смог их послать, они в бешенстве. Поэтому не гнушаются ничем.
Разумеется, ничего реального на меня нарыть не удалось, поэтому придумали обвинения в лгбт, педофилии и еще чёрт знает в чем, придумывают по ходу. Не ведитесь, будьте бдительны — кампания ведется, разумеется, от анонимных аккаунтов и без каких-либо реальных доказательств. На их условия я не соглашусь, поэтому грязь на меня будут лить, пока не надоест. Но они трусы, так что в итоге они конечно обломаются (по большому счету, уже обломались).
Спасибо за внимание.
😢29🤝16😱10🙈3🔥2😁2🤔2🖕2🫡2🆒1😎1
Вы могли пропустить (я вот пропустил), что формат 65х30 незаметно стал новым стандартом одноплатников.
Все видели RPi Zero, он давно существует, но другие вендоры наконец распробовали этот формфактор, и наклепали уже штук 10 плат на других процах. Теперь и сама RPi Foundation так же продолжила их МК RP3250.
Плюсы формата:
1. расположить одной линией флеш-оперативку-процессор-радио просто напрашивалось, а два Type-C USB и опционально HDMI или MIPI — как бонус сбоку.
2. это ~втрое компактнее прошлого стандарта RPi (86*54? 85*56? вот какой-то из них, ага), а мы же за ползучую миниатюризацию.
3. наконец-то понятное разделение сторон: одна сторона с Type-C наружу, другая с гребёнкой внутрь. В RPi мне не нравилось, что девайс нужно строить вокруг одноплатника, ты полностью зависишь от его размеров и разъёмов; теперь ограничений нет.
Ну а главное — это как 2 батарейки 18650 с 6 мм зазором! В него кнопки, антенну, датчики, зарядник/балансир лития, что угодно!
Можно сделать батарейный комп с датчиками, или беспроводную камеру с распознаванием лиц.
Или сложить 2*18650 и в той же плоскости рядом комп с платой RTL-SDR над ним, антенной сбоку и солнечной батареей 70*70.
Да, разъёмов мало, полноразмерных USB и тем более Ethernet там (почти) не бывает. Но к половине этих плат есть платы расширения с USB, Ethernet, питанием и даже RS-485.
Это не минус: плата компьютера очень тонкая, а всё высокое теперь живёт на отдельном модуле.
Такая этажерка имеет всё то, что и "большой" одноплатник, а места занимает гораздо меньше + теперь можно отказаться от кучи разъёмов/места, если не нужны; или сделать свою плату.
На картинке вот это:
Sakura Pi RK3308B ... Banana Pi M2 Zero
XPI-3566-ZERO ... Radxa Zero 2 Pro
Radxa Cubie A7Z ... Radxa ROCK Pi S0
Orange Pi Zero 2W ... Raspberry Pi Zero W
Два компа тут с моим любимым Rockchip RK3308, а ещё один с мощным RK3566. Себе я купил Orange Pi Z 2W и доволен: процы тут такие же, как в больших одноплатниках, просто КПД выше :)
Все видели RPi Zero, он давно существует, но другие вендоры наконец распробовали этот формфактор, и наклепали уже штук 10 плат на других процах. Теперь и сама RPi Foundation так же продолжила их МК RP3250.
Плюсы формата:
1. расположить одной линией флеш-оперативку-процессор-радио просто напрашивалось, а два Type-C USB и опционально HDMI или MIPI — как бонус сбоку.
2. это ~втрое компактнее прошлого стандарта RPi (86*54? 85*56? вот какой-то из них, ага), а мы же за ползучую миниатюризацию.
3. наконец-то понятное разделение сторон: одна сторона с Type-C наружу, другая с гребёнкой внутрь. В RPi мне не нравилось, что девайс нужно строить вокруг одноплатника, ты полностью зависишь от его размеров и разъёмов; теперь ограничений нет.
Ну а главное — это как 2 батарейки 18650 с 6 мм зазором! В него кнопки, антенну, датчики, зарядник/балансир лития, что угодно!
Можно сделать батарейный комп с датчиками, или беспроводную камеру с распознаванием лиц.
Или сложить 2*18650 и в той же плоскости рядом комп с платой RTL-SDR над ним, антенной сбоку и солнечной батареей 70*70.
Да, разъёмов мало, полноразмерных USB и тем более Ethernet там (почти) не бывает. Но к половине этих плат есть платы расширения с USB, Ethernet, питанием и даже RS-485.
Это не минус: плата компьютера очень тонкая, а всё высокое теперь живёт на отдельном модуле.
Такая этажерка имеет всё то, что и "большой" одноплатник, а места занимает гораздо меньше + теперь можно отказаться от кучи разъёмов/места, если не нужны; или сделать свою плату.
На картинке вот это:
Sakura Pi RK3308B ... Banana Pi M2 Zero
XPI-3566-ZERO ... Radxa Zero 2 Pro
Radxa Cubie A7Z ... Radxa ROCK Pi S0
Orange Pi Zero 2W ... Raspberry Pi Zero W
Два компа тут с моим любимым Rockchip RK3308, а ещё один с мощным RK3566. Себе я купил Orange Pi Z 2W и доволен: процы тут такие же, как в больших одноплатниках, просто КПД выше :)
🔥17❤8👍6
Univelis / Foxspeed
Вы могли пропустить (я вот пропустил), что формат 65х30 незаметно стал новым стандартом одноплатников. Все видели RPi Zero, он давно существует, но другие вендоры наконец распробовали этот формфактор, и наклепали уже штук 10 плат на других процах. Теперь и…
Пост для обсуждения поста про одноплатники
😁8😢3🗿2
Недавно обсудили в нашей компании, что оценивать защищённость разработок лучше не какими-то общепринятыми критериями или метриками, а просто деньгами.
В мире есть некоторые метрики защищённости железа/софта:
- CVSS (0–10 баллов потенциального урона от софта)
- Common Criteria, уровни EAL1–EAL7 с расчётом attack potential
- криптомодульные FIPS 140-3 с уровнями 1–4 от "клянусь, оно работает" до "дрель, морозилка и тепловизор не помогут".
Но всё это не особо мапится в язык бизнеса: даже если руководство хорошо шарит в инфобезе, всё равно нужен перевод. А вот деньги — отлично.
"Этот продукт на 1 млн ₽ взлома" — сразу в топку: хватит интересующегося студента с осциллографом и неделей времени.
"На 10 млн" — уже интересно, можно пообщаться, понять профиль атакующего и посмотреть, что доточить
"На 100 млн" — сразу зелёный свет: такой бюджет есть только у весьма специфичных игроков, да и то, если ROI реально виден.
Подход не новый, но я нечасто вижу его применение, и он отлично ложится на бизнес-слой.
Формально, мы оцениваем не уровень магии защиты, а минимальный бюджет осмысленного атакующего на получение промышленно пригодного эксплойта. Здесь:
- человеко-часы реверсера/лаборатории нужного класса;
- железо: микроскопы, ионный пучок, лазеры для fault-инъекций, xGSPS осциллографы, EM-щупы и т.д. (+амортизация);
- число итераций: сколько раз нужно пересобрать плату, чтобы довести атаку до состояния PoC;
- операционные риски: доступ к образцам, логистика, бумажки.
Изначально, мы просто идём к дружественной лаборатории реверсеров и просим их оценить цену, ну или хотя бы наш штатный реверсер оценивает из своего опыта. Но можно и формализовать: взять из Common Criteria их "attack potential" и перевести из баллов в рубли: сумма времени, экспертизы, возможностей и оборудования. У нас почти то же самое, только сразу в единицах, удобных для владельца продукта и CFO.
А главное, эта метрика отлично ложится на стоимость защищаемой системы, тираж выпуска и принимаемые риски: банально, 10к₽ контроллер партией 5к штук — хватит и "1 млн" защиты, любая более крутая защита будет явным перебором, просто не отобьёт экономику. А если... ну вы поняли.
Любой реверсер спросит: а что вы понимаете под стоимостью? Поиск уязвимости / первый успешный взлом / identification, или тиражное использование / exploitation? Одинаково важны обе фазы: дорогой взлом вполне может стоить того, если тиражирование будет условно-бесплатным и принесёт достаточный профит; и наоборот, детская уязвимость, но дорогие/недоступные носители для тиражирования ставят вопросы к ROI атаки. Хотя обычно даже единичный факт взлома уже роняет репутацию девайса, и уже не настолько важно, что тиражирование дорогое. Плюс, это может быть взлом не просто "системы в целом", а конкретного юзера этой системы, и это переходит в критерий принимаемых (или нет) рисков.
Метрика по стоимости железа тоже вопросительна: лаборатория не строится под один взлом, амортизация на потоке будет околонулевой, тогда взлом именно нашего девайса станет в разы дешевле. Эта штука в научных кругах называется low-cost attacs, особенно любят бесплатно ломать якобы "тампероустойчивые" устройства. (мораль: тампер это лишь щеколда на входе). Да и помните: суперустойчивый Knox в телефоне или ультразащищённый чип, требующий послойного шлифования кремния — скорее всего стократ дешевле обходятся на другом этапе, хотя бы даже на supply chain :)
Оценивать ROI тоже нужно обдуманно: чуваку может быть интереснее не эксплуатировать уязвимость, а просто продать её; а внутренняя оценка цены всегда будет ошибочной в разы.
Без этих оговорок цифра "стоимость защиты" быстро превратится в самообман. Желательно ещё обновлять её по итогам реальных незапланированных доступов :)
В мире есть некоторые метрики защищённости железа/софта:
- CVSS (0–10 баллов потенциального урона от софта)
- Common Criteria, уровни EAL1–EAL7 с расчётом attack potential
- криптомодульные FIPS 140-3 с уровнями 1–4 от "клянусь, оно работает" до "дрель, морозилка и тепловизор не помогут".
Но всё это не особо мапится в язык бизнеса: даже если руководство хорошо шарит в инфобезе, всё равно нужен перевод. А вот деньги — отлично.
"Этот продукт на 1 млн ₽ взлома" — сразу в топку: хватит интересующегося студента с осциллографом и неделей времени.
"На 10 млн" — уже интересно, можно пообщаться, понять профиль атакующего и посмотреть, что доточить
"На 100 млн" — сразу зелёный свет: такой бюджет есть только у весьма специфичных игроков, да и то, если ROI реально виден.
Подход не новый, но я нечасто вижу его применение, и он отлично ложится на бизнес-слой.
Формально, мы оцениваем не уровень магии защиты, а минимальный бюджет осмысленного атакующего на получение промышленно пригодного эксплойта. Здесь:
- человеко-часы реверсера/лаборатории нужного класса;
- железо: микроскопы, ионный пучок, лазеры для fault-инъекций, xGSPS осциллографы, EM-щупы и т.д. (+амортизация);
- число итераций: сколько раз нужно пересобрать плату, чтобы довести атаку до состояния PoC;
- операционные риски: доступ к образцам, логистика, бумажки.
Изначально, мы просто идём к дружественной лаборатории реверсеров и просим их оценить цену, ну или хотя бы наш штатный реверсер оценивает из своего опыта. Но можно и формализовать: взять из Common Criteria их "attack potential" и перевести из баллов в рубли: сумма времени, экспертизы, возможностей и оборудования. У нас почти то же самое, только сразу в единицах, удобных для владельца продукта и CFO.
А главное, эта метрика отлично ложится на стоимость защищаемой системы, тираж выпуска и принимаемые риски: банально, 10к₽ контроллер партией 5к штук — хватит и "1 млн" защиты, любая более крутая защита будет явным перебором, просто не отобьёт экономику. А если... ну вы поняли.
Любой реверсер спросит: а что вы понимаете под стоимостью? Поиск уязвимости / первый успешный взлом / identification, или тиражное использование / exploitation? Одинаково важны обе фазы: дорогой взлом вполне может стоить того, если тиражирование будет условно-бесплатным и принесёт достаточный профит; и наоборот, детская уязвимость, но дорогие/недоступные носители для тиражирования ставят вопросы к ROI атаки. Хотя обычно даже единичный факт взлома уже роняет репутацию девайса, и уже не настолько важно, что тиражирование дорогое. Плюс, это может быть взлом не просто "системы в целом", а конкретного юзера этой системы, и это переходит в критерий принимаемых (или нет) рисков.
Метрика по стоимости железа тоже вопросительна: лаборатория не строится под один взлом, амортизация на потоке будет околонулевой, тогда взлом именно нашего девайса станет в разы дешевле. Эта штука в научных кругах называется low-cost attacs, особенно любят бесплатно ломать якобы "тампероустойчивые" устройства. (мораль: тампер это лишь щеколда на входе). Да и помните: суперустойчивый Knox в телефоне или ультразащищённый чип, требующий послойного шлифования кремния — скорее всего стократ дешевле обходятся на другом этапе, хотя бы даже на supply chain :)
Оценивать ROI тоже нужно обдуманно: чуваку может быть интереснее не эксплуатировать уязвимость, а просто продать её; а внутренняя оценка цены всегда будет ошибочной в разы.
Без этих оговорок цифра "стоимость защиты" быстро превратится в самообман. Желательно ещё обновлять её по итогам реальных незапланированных доступов :)
🔥10👍6💯3
Наконец мои лапы дошли до этого крипточипа, а тут и задачка с хардверной эллиптической криптографией возникла на работе.
Суть: мелкий 8-ножка берёт на себя всю криптографию, причём правильно: охраняя закрытый ключ, давая честный рандом и т.д. Вынося всё чувствительное в него, вы автоматом получаете достаточную безопасность, подтверждённую опытом и сертами.
Оч заманчиво иметь SO8 чип, который умеет:
- генерить пары ключей (закрытый/открытый) для эллиптики
- юзать закрытый ключ внутри, никогда не отдавая его наружу
- генерить общий сессионный ключ по Диффи-Хеллману / ECDH
- считать хэши, подписывать и проверять подпись сообщений
- шифровать/расшифровывать сообщения по AES-128
- хранить данные в EEPROM, в т.ч. в OTP зонах
- ещё и имеет криптобезопасный генератор случайных чисел!
Зачем вообще всё это нужно: имеем два девайса, соединённых незащищённым каналом. CAN, RS485, Ethernet, что угодно, во что злоумышленник может влезть, прослушать и отправить свои посылки; пусть это контроллер двери и замок. Чувак подслушает команду "открытие двери", и потом отправит сам снова (replay атака). Как не дать это сделать? Не дать подслушать и отправить.
Чтобы не принять левую команду, добавим растущий номер или время, и вычислим хеш посылки с неким секретным ключом, это будет подписью. Не зная ключа, не сделаешь верную подпись.
Важно: подписываем закрытым/приватным ключом, проверяем подпись открытым/публичным. На старте, в режиме "знакомства" девайсов, каждый девайс сообщает всем свой публичный ключ, все его записывают.
Теперь, когда девайс А генерирует своё сообщение, он подписывает его своим приватным ключом, и любой другой девайс, приняв это сообщение, может проверить его подпись, используя уже известный публичный ключ девайса А.
Скорее всего, те кто менял блоки в машинах или айфонах, на этом моменте встрепенулись. Да, "прописать блок" это и есть "раздать его публичный ключ".
Против подслушивания можно зашифровать посылку полностью, но обычно хватает только подписи.
Про безопасность: Ledger вскрыли прошлые версии, ATECC508A на SSTIC 2020 лазером, и ATECC608A на BlackHat 2021 2 лазерами. 608A на сайте Microchip уже Not recommended for new designs, и есть B и C ревизии. У 608C есть варианты с JIL HIGH.
По методике из прошлого поста, уровень защиты "10 млн ₽" на старт и "10 тыс ₽" на повтор. Студент не вскроет :)
Для чипа, доступного на али за 300 ₽ это очень достойно.
Полный даташит недоступен, Microchip просит подписать NDA (вот бы чип умел подписывать кроме сообщений ещё и NDA!); но ковырянием в даташитах на прошлые версии и коде доступных библиотек, удалось навайбкодить всё, что нужно.
Команды в следующем посте:
Суть: мелкий 8-ножка берёт на себя всю криптографию, причём правильно: охраняя закрытый ключ, давая честный рандом и т.д. Вынося всё чувствительное в него, вы автоматом получаете достаточную безопасность, подтверждённую опытом и сертами.
Оч заманчиво иметь SO8 чип, который умеет:
- генерить пары ключей (закрытый/открытый) для эллиптики
- юзать закрытый ключ внутри, никогда не отдавая его наружу
- генерить общий сессионный ключ по Диффи-Хеллману / ECDH
- считать хэши, подписывать и проверять подпись сообщений
- шифровать/расшифровывать сообщения по AES-128
- хранить данные в EEPROM, в т.ч. в OTP зонах
- ещё и имеет криптобезопасный генератор случайных чисел!
Зачем вообще всё это нужно: имеем два девайса, соединённых незащищённым каналом. CAN, RS485, Ethernet, что угодно, во что злоумышленник может влезть, прослушать и отправить свои посылки; пусть это контроллер двери и замок. Чувак подслушает команду "открытие двери", и потом отправит сам снова (replay атака). Как не дать это сделать? Не дать подслушать и отправить.
Чтобы не принять левую команду, добавим растущий номер или время, и вычислим хеш посылки с неким секретным ключом, это будет подписью. Не зная ключа, не сделаешь верную подпись.
Важно: подписываем закрытым/приватным ключом, проверяем подпись открытым/публичным. На старте, в режиме "знакомства" девайсов, каждый девайс сообщает всем свой публичный ключ, все его записывают.
Теперь, когда девайс А генерирует своё сообщение, он подписывает его своим приватным ключом, и любой другой девайс, приняв это сообщение, может проверить его подпись, используя уже известный публичный ключ девайса А.
Скорее всего, те кто менял блоки в машинах или айфонах, на этом моменте встрепенулись. Да, "прописать блок" это и есть "раздать его публичный ключ".
Против подслушивания можно зашифровать посылку полностью, но обычно хватает только подписи.
Про безопасность: Ledger вскрыли прошлые версии, ATECC508A на SSTIC 2020 лазером, и ATECC608A на BlackHat 2021 2 лазерами. 608A на сайте Microchip уже Not recommended for new designs, и есть B и C ревизии. У 608C есть варианты с JIL HIGH.
По методике из прошлого поста, уровень защиты "10 млн ₽" на старт и "10 тыс ₽" на повтор. Студент не вскроет :)
Для чипа, доступного на али за 300 ₽ это очень достойно.
Полный даташит недоступен, Microchip просит подписать NDA (вот бы чип умел подписывать кроме сообщений ещё и NDA!); но ковырянием в даташитах на прошлые версии и коде доступных библиотек, удалось навайбкодить всё, что нужно.
Команды в следующем посте:
❤13👍6😱2🔥1
Команды для работы с ATECC608 из предыдущего поста:
1. Инициализация
Чип по умолчанию спит и даже может быть не виден командой i2cdetect. Пробуждение — запись 0x00 в устройство с адресом 0x00. Да, не по адресу чипа, а по адресу General call шины.
Через i2ctools это можно сделать с ключом -a из-под su:
Команда вернёт ошибку, но не переживайте, это нормально.
Спустя 2 мс можно прочитать wake-статус:
04 длина, 11 успешный wake, и 2 байта CRC.
Дальше все запросы начинаются с 03, это функция передачи команды (ещё есть 00/Reset, 01/Sleep, 02/Idle)
2. Чтение ревизии
03 функция "команда", 07 длина, 30 команда Info, param1/00 — ревизия, param2/0000 — без параметров, и CRC. Ответ:
07 длина, 00006002 ревизия, 2 байта CRC.
.60.02 соответствует чипу ATECC608A, .60.03 — ATECC608B.
3. Случайное число
03 функция "команда", 07 длина, 1B команда Random, param1/00 и param2/0000 — без параметров, и CRC. Ответ:
23 длина, FE A4 ... D6 15 случайное число (32 байта), 2 байта CRC.
Но пока конфиг чипа не залочен, эта команда всегда будет отдавать FF FF 00 00 FF FF 00 00... — это не издёвка, а маркер того, что чип открыт. Почему-то про это редко пишут, имейте в виду.
4. Публичный ключ из слота 0
03 функция "команда", 07 длина, 40 GenKey, param1/00 и param2/0000 — без параметров, и CRC. Ответ:
43 длина, D2 DE ... 8B B3 публичный ключ (64 байта), 2 байта CRC.
На самом деле, публичный ключ это лишь координата точки на эллиптической кривой: первые 32 байта X, вторые 32 байта Y.
5.1. Подготовка к подписыванию / загрузка Nonce в TempKey
03 функция "команда", 27 длина, 16 Nonce, param1/03 — режим Fixed, param2/0000 h0..h31 — 32 байта данных, и CRC. Ответ:
04 длина, 00 успешный приём, и 2 байта CRC.
5.2. Подписывание TempKey ключом из Slot0
03 функция "команда", 07 длина, 41 команда Sign, param1/80 — режим [External, TempKey], param2/0000 и CRC. Ответ:
43 длина, C7 D2 ... BF 76 подпись (64 байта), 2 байта CRC.
Подпись это на самом деле два числа по 32 байта, R||S.
Самое крутое то, что я попробовал проверить эту подпись тем же публичным ключом на компе в node.js — и проверка прошла! Мы успешно связали два криптоконтейнера, и всё работает :3
6. Блокировка конфигурации
У чипа есть три разных вида блокировки, для получения случайных чисел достаточно залочить конфигурацию.
03 функция "команда", 07 длина, 17 команда Lock, param1/80 — режим [Lock Config, Ignore CRC], param2/0000 и CRC. Ответ:
04 длина, 00 успешный лок, и 2 байта CRC.
Расчёт CRC
16 бит LSB-first, полином 8005, input reflected, output not, init 0000, final xor 0000. CRC_L = младший байт, CRC_H = старший.
Да, в качестве сообщения я везде использую число длиной 32 байта, а как подписать пакет другой длины или текст? Конечно, захешировать. В чипе и SHA-256 есть для этого.
Я рассказал лишь о 20% возможностей чипа. Ещё можно производить новые ключи от старых, строя цепочку и размножая их дальше; есть счётчики для контроля монотонности сообщений; можно создавать сессионный ключ из двух приватных, причём напрашивается вариант где с одной стороны этот чип, а с другой линукс; и ещё много всего.
Рекомендую разобраться: вы можете за 350 рублей добавить к вашему устройству надёжное шифрование, не закапываясь в это с головой. Не зря же Брюс Шнайер, отец криптографии, запрещает реализовывать криптоалгоритмы самому :)
1. Инициализация
Чип по умолчанию спит и даже может быть не виден командой i2cdetect. Пробуждение — запись 0x00 в устройство с адресом 0x00. Да, не по адресу чипа, а по адресу General call шины.
w1@0x00: 0x00Через i2ctools это можно сделать с ключом -a из-под su:
sudo i2cset -y -a 2 0x00 0x00Команда вернёт ошибку, но не переживайте, это нормально.
Спустя 2 мс можно прочитать wake-статус:
r4@0x60: 04 11 33 4304 длина, 11 успешный wake, и 2 байта CRC.
Дальше все запросы начинаются с 03, это функция передачи команды (ещё есть 00/Reset, 01/Sleep, 02/Idle)
2. Чтение ревизии
w8@0x60: 03 07 30 00 00 00 03 5D03 функция "команда", 07 длина, 30 команда Info, param1/00 — ревизия, param2/0000 — без параметров, и CRC. Ответ:
r7@0x60: 07 00 00 60 02 80 3807 длина, 00006002 ревизия, 2 байта CRC.
.60.02 соответствует чипу ATECC608A, .60.03 — ATECC608B.
3. Случайное число
w8@0x60: 03 07 1B 00 00 00 24 CD03 функция "команда", 07 длина, 1B команда Random, param1/00 и param2/0000 — без параметров, и CRC. Ответ:
r35@0x60: 23 FE A4 73 B9 4F D7 6F EA FB 5A 90 89 D0 1D 98 9E 8C 4C 49 84 BF 60 30 C7 FF BD 44 73 1A 52 D6 15 99 6623 длина, FE A4 ... D6 15 случайное число (32 байта), 2 байта CRC.
Но пока конфиг чипа не залочен, эта команда всегда будет отдавать FF FF 00 00 FF FF 00 00... — это не издёвка, а маркер того, что чип открыт. Почему-то про это редко пишут, имейте в виду.
4. Публичный ключ из слота 0
w8@0x60: 03 07 40 00 00 00 00 0503 функция "команда", 07 длина, 40 GenKey, param1/00 и param2/0000 — без параметров, и CRC. Ответ:
r67@0x60: 43 D2 DE .. 8B B3 29 A143 длина, D2 DE ... 8B B3 публичный ключ (64 байта), 2 байта CRC.
На самом деле, публичный ключ это лишь координата точки на эллиптической кривой: первые 32 байта X, вторые 32 байта Y.
5.1. Подготовка к подписыванию / загрузка Nonce в TempKey
w40@0x60: 03 27 16 03 00 00 h0 h1 ... h31 CRC_L CRC_H03 функция "команда", 27 длина, 16 Nonce, param1/03 — режим Fixed, param2/0000 h0..h31 — 32 байта данных, и CRC. Ответ:
r4@0x60: 04 00 03 4004 длина, 00 успешный приём, и 2 байта CRC.
5.2. Подписывание TempKey ключом из Slot0
w8@0x60: 03 07 41 80 00 00 28 0503 функция "команда", 07 длина, 41 команда Sign, param1/80 — режим [External, TempKey], param2/0000 и CRC. Ответ:
r67@0x60: 43 C7 D2 .. BF 76 52 A243 длина, C7 D2 ... BF 76 подпись (64 байта), 2 байта CRC.
Подпись это на самом деле два числа по 32 байта, R||S.
Самое крутое то, что я попробовал проверить эту подпись тем же публичным ключом на компе в node.js — и проверка прошла! Мы успешно связали два криптоконтейнера, и всё работает :3
6. Блокировка конфигурации
У чипа есть три разных вида блокировки, для получения случайных чисел достаточно залочить конфигурацию.
w8@0x60: 03 07 17 80 00 00 39 8D03 функция "команда", 07 длина, 17 команда Lock, param1/80 — режим [Lock Config, Ignore CRC], param2/0000 и CRC. Ответ:
r4@0x60: 04 00 03 4004 длина, 00 успешный лок, и 2 байта CRC.
Расчёт CRC
16 бит LSB-first, полином 8005, input reflected, output not, init 0000, final xor 0000. CRC_L = младший байт, CRC_H = старший.
Да, в качестве сообщения я везде использую число длиной 32 байта, а как подписать пакет другой длины или текст? Конечно, захешировать. В чипе и SHA-256 есть для этого.
Я рассказал лишь о 20% возможностей чипа. Ещё можно производить новые ключи от старых, строя цепочку и размножая их дальше; есть счётчики для контроля монотонности сообщений; можно создавать сессионный ключ из двух приватных, причём напрашивается вариант где с одной стороны этот чип, а с другой линукс; и ещё много всего.
Рекомендую разобраться: вы можете за 350 рублей добавить к вашему устройству надёжное шифрование, не закапываясь в это с головой. Не зря же Брюс Шнайер, отец криптографии, запрещает реализовывать криптоалгоритмы самому :)
❤11👍6🔥4🤔1
Мне всегда чесали мозг двойные учёные. Вместе с комментаторами вспомнили много; накидайте в комменты ещё свои варианты :D
Диаграмма Гершпрунга-Расселла
Эффект Прандтля-Глоерта
Схема Улама-Теллера
Алгоритм Диффи-Хеллмана
Эффект Даннинга-Крюгера
Феномен Баадера-Майнхоф
Эффект Барнума-Форера
Конденсат Бозе-Эйнштейна
Метод Рунге-Кутты
Неустойчивость Релея-Тейлора
Уравнения Навье-Стокса
Распределение Максвелла-Больцмана
Задача Штурма-Лиувилля
Закон Бойля-Мариотта
Закон Гей-Люссака
Фильтр Саллена-Ки
Уравнение Навье-Стокса
Мария Склодовская-Кюри
Закон Менделеева-Клапейрона
Правило Тициуса-Боде
Вектор Умова-Пойнтинга
Алгоритм Кули-Тьюки
Мост Эйнштейна-Розена
Неравенство Коши-Буняковского
Эффект Майкельсона-Шварца :)
Код Рида-Соломона
Пространство Калаби-Яу
Алгоритм Ахо-Корасик
Теорема Остроградского-Гаусса
Диаграмма Эйлера-Венна
Мост Вина-Робинсона
Неравенство Коши-Адамара
Алгоритм Герчберга-Саксона
Теорема Пэли-Винера
Излучение Вавилова-Черенкова
Закон Джоуля-Ленца
Теорема Найквиста-Шеннона-Котельникова
Код Боуза-Чоудхури-Хоквингема
Парадокс Эйнштейна-Подольского-Розена
Закон Бугера-Ламберта-Бера
Алгоритм Кнута-Морриса-Пратта
Метод Бранауэра-Эммета-Теллера
Закон Био-Савара-Лапласа
Теория Дерягина-Ландау-Фервея-Овербека
Диаграмма Гершпрунга-Расселла
Эффект Прандтля-Глоерта
Схема Улама-Теллера
Алгоритм Диффи-Хеллмана
Эффект Даннинга-Крюгера
Феномен Баадера-Майнхоф
Эффект Барнума-Форера
Конденсат Бозе-Эйнштейна
Метод Рунге-Кутты
Неустойчивость Релея-Тейлора
Уравнения Навье-Стокса
Распределение Максвелла-Больцмана
Задача Штурма-Лиувилля
Закон Бойля-Мариотта
Закон Гей-Люссака
Фильтр Саллена-Ки
Уравнение Навье-Стокса
Мария Склодовская-Кюри
Закон Менделеева-Клапейрона
Правило Тициуса-Боде
Вектор Умова-Пойнтинга
Алгоритм Кули-Тьюки
Мост Эйнштейна-Розена
Неравенство Коши-Буняковского
Эффект Майкельсона-Шварца :)
Код Рида-Соломона
Пространство Калаби-Яу
Алгоритм Ахо-Корасик
Теорема Остроградского-Гаусса
Диаграмма Эйлера-Венна
Мост Вина-Робинсона
Неравенство Коши-Адамара
Алгоритм Герчберга-Саксона
Теорема Пэли-Винера
Излучение Вавилова-Черенкова
Закон Джоуля-Ленца
Теорема Найквиста-Шеннона-Котельникова
Код Боуза-Чоудхури-Хоквингема
Парадокс Эйнштейна-Подольского-Розена
Закон Бугера-Ламберта-Бера
Алгоритм Кнута-Морриса-Пратта
Метод Бранауэра-Эммета-Теллера
Закон Био-Савара-Лапласа
Теория Дерягина-Ландау-Фервея-Овербека
❤8😁2
Forwarded from e/acc
Шифропанки проиграли
Я начал вести этот канал с серии постов об истории Cypherpunks — более чем 40-летнего движения, которое привело к появлению ключевых технологий, позволяющих построенние децентрализованных систем и институтов, таких как PGP и PKI (способ гарантировано приватного общения), Digicash (первые электронные деньги), TOR и Bittorent и, наконец, Биткоина, Эфира и идеи ДАО.
Почему это важно? Математика — неостановимый инструмент. Мы научились создавать нецензурируемые деньги и каналы связи. Но победив в создании инструментов, мы споткнулись о реальность их внедрения. Распространение технологий зависит не от криптографической стойкости, а от старой скучной политики и человеческой психологии, где важнее привычки, чем алгоритмы.
Четыре года я делал проекты в области SSI — системы цифровой identity для образования, медицины и идентификации в интернете. Технически мы всё сделали верно. Коммерчески проекты были успешны. Но идеологически мы провалились: вижен «суверенной личности» остался утопией. Люди не стали владеть своими данными, они просто получили еще один логин-пароль, за которым стоял новый посредник.
Парадокс: технологии шифропанков победили везде, но их идеология нигде не прижилась. Триллионы долларов в крипте, HTTPS на каждом сайте, сквозное шифрование в мессенджерах. Но криптографический слой оказался захвачен той самой бюрократической машиной (Левиафаном), против которой создавался. Пользователи сами, добровольно, отдают ключи от своей крипты Бинансу, а свои переписки — серверам Gmail и iMessage.
Причина проста: мы проигнорировали «когнитивный налог». Шифропанки требовали от человека ответственности: хранить ключи, понимать риски, настраивать ноды. Но обычный человек не хочет разбираться в эллиптических кривых ради покупки чашки кофе. Он выбирает Google не потому, что любит корпорации, а потому что восстановить пароль там можно за две минуты. Удобство — наркотик, а централизация — его главный дилер. Если приватный инференс стоит $50k, он проиграет подписке за $20, даже если эта подписка читает и использует ваши данные.
Но война не окончена. Сейчас код перестает быть просто софтом и становится институциональным дизайном. Следующее поколение систем (ИИ-агенты, абстракция аккаунтов и чейнов в крипте, intent economy) скроет сложность от пользователя. И главное его преимущество остается
Будущее не за тем, чтобы заставить всех стать гиками. Будущее за системами, которые являются само-оптимизирующимися кибернетическими организмами, где «правильный» выбор является одновременно и самым простым. Лозунг «Cypherpunks write code» не просто про код, а про дизайн механизмов (стимулов) и интерфейсы, которые делают свободу фичей системы. Мы неизбежно придем к автономным институтам не потому, что люди станут сознательнее, а потому что старые институты коллапсируют под весом собственной неэффективности. Почему — в следующей части.
Я начал вести этот канал с серии постов об истории Cypherpunks — более чем 40-летнего движения, которое привело к появлению ключевых технологий, позволяющих построенние децентрализованных систем и институтов, таких как PGP и PKI (способ гарантировано приватного общения), Digicash (первые электронные деньги), TOR и Bittorent и, наконец, Биткоина, Эфира и идеи ДАО.
Почему это важно? Математика — неостановимый инструмент. Мы научились создавать нецензурируемые деньги и каналы связи. Но победив в создании инструментов, мы споткнулись о реальность их внедрения. Распространение технологий зависит не от криптографической стойкости, а от старой скучной политики и человеческой психологии, где важнее привычки, чем алгоритмы.
Четыре года я делал проекты в области SSI — системы цифровой identity для образования, медицины и идентификации в интернете. Технически мы всё сделали верно. Коммерчески проекты были успешны. Но идеологически мы провалились: вижен «суверенной личности» остался утопией. Люди не стали владеть своими данными, они просто получили еще один логин-пароль, за которым стоял новый посредник.
Парадокс: технологии шифропанков победили везде, но их идеология нигде не прижилась. Триллионы долларов в крипте, HTTPS на каждом сайте, сквозное шифрование в мессенджерах. Но криптографический слой оказался захвачен той самой бюрократической машиной (Левиафаном), против которой создавался. Пользователи сами, добровольно, отдают ключи от своей крипты Бинансу, а свои переписки — серверам Gmail и iMessage.
Причина проста: мы проигнорировали «когнитивный налог». Шифропанки требовали от человека ответственности: хранить ключи, понимать риски, настраивать ноды. Но обычный человек не хочет разбираться в эллиптических кривых ради покупки чашки кофе. Он выбирает Google не потому, что любит корпорации, а потому что восстановить пароль там можно за две минуты. Удобство — наркотик, а централизация — его главный дилер. Если приватный инференс стоит $50k, он проиграет подписке за $20, даже если эта подписка читает и использует ваши данные.
Но война не окончена. Сейчас код перестает быть просто софтом и становится институциональным дизайном. Следующее поколение систем (ИИ-агенты, абстракция аккаунтов и чейнов в крипте, intent economy) скроет сложность от пользователя. И главное его преимущество остается
Будущее не за тем, чтобы заставить всех стать гиками. Будущее за системами, которые являются само-оптимизирующимися кибернетическими организмами, где «правильный» выбор является одновременно и самым простым. Лозунг «Cypherpunks write code» не просто про код, а про дизайн механизмов (стимулов) и интерфейсы, которые делают свободу фичей системы. Мы неизбежно придем к автономным институтам не потому, что люди станут сознательнее, а потому что старые институты коллапсируют под весом собственной неэффективности. Почему — в следующей части.
Telegram
e/acc
До недавнего времени криптография считалась военной технологией, доступной только избранным и применяемой государствами для защиты сверхценной информации.
Однако, со стремительным ростом компьютерных технологий и экспоненциальным падением стоимости вычислительных…
Однако, со стремительным ростом компьютерных технологий и экспоненциальным падением стоимости вычислительных…
🔥7😢4💯1
Все вокруг меня стали ставить ноды мештастика — сегодня уже четв пятый человек за 2 месяца. Я чего-то не знаю и там раздают деньги, или это попытка убежать от цензуры? Ну тогда лол.
🤣12❤6👻4👍3🌚2