Как стать автором
Обновить

Ломаем модифицированный AES-256

Время на прочтение9 мин
Количество просмотров58K
Недавно в институте я столкнулся с любопытной криптографической задачей, которой хотел бы поделиться с Сообществом. Одним предложением задачу могу обозначить, как "Атака на LSX-шифр, не содержащий нелинейной компоненты, на основе открытых текстов". Так как русскоязычных примеров решения таких учебных «головоломок» встречается немного, а сама задача рекомендована для начинающих свой путь специалистов, я считаю, что такая статья может быть интересна юному криптоаналитику. Пожалуйте под кат.
image

Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии4

Как я не добился 60 fps на дистанции 256 чанков на Lenovo X201i

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров6.7K

Летом накануне пандемии ударила как-то раз мне в голову блажь.

Почему бы не взять движок типа Wolf3D/ROTT и не доработать его до уровня, способного тянуть Minecraft, максимально сохранив при этом производительность? А в жертву при этом можно принести все "красивости", сведя задачу к максимально узкому случаю. Пусть герой, в стиле ретро, смотрит всегда строго перпендикулярно одной из координатных осей (как правило, это вертикальная ось, то есть взгляд направлен строго горизонтально), угол зрения по вертикали пусть составляет 45 градусов (это важно, но об этом ниже), а всё остальное решаем лютыми костылями.

Кармака на тебя нет!
Всего голосов 6: ↑6 и ↓0+6
Комментарии9

Полигоны Doom на Playstation

Время на прочтение18 мин
Количество просмотров16K
image

Sony PlayStation



История PlayStation началась в 1988 году, когда Nintendo и Sony приступили к совместной работе над дополнительным устройством чтения CD-ROM для консоли SNES. По условиям договора Sony могла независимо разрабатывать игры для этой платформы и сохраняла контроль над форматом «Super Disc» — две необычные уступки со стороны Nintendo.

Проект развивался до выставки CES ’91, на которой Sony объявила о совместном работе над «Play Station». На следующий день в рамках той же выставки Nintendo, к удивлению Sony, объявила, что вместо этого заключила партнёрское соглашение с Philips (на гораздо более выгодных условиях). Преданная и публично униженная Sony попыталась обратиться к совету директоров Sega, сразу же отклонившему эту идею. В интервью 2013 года генеральный директор SEGA Том Калинске вспоминал о решении совета.

«Это глупая идея, Sony не знает, как разрабатывать оборудование. Они не знают и как писать ПО. Зачем нам с ними связываться?» — совет директоров SEGA

И они не ошибались, у Sony действительно было мало опыта в работе с играми. Она почти и не проявляла к ним интереса, за исключением инициативы одного человека — Кена Кутараги. С того самого момента, как он увидел, как его дочь играет в Nintendo Famicom, Кен убеждал Sony, что нужно выйти на этот рынок. Несмотря на рекомендации вице-президентов Sony, он даже разработал для Nintendo аудиочип (SPC700), использованный в SNES.

Большинство руководителей Sony посчитало это рискованной ставкой, но Кутараги обрёл поддержку в лице генерального руководителя Sony Норио Ога. В июне 1992 года Кену позволили начать с нуля создание игровой системы. Для успокоения совета директоров «отца PlayStation», как его стали называть позже, перевели в финансово независимую от родительской компании Sony Music, и он приступил к работе над тем, что со временем превратится в «PlayStation» (уже без пробела в названии).
Всего голосов 42: ↑42 и ↓0+42
Комментарии11

OpenSSL и Network Security Services (NSS) — две стороны одной медали

Время на прочтение31 мин
Количество просмотров8K
imageО какой медали идет речь в заголовке? Речь идет об инфраструктуре открытых ключей (Public Key Infrastructure — PKI/ИОК) на базе стандартов криптографии с открытым ключом (Public Key Cryptography Standards — PKCS). Инфраструктура открытых ключей включает в себя множество различных объектов и механизмов работы с ними, а также протоколы взаимодействия объектов друг с другом (например, протоколы TLS, OCSP). В число объектов ИОК/PKI входят сертификаты x509 и ключевые пары (приватные и публичные ключи), подписанные и зашифрованные документы (pkcs#7, CMS), защищенные контейнеры для хранения приватных ключей (pkcs#8) и личных сертификатов с ключами (pkcs#12) и т.д. В число механизмов входят не только криптографические функции, которые позволяют шифровать и подписывать документы по различным алгоритмам, но и функции, формирующие конечные объекты ИОК в соответствии со стандартами (сертификаты, запросы, подписанные/зашифрованные документы, пакеты протоколов и т.д. и т.п.). Да, и как не вспомнить центральный объект ИОК/PKI — Удостоверяющий Центр (УЦ).
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии12

Проблема с сертификатами Sectigo после 30 мая 2020 года и метод решения

Время на прочтение23 мин
Количество просмотров49K

В субботу 30 мая 2020 года возникла не сразу понятная проблема с популярными SSL/TLS сертификатами от вендора Sectigo (бывший Comodo). Сами сертификаты продолжали оставаться в полном порядке, однако "протух" один из промежуточных CA-сертификатов в цепочках, с которыми поставлялись данные сертификаты. Ситуация не сказать, чтобы фатальная, но неприятная: актуальные версии браузеров ничего не заметили, однако большая часть автоматизаций и старых браузеров/ОС оказались не готовыми к такому повороту.

Хабр не стал исключением, поэтому и написан этот ликбез / postmortem.

Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии45

Конструкции ферритовых запоминающих устройств (часть вторая)

Время на прочтение15 мин
Количество просмотров13K
Вторая часть обзора оперативной памяти на тороидальных магнитных сердечниках. Не слишком много теории и исторической справки, но большое количество фотографий из моей коллекции и акцент на техническое устройство и разнообразные инженерные решения, лежащие в конструкциях ферритовых запоминающих матриц, собираемых из них кубов, кассет и блоков памяти.

image
Читать дальше →
Всего голосов 97: ↑97 и ↓0+97
Комментарии51

«Отучаем» WinFXNet от жадности (часть 1)

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров9.6K

Предыстория

В сфере АСУ ТП инженерам по работе приходится не только писать ПО, но и использовать готовое ПО от производителей оборудования. В связи с санкциями, многие поставщики покинули РФ, а оборудование и ПО необходимо продолжать эксплуатировать дальше.

В данной статье будет расмотрена WinFXNet - программа производителя Schneider Electric (ESMI) для конфигурирования станций пожарной сигнализации серии Esmi FX. К сожалению, из-за санкций, ключ USB Esmi FX FFS00393016 приобрести нельзя, а он, в свою очередь, имеет встроенный таймер, который настроен на 4-летний период. У многих данный ключ по времени уже закончился, плюс скоро закончится и лицензия на само ПО (файл формата lic). Поэтому достаем дизассемблеры и посмотрим, можно ли обойти данную защиту.

Disclaimer: Данная заметка написана в ознакомительных целях и не является руководством к действиям. Хотя, понимая всю безвыходность данной ситуации, как временное решение имеет право на жизнь, но решать только вам. Статья написана как туториал, поэтому постараюсь детально описать все шаги поиска нужных мест в программе.

Приступить к анализу
Всего голосов 101: ↑96 и ↓5+91
Комментарии28

Birentech рассказала о новых чипах BR100 и BR104

Время на прочтение2 мин
Количество просмотров1.8K

На конференции Hot Chips 34 китайская компания Birentech рассказала о своих чипах  BR100 и BR104. Архитектура новинок создана на базе  собственной разработки под кодовым названием Bi Liren. На данный момент BR100 — это первый китайский ускоритель общего назначения, в котором используется чиплетная компоновка и поддерживающий PCI Express 5.0/CXL. Кроме того, у новых ускорителей будет сопровождение с полноценной программной поддержкой, включая драйвера, библиотеки и популярные фреймворки (например, TensorFlow и PyTorch).

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

BLE под микроскопом. Модемы

Время на прочтение19 мин
Количество просмотров4.7K
image

BLE под микроскопом (модемы)


Так получилось, что мне пришлось заниматься темой BLE, используя модемы MC60E от Quectel и SIM868E от SIMCom. Изначально они не могли работать с протоколом BlueTooth 4.0, но их доработали и вот. В модемы добавили модули BLE, а в конце названия букву 'E'. Сегодня мне хотелось бы поговорить об этих устройствах в свете протокола BLE, поэтому я буду рассматривать только те команды, которые к нему относятся. Скачать фирменное описание на команды MC60E можно здесь, а на команды SIM868E здесь.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии7

Как фронтендер подписывать CSR учился

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров4.5K

В статье рассказываю про опыт изучения Certificate Signing Request (CSR) формата. О том, что такое PEM, DER, какова структура самого CSR файла и как последний подписывается. А также поделюсь, с какими сложностями в процессе изучения я столкнулся.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии2

Разбираем x.509 сертификат

Время на прочтение11 мин
Количество просмотров217K

Привет, %username%!

Так уж вышло, что несмотря на относительно неплохое понимание инфраструктуры открытых ключей, содержимое *.crt файлов всегда оставалось для меня полнейшей загадкой.
Нет, не поймите неправильно. Я знаю, что x.509 сертификат содержит информацию о владельце, открытый ключ, сведения об удостоверяющем центре и электронную цифровую подпись. Но при установке очередного сертификата меня всегда мучило любопытство.
Чем отличается идентификатор ключа от отпечатка? Какие данные сертификата подписываются, а какие нет? И что за структура данных позволяет хранить всю эту информацию, сводя избыточность к минимуму.
Но вот наконец-то любопытство перебороло лень и в данном посте я постараюсь описать структуру x.509 сертификатов и ответить на эти и другие вопросы.
Читать дальше →
Всего голосов 79: ↑75 и ↓4+71
Комментарии31

Хакерский квест RUVDS подходит к концу, но сразиться за главный приз 142 857 рублей еще не поздно

Время на прочтение18 мин
Количество просмотров4.3K

Пока участники квеста готовятся к финальным испытаниям, а снег потихоньку тает в городах, расскажем для тех, кто пропустил начало, о пройденных этапах интерактивного хакерского кветса, и что ждать от финала.

Напомним, с чего всё началось: участники уже раскрыли секрет «Загадочной визитки», которую разобрали до последнего волокна и в результате залетели в блокчейн, а далее и в межпланетную файловую систему с новой порцией загадок.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии0

Генерируем цепочку сертификатов с эллиптическими кривыми при помощи OpenSSL

Время на прочтение8 мин
Количество просмотров25K
график функции y^2 = x^3-x+1Думаю многие слышали о криптографии эллиптических кривых, о том
что работает она во много раз быстрее RSA и при несоизмеримо меньшей длине ключа обеспечивает несоизмеримо большую стойкость ко взлому. Если не слышали, то можно глянуть на wiki или почитать в книгах А.А. Болотова.
К сожалению, данный вид шифрования слабо распространен. Я постараюсь объяснить как им пользоваться и поможет мне в этом OpenSSL.

Чтобы не быть голословным приведу сравнение необходимых длин ключей для обеспечения сравнимой стойкости ко взлому для различных алгоритмов. Нам интересна правая часть.
Сравнение алгоритмов
Видно, что популярным сегодня ключам RSA длиной 1024-2048 бит соответствует всего навсего 160-224битный ключ ECC (Elliptic Curve Cryptography)

Ну а чтобы понять какой RSA тормоз достаточно попробовать сгенерировать самый длинный из предложенных в таблице ключей (и пойти вздремнуть):

openssl genrsa 15360

Желающих прикоснуться к «next gen» криптографии, придуманной аж в 1985 году, прошу под кат.
Читать дальше →
Всего голосов 77: ↑75 и ↓2+73
Комментарии27

Как устроен AES

Время на прочтение7 мин
Количество просмотров291K

О чём эта статья



Долгое время я считал, что криптографические алгоритмы шифрования и хеширования, вроде AES и MD5, устроены очень сложно и написать их совсем не просто, даже имея под рукой полную документацию. Запутанные реализации этих алгоритмов на разных языках программирования только укрепляли это мнение. Но недавно у меня появилось много свободного времени и я решил разобраться в этих алгоритмах и написать их. Оказалось, что они очень просто устроены и для их реализации нужно совсем немного времени.

В этой статье я напишу как устроен алгоритм шифрования AES (которого иногда называют Rijndael) и напишу его на JavaScript. Почему на JavaScript? Чтобы запустить программу на этом языке, нужен только браузер в котором вы читаете эту статью. Чтобы запустить программу, скажем, на C, нужен компилятор и найдётся совсем мало желающих, готовых потратить время на компиляцию кода из какой то статьи. В конце есть ссылка по которой можно скачать архив с html страницей и несколькими js файлами — это пример реализации AES на JavaScript.

Читать дальше →
Всего голосов 120: ↑115 и ↓5+110
Комментарии45

Как я научил ИИ играть в Tetris для NES. Часть 1: анализ кода игры

Время на прочтение58 мин
Количество просмотров11K
В этой статье я исследую обманчиво простые механики Nintendo Tetris, а во второй части расскажу, как создал ИИ, эксплуатирующий эти механики.


Попробуйте сами


О проекте


Для тех, кому не хватает упорства, терпения и времени, необходимых для освоения Nintendo Tetris, я создал ИИ, способный играть самостоятельно. Вы наконец-то сможете добраться до уровня 30 и даже дальше. Вы увидите, как получить максимальное количество очков и понаблюдаете за бесконечным изменением счётчиков рядов, уровней и статистики. Узнаете, какие цвета появляются на уровнях, выше которых не мог забраться человек. Посмотрите, насколько далеко можно зайти.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии9

Криптография с открытым ключом: ключи RSA

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров11K

Уверен, что вы хотя бы раз создавали пару ключей RSA, напримет, потому, что вам нужно было подключиться к GitHub, и вы хотели избежать необходимости вводить свой пароль каждый раз. Вы добросовестно следовали инструкциям по созданию SSH-ключей, и через пару минут всё было готово.

Но знаете ли вы, что именно вы делали? Углублялись ли вы в детали процесса?

Знаете ли вы, что содержится в файле ~/.ssh/id_rsa? Почему ssh создает два файла с разным форматом? Замечали ли вы, что один файл начинается со слов ssh-rsa, а другой — с -----BEGIN RSA PRIVATE KEY----- ? Вы замечали, что иногда в заголовке второго файла отсутствует часть RSA и просто написано BEGIN PRIVATE KEY?

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

Читать далее
Всего голосов 24: ↑21 и ↓3+18
Комментарии1

Прокачиваем Modbus: арбитраж, сканирование шины, события

Уровень сложностиСредний
Время на прочтение30 мин
Количество просмотров9.5K

Рассказ о том, как мы прикрутили к Modbus быстрое сканирование шины, события и разрешение коллизий адресов.

Читать далее
Всего голосов 22: ↑21 и ↓1+20
Комментарии22

АES — американский стандарт шифрования. Часть II

Время на прочтение10 мин
Количество просмотров6.8K
image



Основные операции шифра


Рассматривая работу отдельных операций раунда, и повторяя раунды нужное число раз при этом иллюстрируя все промежуточные действия, а не только их конечные результаты, конкретным примером сообщения и ключа шифра мы в деталях наблюдаем все шаги процесса шифрования и можем анализировать, те условия при которых они реализуются, те результаты которые получаются и т.п. Помним при этом, что «дьявол кроется в деталях».

При слепом обращениях к имплементациям пользователь ничего этого не видит, не ощущает и главное — не понимает как шифрование происходит. Он задает только текст сообщения и ключ. Это все, что пользователю понятно. Пользователь целиком доверяет разработчику, на чем уже многократно попадались деятели от государственного уровня до рядовых пользователей. Это и прослушивание переговоров дипломатических представительств и отказ технических систем, когда чужое коммуникационное оборудование покупается и устанавливается без оглядки.
Как анализировать процесс шифрования, на что и как влияет внесение изменений не ясно.
Читать дальше →
Всего голосов 8: ↑5 и ↓3+2
Комментарии3

Зачем на камере и видеорегистраторе нужен криптоблок и как его восстановить

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров8.1K


Представьте себе ситуацию, когда на камере наблюдения испортилась флэшка с прошивкой, и камера нуждается в ремонте. Берём копеечную флэшку и меняем, а прошивку скопируем с точно такой же камеры. Пять минут рекламы, и теперь камера работает и показывает видеопоток вновь. Но есть нюанс. Дело в том, что она теперь является полной копией камеры-донора прошивки. Это и ежу понятно, они же и были одинаковыми — возразите вы. Были одинаковыми всем, кроме таких настроек, как MAC-адрес и идентификатор в облаке, куда камера сливает свой видеопоток. А теперь они совсем близнецы.

Когда распространились камеры с облачным доступом, массово решились такие проблемы, как доступ к камере без внешнего IP-адреса или с динамическим адресом. Теперь стало ненужным использовать проброс портов на роутере, VPN, динамический DNS, требующие целой инфраструктуры для доступа к камере. Запускай себе приложение, и оно получит доступ к видеопотоку или к архиву через облако. Производители камер в то время пробовали различные варианты, которые часто заканчивались печальными результатами, как с камерами Foscam, связанные с тем, что производитель выбрал путь простоты и дешевизны, а пользователи за него проголосовали рублём. Камеры становились легкодоступными, дешёвыми и, в конце концов, собой просто заполонили весь мир, проникнув в магазины, детские сады, зоопарки, аэропорты, бары, подъезды, офисы, входы, выходы, проходы, пароходы и даже в спальни с туалетами. В крупнейшем каталоге камер insecam.org тогда были сотни тысяч камер со всего мира.
Что такое криптоблок в прошивке, зачем он нужен и как его заменить
Всего голосов 53: ↑53 и ↓0+53
Комментарии29

Хранение мира в Snake Rattle'n'Roll

Время на прочтение34 мин
Количество просмотров7.3K
Много лет назад мне довелось поиграть на Dendy в игру Snake Rattle'n'Roll. Пройти её мне тогда так и не удалось, из-за широко известного в узких кругах бага с фонтанчиком на 7 уровне. Да, и на данный момент игра так и не пройдена. Прогресс пока остановился на последнем уровне из-за его сложности. Игра сама по себе для NES была достаточно нестандартна. Это был изометрический мир, в котором надо было карабкаться верх, по пути собирая бонусы, поедая ниблов (местная живность) и сражаясь с ногами, шашками и прочими грибами. Вроде бы ничего необычного, но продвигаясь дальше по уровням я замечал, что мир хоть и был разбит на уровни, но был единым целым, просто каждый из уровней происходил в другой ограниченной части этого мира. И вот однажды мне захотелось получить 3D модель данного мира, с целью распечатать себе сувенир на 3D принтере. Учитывая характеристики железа NES я представлял, что это будет не очень просто, как оно оказалось на самом деле судить вам. Итак, если вас заинтересовало исследование этого мира — добро пожаловать под кат.
Читать дальше →
Всего голосов 47: ↑47 и ↓0+47
Комментарии17