Обновить

Моя лента

Тип публикации
Порог рейтинга
Уровень сложности
Предупреждение
Войдите или зарегистрируйтесь, чтобы настроить фильтры
Пост

JEP 524 в JDK 26 — второй preview PEM API

Наконец-то работа с PEM в Java становится похожа на API, а не на набор ручного парсинга, Base64 и странных телодвижений.

Справка: PEM или Privacy-Enhanced Mail - это текстовый контейнер для криптографических данных. Проще говоря – это способ хранить или передавать ключ, сертификат или другой crypto-объект не в бинарном виде, а в текстовом.

Раньше с PEM работали так:

String pem = "-----BEGIN PUBLIC KEY-----\n"
        + Base64.getMimeEncoder(64, "\n".getBytes())
                .encodeToString(publicKey.getEncoded())
        + "\n-----END PUBLIC KEY-----";

А в обратную сторону, но уже с ручной нормализацией PEM, Base64-декодированием и KeyFactory:

String normalized = pem
        .replace("-----BEGIN PUBLIC KEY-----", "")
        .replace("-----END PUBLIC KEY-----", "")
        .replaceAll("\\s", "");

byte[] der = Base64.getDecoder().decode(normalized);

PublicKey key = KeyFactory.getInstance("EC")
        .generatePublic(new X509EncodedKeySpec(der));

По факту PEM в Java долгое время был не отдельным API, а набором низкоуровневых шагов, которые разработчик собирал руками.

А теперь это выглядит так:

var encoder = PEMEncoder.of();
String pem = encoder.encodeToString(keyPair);

var decoder = PEMDecoder.of();
KeyPair decoded = decoder.decode(pem, KeyPair.class);

То есть ключевую пару можно закодировать в PEM и декодировать обратно буквально в несколько строк.

Во втором preview:

  • PEMRecord переименовали в PEM

  • добавили decode()

  • расширили поддержку KeyPair и PKCS8EncodedKeySpec

  • упростили шифрование через EncryptedPrivateKeyInfo

А так, как все это дело еще в preview, не забываем использовать --enable-preview.

❓ Минус еще один кусок криптографической копипасты из Java-кода. PEM в Java постепенно перестает быть унылым?

Присоединяйтесь к русскоязычному сообществу разработчиков на Spring Boot в телеграм — Spring АйО, чтобы быть в курсе последних новостей из мира разработки на Spring Boot и всего, что с ним связано.

Теги:
+4
Комментарии0
Статья

Работаем с контейнерами в C++ с помощью библиотеки Ranges

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.1K

Понятие контейнер сейчас активно применяется в контексте Docker и аналогичных решений по контейнеризации. Однако, в языке C++ контейнеры существуют уже очень давно и являются фундаментальной частью Standard Template Library (STL). Они предоставляют готовые реализации наиболее часто используемых структур данных, избавляя разработчика от необходимости писать их с нуля.

Контейнеры C++ можно разделить на несколько основных категорий. Последовательные контейнеры (Sequence Containers) хранят элементы в линейной последовательности, при этом порядок элементов определяется позицией добавления. Ассоциативные контейнеры (Associative Containers) автоматически сортируют элементы по ключу. При этом, они обеспечивают достаточно быстрый поиск (O(log n)). Неупорядоченные ассоциативные контейнеры (Unordered Associative Containers) хранят элементы в хеш-таблицах. Обеспечивают поиск в среднем за O(1). Адаптеры контейнеров (Container Adapters) предоставляют ограниченный интерфейс поверх других контейнеров.

В рамках данной статьи мы будем говорить об использовании библиотеки Ranges для работы с контейнерами.

Читать далее
Статья

Cнижаем энергопотребление видеосервера на Linux с помощью измерителя тока

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.9K

Меня тут давно донимает вопрос снижения энергопотребления в квартире, так как ежемесячный расход электроэнергии каждый месяц переваливает за 300 киловатт. В связи с этим решил понаблюдать за работой домашнего видеорегистратора. Для этих целей крутится небольшой сервачок (Debian Linux) на MiniITX с Ryzen 3 3200GE, который обслуживает несколько IP-камер и пишет их с помощью Xeoma (а также параллельно крутит Home Assistant).

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

Далее попытался понять, как мне снизить энергопотребление и выявил интересную особенность... К серверу подключён монитор, который в графическом интерфейсе отображает картинку с видеокамер. В таком режиме работы процессор нагружен на 80-90% по всем ядрам.

Читать далее
Новость

Создатель Wordle вернулся с новой игрой — Parseword

Время на прочтение1 мин
Охват и читатели6.1K

Спустя четыре года после продажи прав на головоломку Wordle газете New York Times создатель игры Джош Уордл запустил новый игровой проект под названием Parseword. Новинка оказалась сложнее предшественницы, пишет Verge.

Читать далее
Новость

В OpenIDE появился импорт настроек из JetBrains IDE и VS Code при первом запуске

Время на прочтение1 мин
Охват и читатели8.2K

В OpenIDE появилось небольшое обновление, которое упрощает первый запуск для новых пользователей.

Теперь при первом открытии IDE появляется диалог импорта настроек из других редакторов — например, из IDE на базе JetBrains или VS Code.

Можно перенести основные настройки из среды, которой вы пользовались раньше. После импорта OpenIDE предложит установить набор рекомендуемых плагинов.

Читать далее
Статья

Анализ плутония из советского датчика дыма

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели20K

Плутоний — это вещество, имеющее широкий спектр применений, от устроения ядерного армагеддона до повседневной защиты от пожаров. Этот химический элемент массово производился в ядерных реакторах со Второй мировой войны, в отработанном ядерном топливе он встречается в различных изотопных составах, по которым можно определить такие параметры конструкции реактора, как выгорание топлива, исходная степень обогащения урана и спектральные характеристики нейтронов. Советский Союз изготовил больше плутония, чем любая другая страна. Основная его часть предназначалась для благородной цели сдерживания капиталистического империализма, однако малая доля досталась и ионизационным датчикам дыма наподобие КИ-1, РИД-1 и РИД-6М. (Буржуазные поджигатели войны предпочитали и по-прежнему предпочитают использовать для этого америций-241.) Время от времени жители бывшего СССР пытаются продавать плутоний из старых датчиков дыма на чёрном рынке ядерных технологий, считая, что их товар привлечёт бешеные деньги террористов, стремящимся развязать ядерную войну. Чуть ниже мы подробнее рассмотрим вероятность этого.

Мне были любопытны технические характеристики плутония из советских датчиков дыма, поэтому я нашёл старый датчик КИ-1 и извлёк из него источник. Конструкция источника во многом походит на конструкцию источников детектирующих камер в виде тюбика помады из первых датчиков Pyrotronics, производившихся в США. Советский выполнен из латуни и немного шире, чем аналогичный Pyrotronics. На внутренней осевой резьбе закрепляется крышкообразная защита от альфа-частиц, закрывающая полосу, которая содержит активный осадок; таким образом регулируется степень ионизации, производимой источником в камере, а также чувствительность датчика. Ниже я опишу свой анализ гамма- и альфа-излучения этого источника, а также поделюсь своими выводами о возрасте, активности, способе производства и пригодности этого плутония для ведения ядерной войны.

Читать далее
Пост

Попадая в подсеть контроллера домена, первое, что делает любой пентестер, это перебор учётных записей пользователей (Kerbrute атака). Существует много статей об этом типе эксплуатации, но в каждом источнике авторы используют заранее подготовленный словарь (Смиты, Джоны, Уайты...), который не слишком точно соответствует реальной жизни. Сегодня мы попытаемся заполнить этот пробел и создать универсальный рабочий словарь для атаки Kerbrute в российской среде AD.

Первое, что нам нужно сделать — понять, как администраторы создают учётные записи в домене, а точнее — каков шаблон имён пользователей. Лучшей практикой для корпоративных имён пользователей является сочетание фамилии человека и первой буквы его имени, например в моём случае — iglinkin@corporate.local или i.glinkin@corporate.local. Шаблон зависит от политики безопасности компании и может выглядеть так: ivanglinkin@corporate.local, glinkini@corporate.local, glinkin.i@corporate.local, glinkinivan@corporate.local, или даже просто фамилия — glinkin@corporate.local

Для более точного определения формата пентестеры изучают сайты организаций и посещаемых ими публичных мероприятий: там как раз и указан верный формат. Например, в Microsoft используют формат ИФамилия@microsoft.com: John Winn имеет почту jwinn@microsoft.com.

Как мы можем видеть, фамилия является основной частью корпоративного логина. Имя не так важно, так как используется только первая буква, поэтому нам даже не нужно знать настоящее имя — достаточно просто добавить букву перед или после фамилии. Следовательно, следующий самый сложный и одновременно важный этап — собрать данные о фамилиях.

Мониторя интернет, я нашёл интересный источник https://woords.su/full-name/russian-surnames: в нём содержится почти полный список русских фамилий, в том числе уже c окончаниями "а" для женской половины. Ну а дальше дело техники: создаем скрипт,
for p in {1..2234}; do curl -shttps://woords.su/surnames/russian/page-$p | grep "<tr><td>" | sed 's/<tr><td>/\n/g' | sed 's/<\/td><td>/\n/g' | cut -d "/" -f 5 | cut -d "\"" -f 1 | sed 's/surname-//g' >> surnames.txt; done
который парсит все фамилии и кладет в файлик surnames.txt.

Далее генерируем простой словарь с буквами. Его можно даже создать вручную, там всего-то будет 28 букв (минус Ë, Й, Ъ, Ы, Ь - так как с них имена не начинаются): a, b, v, g , d, e, zh, z, i, y, k, l, m, n, o, p, r, s, t, u, f, h, ts, ch, sh, shch, yu, ya.

Последний шаг — это добавить каждую букву перед каждой фамилией. Что может быть проще?
for name in $(cat one_letter.txt); do for surname in $(cat lastnames.txt); do echo $name$surname; done;done
Полный список username'ов будет состоять из чуть более 9 миллионов. Достаточно много, но, как показывает моя практика, они перебираются за 1.5 часа через kerberos_enumusers от метасплоита.

Используя этот универсальный метод, можно... в общем, можно сделать массу того, чего делать не стоит ибо большой брат придет за вами.
А для исследовательских целей велком ко мне на 📱 GitHub и скачивайте уже подготовленные словари для ваших текущих проектов.

🧠 Обязательно поделись с теми, кому это может быть полезно 💬 Телеграм | 💬 Max | 📝 Хабр | 💙 ВКонтакте | ⚡️Бустануть канал

Теги:
+3
Комментарии4
Статья

Temporal: 9-летний путь к исправлению времени в JavaScript

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели7.1K

Cтарший инженер-программист в организации JavaScript Infrastructure & Terminal Experience компании Bloomberg Джейсон Уильямс опубликовал пост, в котором рассказал, как он вместе с командой реализовывал библиотеку Temporal вместо Date для различных типов дат и времени. Автор выступает делегатом TC39 (группы экспертов из Ecma International, отвечающей за стандартизацию и развитие языка JavaScript) и имеет опыт стандартизации функций, реализации языка и участия в крупных проектах с открытым исходным кодом. Джейсон также является создателем движка Boa JavaScript.

Читать далее
Новость

Нужно ли переезжать в столицу ради карьеры в ИТ? Статистика рынка и опрос специалистов

Время на прочтение3 мин
Охват и читатели6.1K

Долгое время в российском ИТ считалось, что для серьёзного карьерного роста разработчику нужно переезжать в Москву или Санкт-Петербург. Там концентрировались продуктовые компании, архитектурные команды и самые высокие зарплаты.

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

Мы решили посмотреть на цифры и проверить, насколько релокация сегодня влияет на карьеру ИТ-специалистов. Собрали статистику рынка и результаты нескольких опросов — в том числе нового исследования getmatch и Островка.

Читать далее
Статья

Почему Яндекс.Мессенджер

Время на прочтение3 мин
Охват и читатели13K

В роли эксперта, который давно в теме корпоративных мессенджеров (ресёрч-разработка-внедрение), нашёл несколько ограничений, которые можно обойти сегодня и получить обновления завтра. Экосистема бизнес-продуктов Яндекса заметно развивается в последние годы. И замечательный поиск, как вишенка на торте.

Читать далее
Статья

Сканировать недостаточно: строим системную работу с уязвимостями

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели6.7K

За окном 2026 год, а компании по-прежнему взламывают через незакрытые уязвимости. При этом управление уязвимостями часто сводится к нерегулярному скану и надежде, что «пронесёт».

Но не пронесёт. Особенно если внутри работает Jenkins с уязвимостью на чтение произвольных файлов, а наружу торчит GitLab, через который до обновления можно было сбросить пароль к любой учётке.

Привет, Хабр! Я  Виктор Бобыльков, директор по кибербезопасности МТС Web Services Cloud, где помогаю строить нашу собственную платформу и делать Security-процесс прозрачным и удобным.

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

Мы пройдём по пяти уровням зрелости — от базового сканирования до автоматизации, whitebox-подхода и специфики KPI. Размер компании не имеет значения — подойдёт как для небольшой команды, так и для бигтеха. Заодно вы сможете свериться, где находитесь сейчас и какие шаги впереди.

Читать далее
Новость

«Делимобиль» получил убыток 3,7 млрд рублей по итогам 2025 года

Время на прочтение2 мин
Охват и читатели10K

ПАО «Каршеринг Руссия», владелец сервиса каршеринга «Делимобиль», по итогам 2025 года зафиксировал чистый убыток в размере 3,7 млрд рублей против 8 млн рублей прибыли годом ранее. Это следует из годовой отчётности компании.

Читать далее
Статья

Генерация коммитов, ручной запуск Skills и быстрые действия в чате: Veai 5.6

Время на прочтение2 мин
Охват и читатели7K

Работа с агентом обычно прерывается мелкими операциями: написать сообщение коммита, скопировать кусок ответа, прикрепить скриншот. В релизе Veai 5.6 (ИИ-агент к JetBrains IDEs для написания кода, тестирования и отладки с доступом к топовым LLM и всем внутренним инструментам IDE) мы убрали часть этой рутины. Добавили генерацию коммитов из diff, быстрые действия для текста ответа, явный технический контекст запроса, ручной вызов Skills и более простой способ прикреплять изображения.

Читать далее

Ближайшие события

Новость

«Микрон» выпустила отладочный набор «Игровая консоль» на базе российского микроконтроллера MIK32 «Амур»

Время на прочтение3 мин
Охват и читатели17K

Компания «Микрон» выпустила в продажу отладочный набор «Игровая консоль». Это отечественная игровая консоль на базе российского микроконтроллера MIK32 «Амур» (К1948ВК015/018) на архитектуре RISC‑V (MIK32 Wiki, GitHub).

Читать далее
Статья

Тренажёр по BPMN: дистанционное банковское обслуживание

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

В данной статье-тренажёре мы подготовили 25 заданий на составление BPMN-модели процесса кредитования в ДБО. К каждому заданию мы подготовили рекомендации по его выполнению, а также под спойлерами спрятали наше решение и его объяснение. Возможно, наше понимание и исполнение может отличаться от того, к которому придёте вы — мы будем рады подискутировать в комментариях.

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

Читать далее
Статья

Блеск и нищета Cluster API Kubernetes

Время на прочтение7 мин
Охват и читатели8K

Kubernetes полюбился разработчикам своим удобством: описал развертывание, в любой момент изменил параметры — и все работает. Но вот раскатка самих кластеров долгое время оставалась лоскутным одеялом: Terraform, Ansible, десятки плейбуков и пайплайнов. Потерял стейт — и начинается квест. 

Cluster API (CAPI) закрыл этот разрыв и за последние годы стал едва ли не стандартом для управления Kubernetes-кластерами. Он превратил развертывание и сопровождение инфраструктуры в такой же декларативный процесс, как деплой приложения.

В нашей платформе «Штурвал» мы уже давно используем Cluster API в продакшене. И довольно быстро стало понятно: это не просто удобный способ развернуть Kubernetes, а смена парадигмы эксплуатации. Но вместе с предсказуемостью приходят новые сложности — от обновлений управляющей плоскости до нетривиальных сценариев отказа. В этой статье разберемся, чем хорош Cluster API, а в чем его подводные камни, о которых обычно узнают уже в ходе эксплуатации.

Читать далее
Статья

Смазка подвижных частей паяльных установок

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.8K

Итак – у вас есть цех поверхностного монтажа. В цеху есть печь. В печи есть конвейер. И узлы конвейера требуют смазки. Конечно, на производстве есть и иные механизмы, работающие в условиях высоких температур, однако, горячее сердце линии монтажа – именно конвейерная печь. Обсудим, как надо ее смазывать, а как не надо.

Читать далее
Статья

Кибербезопасность ИИ. Часть 3. Регулирование, стандартизация и кибербезопасность ИИ

Уровень сложностиПростой
Время на прочтение19 мин
Охват и читатели6.1K

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

Читать далее
Новость

«Режим Xbox» появится на каждом ПК с Windows 11, а Project Helix станет доступна тестерам в 2027 году

Время на прочтение2 мин
Охват и читатели7.7K

Microsoft планирует запустить Xbox Full Screen или «Режим Xbox» на все ПК с Windows 11. Внедрение полноэкранного режима на отдельных рынках стартует со следующего месяца. Помимо этого, Microsoft улучшает некоторые компоненты, чтобы сделать Windows 11 более эффективной в играх. Альфа-версии девкитов недавно анонсированной Xbox Project Helix начнут отправлять разработчикам в начале 2027 года.

Читать далее
Статья

10 причин попробовать Effect TS/Основы Effect TS

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

Effect-фреймворк, который никого не может оставить равнодушным. Читая комментарии к другим постам, я заметил, что добрая часть хабра считает, что эффект это избыточно сложная и не особо нужная технология. В своей статье я обозначаю 10 причин, почему эту технологию стоит попробовать, даже если вы дико предвзятый разработчик, а также даю экскурс по базам фреймворка.

Читать далее