Как работает Сигмоби 🆔
1️⃣ Проверяем наличие плагина в window.SigmobiPlugin;
2️⃣ Создаем payload с любыми данными, например с uuid запроса. Они вернутся внутри JWT токена;
3️⃣ Вызываем метод SigmobiPlugin.auth(payload, scope)
4️⃣ Показывается окно (iframe расширения) где выбирается подпись для входа;
5️⃣ Подписывается JSON.stringify(payload) и передается в API Сигмоби вместе с сертификатом;
6️⃣🟩🟦🟪 проверят сертификат, подпись и возвращает JWT токен с переданным payload и scope данными;
7️⃣ Клиент валидирует SigmobiPlugin.verify(token) токен своим ключом;
8️⃣ Если токен валидный продолжает свой флоу аутентификации используя доверенные данные из токена.
Я погнал дальше! 🚗
@sopov_blog
✅ All tests passed
Как минимум два браузера - Chrome и Яндекс Браузер должны работать на 100% с моим расширением.
Для тестов этого достаточно, в остальных Chromium браузерах будет тоже 100%
Факт: этот тест был сконвертирован из основных тестов плагина в специальный для расширения хрома. И это все заняло, наверно, около часа общения с claude-4-sonnet (max) 🧑💻
Я погнал дальше спать! 😴
@sopov_blog
Ищу добровольцев для тестирования инсталлятора Сигмоби.Плагин
Ребята, у меня к вам небольшая просьба — скачать и запустить установку Сигмоби.Плагин.
Это 100% безопасно!
Он делает одну простую вещь — копирует файлик host/host.exe в пользовательскую директорию и прописывает манифест Native messaging host
Больше всего меня волнует установка под виндовс т.к. инсталлятор не подписан (нет пока нужного сертификата) в отличии от мак, где пакет подписан и нотаризован в Apple.
🔵Сигмоби.Плагин-x64-1.0.0.exe
🔵Сигмоби.Плагин-ARM64-1.0.0.pkg
🔵Сигмоби.Плагин-Intel-1.0.0.pkg
Спасибо, и всем +100 в карму ❓
Вопросы в комментарии 👇
Я погнал дальше! 🚗
UPD: Только сейчас заметил, что ссылки были без HTTPS 😭
@sopov_blog
🔐 Сигмоби.Плагин — мощное решение для подписи документов в браузере
Я дописал кроссплатформенный Native Messaging Host для Chrome Extensions с полной поддержкой КриптоПро! 😎
✨ Основные возможности:
🖊️ Электронная подпись
🔵Отсоединенная и прикрепленная для PDF
🔵Мульти-подпись (несколько подписей в одном документе)
🔵Подпись и проверка хешей Стрибог-256
🔍 Проверка и валидация
🔵Проверка сертификатов и цепочек доверия
🔵Валидация существующих подписей
🔵Хеширование по ГОСТ Р 34.11-2012
📁 Работа с большими файлами
🔵Поддержка файлов до 4GB
🔵Автоматическая chunked-обработка > 800KB (обход ограничения хрома)
🔵Multi-process архитектура Chrome Native Messaging
🖥️ Кроссплатформенность
🔵macOS (ARM64 + Intel)
🔵Windows x64
🔵Единый JSON API для всех платформ
🎯 Полностью готов к работе: 11 команд протестированы и работают стабильно!
Я погнал дальше! 🚗
@sopov_blog
➡️Run➡️Run➡️Run
Сборка любимого проекта должна быть по красоте 😎
🖥 Техническое:
🔵Инсталлятор написан на Go 1.21 в виде исполняемого файла для macOS и Windows.
🔵Для macOS он упакован в стандартный PKG-инсталлятор, внутри которого запускается этот файл.
🔵PKG подписывается сертификатом Apple Developer ID Application и проходит нотаризацию (отправляется в Apple и получает статус) для распространения через интернет.
🔵В Windows всё проще: запускается консольная утилита, которая за 5 секунд устанавливает всё необходимое и закрывается. Готово — плагин уже работает!
🔴Но в Windows пока есть проблема: при запуске файл вызывает предупреждение о неизвестном источнике. Чтобы его избежать, нужно подписать файл специальным EV Code Signing сертификатом. Получить его пока не удалось, но надеюсь, что получится.
Я погнал дальше! 🚗
✅ All tests passed
Обожаю эти зелёные галочки после бессонных ночей на рассвете ☀️
Ситуация, когда расширение КриптоПро удалили из стора, заставила меня разобраться с Native Messaging и написать собственный плагин для взаимодействия моего расширения с криптопровайдером.
Близится гулянка к завершенью,
Закончен пир за праздничным столом.
Сидит старик в неведомом томленьи
И смотрит как светает за окном.
Как проебать запуск 📞
Найдите 10 отличий 🙂
DialApp я придумал много раньше, чем этот парень. Но он уже запустился и получил 163 голоса на PH.
Да у него нет расширения для хрома, и звонить можно только набрав номер вручную. И звонит оно на все глобальные номера (тут конечно сомнительно по себестоимости)
Будем стараться сделать всех 🧑💻
Пиши в коменты свои мысли 👇
Ну всё! Держите свои телефоны.
Скоро допишу пару интересных технических постов.
1. Бесшовная авторизация между сайтом и расширением с защитой от фрода.
2. Идея не уникальна, если ты что-то придумал, то и кто-то другой это уже делает.
3. Бонус. Как заставить гопату 4.1 писать код для КриптоПро.
Сначала Питер, потом Москва
✅ Выставка шедевров Виктора Васнецова
✅ Мозаика в Спасе на крови
✅ Обед в ресторане Arancino
✅ Пройти 12 км по центру Питера
✅ Сон 4 часа в отеле на против Астории
✅ Ужин почти как на «ПЛ» в Толстом Фраере
🚆 Телепорт в Москву
👀 Смотреть в стену — полезнее, чем кажется.
Представь: перед тобой важнейшая задача, а ты никак не можешь начать.
Два кофе уже выпито, но вместо работы — два часа бесконечного скролла.
Решение банальное:
– Выключаешь всё, что мигает и пиликает
– Садишься и просто смотришь в стену
– Через 20–30 минут становится невыносимо скучно
– Появляется мысль: "А может, всё-таки поработать?"
– Берёшь и закрываешь задачу
🥸 Эйнштейн называл это "полезным ничегонеделаньем",
зумеры — "детоксом",
а кто в теме — "осознанным созерцанием".
🧠 Мозг отдыхает, фокус возвращается, ты снова в игре.
Испанские ученые выявили связь между физическим состоянием человека и его восприятием событий прошлого.
На основании проведенного исследования ученые
пришли к выводу, что сожаление об упущенных возможностях не только мешает людям наслаждаться текущим моментом в полной мере, но и негативно влияет на их качество жизни.
Выяснилось, что участники эксперимента, концентрирующиеся на негативных событиях, случившихся в прошлом, болели чаще остальных и острее чувствовали боль.
Самыми счастливыми и физически здоровыми людьми оказались те, которые успевали наслаждаться моментом «здесь и сейчас», вспоминая о прошлом без ностальгии. (Universidad de Granada).
Сожаление о прошлом это эмоциональная ловушка. Кстати, вот и причина, почему бизнес по удалению татуировок не менее востребован, чем их нанесение.
"Есть три ловушки, которые воруют радость и мир: сожаление о прошлом, тревога за будущее и неблагодарность за настоящее". Ошо.
Сигмоби 🆔
Скажи-ка мне, приятель…
У тебя есть электронная подпись? Настоящая, квалифицированная?
А теперь скажи – ты смог войти на сайт?
Нет?
Знаешь почему?
Почему, чёрт побери?
Потому что этот чёртов сайт не уважает твою подпись.
А если он не уважает твою подпись – он не уважает тебя.
А если он не уважает тебя – то зачем, мать его, ты вообще туда заходишь?
В России каждый год выдают десятки миллионов подписей. Это колоссальная цифра. И огромный рынок!
С помощью подписи можно делать почти всё… кроме входа на сайт. На сайт, Карл!
Я долго крутил эту мысль в голове. Но решения не было – нужно внедрять КриптоПро, ставить плагин, разбираться, как с этим работать, и терять миллионы нервных клеток.
После того инцидента, когда расширение КриптоПро удалили из CWS, я начал писать собственный плагин и новую версию расширения.
Вот тут и сложилось 2+2!
Расширение автоматически добавляет возможность авторизации через Сигмоби.
На сайте вставляем кнопку и пару строк JS кода.
Это сильно упрощает и облегчает использование подписи для доверенной авторизации.
Во всю готовлю релиз – и погнал дальше! 🚗
@sopov_blog
Нам сегодня 2.0 годика 🎂
За это время почти 10 000 пользователей подписали через наш сервис более 100 000 документов!
Я погнал дальше! 🚗
@sopov_blog
Подкрепляемся и идем готовить релиз ✅
Сигмоби скоро 2 года, и символично — релиз 2.0 😎
💎Бесшовная авторизация между сайтом и расширением для браузера и защита от фрода
Нам потребуется:
🔵Аккаунт в Firebase с тарифом Blaze (нужно только привязать карту, например Pyypl)
🔵Любой хостинг с Nginx для проксирования авторизации с нашего домена на *.firebaseapp.com (режим редиректа) и размещения файла auth.html
🔧Мы используем Firebase App Check + FingerprintJS для защиты нашего API от ботов и фродеров.
➡️В начале пользователь перенаправляется на страницу авторизации, где происходит редирект к нужному провайдеру — Google или Apple.
⬅️После получения токена авторизации мы получаем App Check-токен для нашего сайта и Fingerprint. Эти данные отправляются на сервер для валидации. Если всё в порядке — возвращаем собственный JWT-токен для дальнейших API-запросов.
🗂На сервере мы ограничиваем количество запросов с одного IP (rate limit), а Fingerprint используем как DeviceID, отслеживая аномалии при смене DeviceID или IP у пользователя.
✅Токен сохраняется в LocalStorage для дальнейшего использования как на сайте, так и в расширении.
🧲Чтобы расширение получило доступ к LocalStorage сайта, используется chrome.offscreen для подключения domain.com/auth.html.
➡️Расширение отправляет запросы к offscreen-странице с помощью runtime.sendMessage и получает данные из LocalStorage. Вот и вся магия.
👥Если пользователь авторизуется через расширение, мы открываем новый таб со страницей авторизации, а затем закрываем его. После этого при переходе на сайт пользователь также будет авторизован.
Я погнал дальше! 🚗
@sopov_blog
Видео из прошлого 📆
Дело было на 4-м Startup Weekend'е в далеком 2011 году.
Первое и последнее мое выступление на сцене 🫣
Тода мы заняли 3-е место в финале и «получили» $100к
Проект назвался — CoSpace
Переговоры об инвестициях шли несколько месяцев, в итоге А. Морейнис был отправлен на йух. Ну а мы продолжали сами пилить проект.
Проект трансформировался в мессенджер Командор уже с другими фаундарами.
Мы не знали как его продать и правильно запустить, а только пилили и пилили улучшения и фичи (которые нахер никому были не нужны)
Там было все, и выкуп товарного знака и получение лицензии ФСБ на работку с криптографией, и затраты на сервера и мобильных разработчиков. А еще и покупка ЭДО.
Миллионы рублей в минус 😤
Потом пошел на Буткемп. И из этого всего добра вытащил одну функцию и сделал расширение.
Сейчас подходит второй этап (хотя должен был еще год назад придти) для версии 2.0 с собственным плагином для работы с КриптоПро. И конечно же долгожданная моо-нее-тии-заа-ции-яяя! 🤞
Вот такая вот получается история пет-проекта длинной в почти 15 лет. Охренеть же!
Всем привет!
Это снова Витя в Ай-Ти. Зачем еще один канал?
Я давно планировал привязать чилийский номер, и для этого нужно было удалить второй, неиспользуемый аккаунт. В итоге я случайно удалил основной аккаунт - и вместе с ним потерял все чаты, всю историю, все файлы, сохранённые в «Избранное»… А поскольку я был единственным админом, доступ к каналу тоже пропал.
Поддержка в Telegram - худшая в мире. Её просто не существует. Ни одного ответа. Пост в Twitter тоже не помог. Такое ощущение, что в Telegram все заняты разработкой и общением с прессой. Проблемы пользователей - это ваши проблемы.
После нескольких дней раздумий жена уговорила меня запустить канал заново. Я уже привык каждый день делиться с вами шагами и мыслями о создании бизнеса - для меня это стало личной мотивацией.
Начнем с нуля - второй сезон, поехали :)