Expertus metuit - Лента недавних статейhttps://blog.regolit.compyrenginehttp://blogs.law.harvard.edu/tech/rssПерсональные настройки и улучшения в макоси/2024/03/24/personal-macos-tuning<p>Давно и успешно пользуюсь макосью и за долгие накопились персональные настройки и улучшения.</p>
<p>Про эффективную работу с клавиатурой я уже писал в статье <a href="/2021/03/24/macos-keyboard-shortcuts-and-russian-input-method">Клавиатурные сочетания макоси и русская раскладка</a>, про замену штатного SSH agent на аналогичный из gnupg в статье <a href="/2017/12/13/replacing-ssh-agent-with-gpg-agent">Меняем ssh-agent на gpg-agent</a>.</p>157Sun, 24 Mar 2024 21:56:00 GMTjournalctl/2024/09/23/journalctl<p>journalctl — это инструмент запросов и поиска в логах systemd. А это шпаргалка по journalctl, так как теперь им приходится часто пользоваться, а команды запоминаются с трудом, так как их много и они не особо интуитивные или логичные.</p>
<p>Сами логи в systemd структурированные, а journalctl умеет выводить записи из него в разных форматах. Формат можно менять через аргумент <code>-o</code>, всего их довольно много, включая json; если аргумент <code>-o</code> не указывать, то подразумевается <code>-o short</code>.</p>162Mon, 23 Sep 2024 14:30:00 GMTЭффективная работа с SSH/2024/04/06/effective-ssh<p>Ранее я выборочно писал о разных полезностях в SSH, а в этот раз решил написать вообще обо всём, чем я в SSH пользуюсь. Будет в меру объяснений и много примеров. По сути здесь весь мой опыт использования SSH и всё написанное здесь я лично использовал. Соответственно, если чем-то не пользовался (например, tun-устройствами), то об этом не пишу.</p>158Sat, 06 Apr 2024 22:59:00 GMTКак проверить цифровую подпись документа из госуслуг через openssl/2023/04/19/how-to-check-document-signature-from-gosuslugi-using-openssl<p>На сайте госуслуг можно заказать различные отчёты и выписки, подписанные электронной подписью. Основной документ обычно идёт в формате PDF, а электронная подпись скачивается отдельным файлом с расширением sig, так называемая <em>отcоединённая электронная подпись</em>. Выглядит скачивание документов с сайта примерно так:</p>
<p><img alt=" report" src="/files/f/gosuslugi-report-signature.png" style="border:1px solid #ddd;"></p>
<p>На самом сайте госуслуг есть онлайновый сервис проверки подписи, однако проверить можно и на локальной linux-машине без сторонних проприетарных программ.</p>155Wed, 19 Apr 2023 09:58:00 GMTTLS, удостоверяющие центры и связанные с ними проблемы/2023/04/16/tls-ca-issues<p>Ещё одна тема, на которой паразитируют техно-гики в России — это государственный удостоверяющий центр (SSL/TLS сертификат). К сожалению, тема крайне сложна и особенности этой технологии знают и понимают буквально единицы специалистов, остальные просто беспредметно истерят. Проблема с текущей моделью в TLS кроется совершенно в другой области и прилагать усилия по исправлению нужно именно там, но это крайне сложно, поскольку придётся бодаться с огромным межгосударственным болотом и корпоративными интересами.</p>
<p>Напомню историю вопроса. В 2022 году в госдуму был внесён законопроект <a href="https://sozd.duma.gov.ru/bill/244043-8">№ 244043-8</a>, в котором предусматривается создание российского национального удостоверяющего центра (УЦ) для централизованного выпуска TLS-сертификатов для, например, сайтов. Обоснование было предельно рациональным: западные УЦ стали отказывать российским клиентам в обслуживании и перестали выдавать сертификаты для их сайтов, поэтому решили создать свой собственный УЦ, чтобы не зависеть от западных. Чтобы выданные этим новым удостоверяющим центром сертификаты корректно обслуживались на компьютерах пользователей, им нужно добавить корневой сертификат удостоверяющего центра в доверенные. И в этой статье я максимально подробно расскажу, что же это означает, какие от этого могут быть проблемы, как их можно решить и почему это никогда не будет решено.</p>154Sun, 16 Apr 2023 03:37:00 GMTСмарт-карты и программирование (python)/2023/10/16/python-programming-and-smart-cards<blockquote>
<p>Эта статья является уже третьей в серии об использовании смарт-карт. Первая — <a href="/2017/03/10/programming-and-smart-cards">Смарт-карты и программирование</a> — была написана в 2017 году и все примеры в ней были на языках C и C++. Вторая — <a href="/2019/04/24/java-programming-and-smart-cards">Смарт-карты и программирование (java)</a> — в 2019 и в качестве базового использовался язык Java. И вот пришло время для очередной переработки, на этот раз всё на примере python3, код на котором получается компактным, выразительным и понятным. Кроме нового языка за эти годы накопились отзывы, замечания и предложения, появился опыт использования других устройств (криптографических USB-токенов, других типов бесконтактных карт), всё это отражено в тексте, который значительно отличается от предыдущих статей в структуре и формулировках.</p>
<p>Если вы только знакомитесь с этими технологиями, рекомендую читать именно эту статью, я постарался в ней учесть все недостатки прошлых, уточнить и прояснить терминологию, а также более детально раскрыть некоторые моменты. Ещё я добавил несколько новых разделов, которых не было в прошлых статьях: чипы Mifare Ultralight, NFC-метки и NDEF, прямое обращение к радиомодулю считывателя для выполнения произвольных команд NFC, банковские карты МИР, SIM-карты.</p>
</blockquote>
<p>Мы все активно пользуемся смарт-картами, даже не зная этого, чиповые банковские карты, NFC-метки, бесконтактные пропуски-ключи, USB-ключ для электронной подписи, сим-карты в телефонах — это всё смарт-карты. В этом очень большом тексте я детально расскажу об использовании смарт-карт на уровне прикладного ПО. Здесь будет много теории, много ссылок на стандарты и спецификации, много кода. Я не ставил цель написать энциклопедию, для этого формата статьи не хватит, но дать обзорное представление о предметной области вполне можно. В конце есть список книг, в которых тема смарт-карт раскрыта детально и системно.</p>
<p>Я выбрал Python за его простоту, доступность, удобство использования и богатую библиотеку модулей. От вас не требуется никаких дополнительных знаний, кроме Python и операционной системы, на которой вы будете запускать код. Изначально всё программное окружение ориентировано на Unix-подобные системы — разнообразные варианты Linux и macOS, однако всё должно работать и в Windows (однако я не проверял). Все демонстрационные программы используют консоль (терминал), поэтому должны работать примерно одинаково везде, я не использую никаких GUI-библиотек, только командную строку.</p>
<p>В тексте статьи нет разделения на отдельный блок с теорией и примерами, вместо этого теория и примеры чередуются, поэтому вы увидите первый код практически в самом начале.</p>
<p>Практически все доступные сторонние материалы (стандарты, спецификации, книги) написаны по-английски, поэтому вам нужно его знать, если хотите самостоятельно изучить тему более глубоко.</p>
<p>Если у вас есть предложения по содержимому, можете писать прямо в комментариях или напрямую на мой email: <a href="mailto:[email protected]">[email protected]</a></p>153Mon, 16 Oct 2023 22:14:00 GMTЭлектронные ключи и карты для СКУД/2023/03/03/key-cards-for-access-control-systems<p>СКУД (система контроля и управления доступом, Physical Access Control System, PACS) — это набор программно-аппаратных средств контроля и управления физическим доступом к дверям, воротам, турникетам и другим технологическим отверстиями. В систему входит множество датчиков, замков, камер и другое оборудование, но в данной статье меня будут интересовать только физические электронные ключи доступа, их типы, особенности, характеристики, проблемы и недостатки.</p>
<div class="toc">
<ul></ul>
</div>152Fri, 03 Mar 2023 22:51:00 GMTЦифровые подписи, криптографические токены, PKCS#11 и linux/2022/06/23/linux-security-tokens-pkcs11<p>Эта статья — нечто вроде инструкции по использованию USB криптотокенов в терминале (консоли) линукса и макоси. Ориентирована она прежде всего на российские реалии и рассматривает доступные у нас устройства и программное обеспечение.</p>
<p>Здесь не рассматриваются подробно детали устройства сертификатов и ключей, для этого я рекомендую прочитать статью <a href="/2020/09/05/more-and-better-about-digital-certs">Ещё больше и лучше о цифровых сертификатах: X.509, PKI, PKCS</a>, где я подробно рассматриваю прикладную криптографию, сертификаты, ключи, а также консольные инструменты для работы с ними.</p>
<p>Базовая операционная система: ubuntu/debian на архитектуре amd64, однако многие сценарии также применимы к макоси версии Catalina или выше (только intel, на arm не проверял), а также для линуксов на другой архитектуре, если для неё существуют подходящие драйверы устройств.</p>
<p>Для работы в макоси вам необходимо сначала поставить <a href="https://brew.sh">homebrew</a>.</p>
<p class="center">❈ ❈ ❈ </p>
<p>В рамках этой статьи я рассматриваю прежде всего штатные инструменты, которые применимы к любым токенам, поэтому все проприетарные криптопровайдеры типа Криптопро тут не описаны. Я настоятельно рекомендую сначала прочитать статью, прежде чем покупать криптотокен, для экспериментов вы можете использовать программный эмулятор SoftHSM (он описан ниже). К сожалению, на российском рынке очень много откровенно мусорных устройств, которые я советую игнорировать, про это я тоже отдельно напишу, поэтому экспериментируйте только с SoftHSM, для понимания принципов работы инфраструктуры он подходит идеально.</p>151Thu, 23 Jun 2022 23:48:00 GMTПереключение между недавними табами в Chrome через Ctrl+Tab/2021/12/23/mru-tabs-switching-in-chrome<p>В Google Chrome переключение между табами по Ctrl+Tab всегда происходит по порядку следования табов. То есть нажатие на Ctrl+Tab всегда переключает на следующий по порядку таб, а Ctrl+Shift+Tab — на предыдущий. Это чрезвычайно неудобно, если приходится быстро и часто переключаться между несколькими табами, которые находятся в разных местах. Такая фича называется Most recently used switch (<em>MRU Switch</em>). В других браузерах такое поведение включается штатным образом через настройки, но не в chrome. Есть даже очень старая <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=5569">задача</a> из трекера на эту тему, но она была без всяких комментариев закрыта гуглом несмотря на сотни комментариев.</p>
<p>Раньше было можно изменить поведение через расширения, но Google и эту возможность заблокировал, причём именно для сочетания Ctrl+Tab, внятного объяснения тоже не последовало.</p>
<h2 id="a5abff9f1fb3ca809212e4ae0781557c">Способ 1, через расширение QuicKey<a class="headerlink" href="#a5abff9f1fb3ca809212e4ae0781557c" title="Permanent link">¶</a></h2>
<p>Однако пользователи нашли способ. В chrome web store есть расширение <a href="https://chrome.google.com/webstore/detail/quickey-%E2%80%93-the-quick-tab-s/ldlghkoiihaelfnggonhjnfiabmaficg/related?hl=en">QuicKey</a> и в нём описана возможность включить MRU Switch через хак девелоперской консоли.</p>149Thu, 23 Dec 2021 19:27:00 GMTОперации с Android через adb shell/2021/12/17/adb-shell-android-manipulations<p>В этом тексте описаны полезные вещи, которые можно делать с Android через adb shell. И часто их можно сделать только так.</p>
<p>Чтобы выполнить инструкции из этой статьи, нужно сначала включить режим разработчика на телефоне:</p>
<ul>
<li>зайти в раздел <em>Настройки/Settings</em> → <em>О телефоне/About Phone</em>;</li>
<li>найдите пункт с номером сборки (<em>Build number</em>) и нажимайте его быстро до тех пор, пока не появится надпись типа «Теперь вы стали разработчиком»</li>
<li>в телефонах с MIUI нужно нажимать по пункту <em>MIUI Version</em></li>
</ul>148Fri, 17 Dec 2021 12:15:00 GMT