В статье описывается, как менять невидимые настройки Google Chrome — корпоративные правила (policies).
В статье рассказывается, как программисту пользоваться git. Текст основан на многолетнем опыте внедрения git и консультаций по нему. Основной фокус будет именно на практическом использовании и самых важных моментах. Я рекомендую читать статью последовательно, она писалась не как набор разрозненных рецептов, а именно как попытка объяснить, без описания всех возможных сценариев, команд и их аргументов.
Статья является переработкой моего же текста 2016 года Git в реальной жизни. За эти восемь лет git значительно изменился в лучшую сторону и стал (в его оригинальной консольной версии) гораздо понятнее.
journalctl — это инструмент запросов и поиска в логах systemd. А это шпаргалка по journalctl, так как теперь им приходится часто пользоваться, а команды запоминаются с трудом, так как их много и они не особо интуитивные или логичные.
Ранее я писал в отдельных статьях о разных полезностях в SSH, а в этой решил написать вообще обо всём, чем в SSH пользуюсь. Будет в меру объяснений и много примеров. По сути здесь весь мой опыт использования SSH и всё написанное здесь я лично использовал. Соответственно, если чем-то не пользовался (например, tun-устройствами), то об этом не пишу.
Дальше будет о ключах, туннелях и агентах.
Давно и успешно пользуюсь макосью и за долгие годы накопилось множество конфигов, настроек и улучшений.
Про эффективную работу с клавиатурой я уже писал в статье Клавиатурные сочетания макоси и русская раскладка, про замену штатного SSH agent на аналогичный из gnupg в статье Меняем ssh-agent на gpg-agent. В этой статье будет про конфигурацию и софт.
Эта статья является уже третьей в серии об использовании смарт-карт. Первая — Смарт-карты и программирование — была написана в 2017 году и все примеры в ней были на языках C и C++. Вторая — Смарт-карты и программирование (java) — в 2019 и в качестве базового использовался язык Java. И вот пришло время для очередной переработки, на этот раз всё на примере python3, код на котором получается компактным, выразительным и понятным. Кроме нового языка за эти годы накопились отзывы, замечания и предложения, появился опыт использования других устройств (криптографических USB-токенов, других типов бесконтактных карт), всё это отражено в тексте, который значительно отличается от предыдущих статей в структуре и формулировках.
Если вы только знакомитесь с этими технологиями, рекомендую читать именно эту статью, я постарался в ней учесть все недостатки прошлых, уточнить и прояснить терминологию, а также более детально раскрыть некоторые моменты. Ещё я добавил несколько новых разделов, которых не было в прошлых статьях: чипы Mifare Ultralight, NFC-метки и NDEF, прямое обращение к радиомодулю считывателя для выполнения произвольных команд NFC, банковские карты МИР, SIM-карты.
Мы все активно пользуемся смарт-картами, даже не зная этого, чиповые банковские карты, NFC-метки, бесконтактные пропуски-ключи, USB-ключ для электронной подписи, сим-карты в телефонах — это всё смарт-карты. В этом очень большом тексте я детально расскажу об использовании смарт-карт на уровне прикладного ПО. Здесь будет много теории, много ссылок на стандарты и спецификации, много кода. Я не ставил цель написать энциклопедию, для этого формата статьи не хватит, но дать обзорное представление о предметной области вполне можно. В конце есть список книг, в которых тема смарт-карт раскрыта детально и системно.
Я выбрал Python за его простоту, доступность, удобство использования и богатую библиотеку модулей. От вас не требуется никаких дополнительных знаний, кроме Python и операционной системы, на которой вы будете запускать код. Изначально всё программное окружение ориентировано на Unix-подобные системы — разнообразные варианты Linux и macOS, однако всё должно работать и в Windows (однако я не проверял). Все демонстрационные программы используют консоль (терминал), поэтому должны работать примерно одинаково везде, я не использую никаких GUI-библиотек, только командную строку.
В тексте статьи нет разделения на отдельный блок с теорией и примерами, вместо этого теория и примеры чередуются, поэтому вы увидите первый код практически в самом начале.
Практически все доступные сторонние материалы (стандарты, спецификации, книги) написаны по-английски, поэтому вам нужно его знать, если хотите самостоятельно изучить тему более глубоко.
Если у вас есть предложения по содержимому, можете писать прямо в комментариях или напрямую на мой email: [email protected]
На сайте госуслуг можно заказать различные отчёты и выписки, подписанные электронной подписью. Основной документ обычно идёт в формате PDF, а электронная подпись скачивается отдельным файлом с расширением sig, так называемая отcоединённая электронная подпись. Выглядит скачивание документов с сайта примерно так:
На самом сайте госуслуг есть онлайновый сервис проверки подписи, однако проверить можно и на локальной linux-машине без сторонних проприетарных программ.
Ещё одна тема, на которой паразитируют техно-гики в России — это государственный удостоверяющий центр (SSL/TLS сертификат). К сожалению, тема крайне сложна и особенности этой технологии знают и понимают буквально единицы специалистов, остальные просто беспредметно истерят. Проблема с текущей моделью в TLS кроется совершенно в другой области и прилагать усилия по исправлению нужно именно там, но это крайне сложно, поскольку придётся бодаться с огромным межгосударственным болотом и корпоративными интересами.
Напомню историю вопроса. В 2022 году в госдуму был внесён законопроект № 244043-8, в котором предусматривается создание российского национального удостоверяющего центра (УЦ) для централизованного выпуска TLS-сертификатов для, например, сайтов. Обоснование было предельно рациональным: западные УЦ стали отказывать российским клиентам в обслуживании и перестали выдавать сертификаты для их сайтов, поэтому решили создать свой собственный УЦ, чтобы не зависеть от западных. Чтобы выданные этим новым удостоверяющим центром сертификаты корректно обслуживались на компьютерах пользователей, им нужно добавить корневой сертификат удостоверяющего центра в доверенные. И в этой статье я максимально подробно расскажу, что же это означает, какие от этого могут быть проблемы, как их можно решить и почему это никогда не будет решено.
СКУД (система контроля и управления доступом, Physical Access Control System, PACS) — это набор программно-аппаратных средств контроля и управления физическим доступом к дверям, воротам, турникетам и другим технологическим отверстиями. В систему входит множество датчиков, замков, камер и другое оборудование, но в данной статье меня будут интересовать только физические электронные ключи доступа, их типы, особенности, характеристики, проблемы и недостатки.
Эта статья — нечто вроде инструкции по использованию USB криптотокенов в терминале (консоли) линукса и макоси. Ориентирована она прежде всего на российские реалии и рассматривает доступные у нас устройства и программное обеспечение.
Здесь не рассматриваются подробно детали устройства сертификатов и ключей, для этого я рекомендую прочитать статью Ещё больше и лучше о цифровых сертификатах: X.509, PKI, PKCS, где я подробно рассматриваю прикладную криптографию, сертификаты, ключи, а также консольные инструменты для работы с ними.
Базовая операционная система: ubuntu/debian на архитектуре amd64, однако многие сценарии также применимы к макоси версии Catalina или выше (только intel, на arm не проверял), а также для линуксов на другой архитектуре, если для неё существуют подходящие драйверы устройств.
Для работы в макоси вам необходимо сначала поставить homebrew.
❈ ❈ ❈
В рамках этой статьи я рассматриваю прежде всего штатные инструменты, которые применимы к любым токенам, поэтому все проприетарные криптопровайдеры типа Криптопро тут не описаны. Я настоятельно рекомендую сначала прочитать статью, прежде чем покупать криптотокен, для экспериментов вы можете использовать программный эмулятор SoftHSM (он описан ниже). К сожалению, на российском рынке очень много откровенно мусорных устройств, которые я советую игнорировать, про это я тоже отдельно напишу, поэтому экспериментируйте только с SoftHSM, для понимания принципов работы инфраструктуры он подходит идеально.