Email or username:

Password:

Forgot your password?
381 posts total
Andrey Esin

PocketOTP

https://hubzil.la/photo/4917969021679a625ed7528632709313-1.jpeg

Давно возникла идея создать собственный OTP-аутентификатор на базе микросхемы и на новогодних появилось немного времени всё это поковырять

Изначально хотелось сделать полностью автономное устройство для генерации TOTP (HOTP, MOTP) кодов. Затем пришла мысль добавить возможность принимать SMS с кодами — это сделало бы устройство еще более универсальным.

В текущей версии PocketOTP (v0.1) реализована только генерация TOTP-кодов. Пока нет поддержки приема SMS и удобной синхронизации времени.

Вдохновением для дизайна интерфейса послужил andOTP, а его формат бэкапа был взят за основу хранения OTP кодов

Что внутри


1. Центральная плата
NodeMCU (ESP8266) - плата, которая мне нравится, то как она работает
Не устраивает, то что в ней есть WiFi (а так хочется автономности и экономить питание) и размер
С размером можно побадаться и заменить на Wemos D1 mini или ещё лучше ESP32 C3 supermini, но всё тот же WiFi несколько продолжает мешать, хоть он и выключен
2. Дисплей (+кнопки)
OLED дисплей SSD1315
Чисто случайно нашёл на Aliexpress: sl.aliexpress.ru/p?key=IGcTGqk
Тут сразу и экранчик и кнопки, всё нажимается, работает
Немного удручает, что нет версии где пины не припаяны (китайцы ответили, что мол отпаивай сам)
3. Часы реального времени (RTC)
Изначально пробовал с SD1302, это в принципе единственные RTC которые у меня лежали в коробке, поэтому первые заходы были сделаны с ними
Потом прочитал, что они могут отставать и заменил на PCF8563
С ними всё работает стабильно несколько дней, но через некоторое время они теряют время и смысл PocketOTP теряется
Обычно помогает замена батареи, но не должно быть такого, что подобная железка работает несколько дней и необходимо менять батарейку (может конечно батарейки такие) + переписал код, чтобы не так часто опрашивался RTC, возможно поможет
4. Питание
Модуль заряда аккумулятора + повышающий DC-DC преобразователь - J5019 (sl.aliexpress.ru/p?key=q1cTGJG)
И так же порт USB Type-C, чтобы было удобно заряжать (sl.aliexpress.ru/p?key=fNcTGYj)
Аккумулятор - 602530 3.7v 400mAh, выбирал, чтобы была компактная, ёмкая и с защитой
Так же ещё обычный включатель ВКЛ/ВЫКЛ
5. Распределительная коробка 😁


Немного фото внутренностей


https://hubzil.la/photo/1268768867679a62c64680b766274111-1.jpeg

https://hubzil.la/photo/9519147856679a629e79bc3551565275-1.jpeg

#otp #totp #pockeotp #esp8266 #arduino #diy

PocketOTP

https://hubzil.la/photo/4917969021679a625ed7528632709313-1.jpeg

Давно возникла идея создать собственный OTP-аутентификатор на базе микросхемы и на новогодних появилось немного времени всё это поковырять

Изначально хотелось сделать полностью автономное устройство для генерации TOTP (HOTP, MOTP) кодов. Затем пришла мысль добавить возможность принимать SMS с кодами — это сделало бы устройство еще более универсальным.

Andrey Esin
Как оно работает

Есть всего 4 кнопки - вверх, вниз, ОК, С (отмена)

https://hubzil.la/photo/2089393154679a63fd221be121261887-1.jpeg

Сразу после загрузки необходимо ввести ПИН-код
Немного сделал заклад на будущее в плане секурности - при вводе новая цифра пин-кода отображается в случайно порядке
То есть если показывается 0, то следующая цифра при выборе не факт, что будет 1, может быть любая, кроме 0
Это позволяет исключить возможность по количеству кликов узнать ПИН-кодов

Сразу попадаем на главный экран выбора сервисов, где кнопками вверх-вниз можно найти необходимый и получить одноразовый код

https://hubzil.la/photo/4691595424679a63ef80b37941173919-1.jpeg

Если нажать С, то попадём в меню, в котором можно вернуться обратно к ОТР, либо посмотреть отладочную информацию в Debug

https://hubzil.la/photo/9467520578679a648037a4a451986920-1.jpeg

Как оно должно работать


1. На фото видно, есть модуль PN532, который отвечает за взаимодействие по NFC с модулем
Это нужно для того, чтобы

- Синхронизировать время, в случае, если оно сильно отстало (синхронизировать с Android телефона)
- Добавлять новые OTP секреты
После включения NFC случается сущий кошмар и экран начинает постоянно обновляться
Есть ощущение, что такое происходит из-за того, что я всё сажаю на i2c шину



2. Так же планировался модуль SIM800L для работы с GSM, который умеет

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



Вместо тысячи слов


Видео работы: video.vide.li/w/7nbWfwGWapEs1Y…

Как оно работает

Есть всего 4 кнопки - вверх, вниз, ОК, С (отмена)

https://hubzil.la/photo/2089393154679a63fd221be121261887-1.jpeg

Сразу после загрузки необходимо ввести ПИН-код
Немного сделал заклад на будущее в плане секурности - при вводе новая цифра пин-кода отображается в случайно порядке
То есть если показывается 0, то следующая цифра при выборе не факт, что будет 1, может быть любая, кроме 0
Это позволяет исключить возможность по количеству кликов узнать ПИН-кодов

Andrey Esin
Вопросы, которые остались


- При заливе прошивки через Arduino IDE берётся текущее время
Я живу в UTC+3, поэтому в коде приходится это учитывать и вычитать каждый раз 10800 (3600 * 3). Не совсем понимаю, как автоматизировать этот процесс и вообще возможно ли это
- Как заставить работать во всей этой схеме PN532?
- Какие существуют платы, без WiFi? Есть Arduino Nano например - весьма компактна, но я никогда не работал с STM и совсем не знаю, насколько отличается от ESP
- Какие существуют модули заряда с возможностью управления? Вся идея в том, чтобы иметь не тумблер, а кнопку, при нажатии на которую PocketOTP будет включаться и по истечении 1 минуты бездействия выключаться (то есть необходима возможность гасить устройство программно)
- Как это всё добро можно оформить на одной плате?
- Какой 3D принтер выбрать для печати корпуса?
- Нужен ли минималистичный режим?
То есть когда выводится 2 столбца - Сервис и код

Вопросы, которые остались


- При заливе прошивки через Arduino IDE берётся текущее время
Я живу в UTC+3, поэтому в коде приходится это учитывать и вычитать каждый раз 10800 (3600 * 3). Не совсем понимаю, как автоматизировать этот процесс и вообще возможно ли это
- Как заставить работать во всей этой схеме PN532?
- Какие существуют платы, без WiFi? Есть...

Andrey Esin
Итого


Исходники проекта: codeberg.org/esin/pocketotp / github.com/esin/pocketotp
Пост будет добавляться комментариями и крайне приветствуется фидбэк и пулл-реквесты в репу

Что по планам


- Переехать на esp32-c3 mini
Она намного меньше размером, есть аппаратный генератор случайных чисел (?)
- Отказаться от PCF8563 и переехать на DS3231M (SN)
- Запилить корпус
- Убрать тумблер и переехать на кнопку включения

Andrey Esin

Нашёл интересный плагин для Obsidian: obsidian-local-rest-api
Который открывает доступ по REST API к Obsidian

Настроил такой путь:
1. Записываю голосовое в телеграм бота
2. Телеграм бот отправляет на расшифровку звуковой файл в Яндекс облако
3. Получает текст, и отправляет его в inbox в obsidian (в случае, если первой в голосовом идёт фраза "Для дневника", то отправляет в daily запись)
4. Obsidian запущен в docker с помощью obsidian-remote
5. Потом всё это разливается через obsidian-livesync

Чувствую, что здесь немного лишняя Телега и надо поковырять Android TTS API, чтобы просто иметь одну кнопку/виджет на рабочем столе

#obsidian

Нашёл интересный плагин для Obsidian: obsidian-local-rest-api
Который открывает доступ по REST API к Obsidian

Настроил такой путь:
1. Записываю голосовое в телеграм бота
2. Телеграм бот отправляет на расшифровку звуковой файл в Яндекс облако
3. Получает текст, и отправляет его в inbox в obsidian (в случае, если первой в голосовом идёт фраза "Для дневника", то отправляет в daily запись)
4. Obsidian запущен в docker с помощью obsidian-remote
5. Потом всё это разливается через obsidian-livesync

Andrey Esin

Купил салазки для дисков на Авито через доставку Авито.Доставка

Время доставки - до 22 февраля

Да всмысле 4 недели из Воронежа

Шуро

Доставка почтой - 5 дней.

Донести до отделения - 1 день.

Найти где валяются на квартире у родителей - пара недель, хотя нет, слишком оптимистично, пусть будет три.

1lyaP

@andrey Авито ещо более-менее. Яндекс, озон, вайлдберриз могут просто ничего не привезти в тот срок, который сами же пишут. Могут сами отменить заказ без уведомлений. Заказал, ждёшь, ждёшь, заходишь, смотришь, а там - "Отменён". Пишешь в поддержку - а, ну, типа, продавец чот затупил, сорян, мы заказ отменили, бабло вернём через несколько дней. Ебанутые сервисы)

Dmitry ☮️

@andrey
Наверное через китай едет.

Andrey Esin

Бутер упал баклажанной икрой хлебом вниз

#этоуспех

Show previous comments
Винт Прокс

@andrey Теория вероятности похлопала тебя по спине и сказала: "Лааадно, так и быть. Ешь свой бутерброд."

Alex M

@andrey если толсто мазать маслом то тоже успевает провернуться.

Andrey Esin
Если положить под лобовое, то ойтишникам зайдёт
Andrey Esin

Богата земля Бирюлёвская

Наверно нефть планируют добывать

Andrey Esin
Я куку или вы тоже видите череп в креме на пудинге?
Andrey Esin
Your developer profile and all apps will be removed from Google Play if you do not complete account verifications by Feb 18, 2025 (in 28 days)


Ну ты чего Гугл творишь, нормально же всё было 12 лет (как сейчас помню, купил за 25 долларов, тогда ещё 750 рублей, статус аккаунта разработчика Google Play)

Andrey Esin
Любимый момент, когда все кожаные дома

#cat #cats #caturday
Andrey Esin
Чем холоднее ночь, тем ярче светят звёзды


Из Москвы прекрасно видны Марс, Уран и Венеры

ХаББыватель
Из Москвы прекрасно видны Марс, Уран и Венеры

И как много Венер видно из Москвы? 😁

Andrey Esin

Ель отправилась на доброе дело

Количество пунктов приема значительно сократилось по сравнению с прошлыми годами (или я просто не замечал, ведь в прошлые года, пункт был прям во дворе)

Ёлочный ~~ёбановрот~~ круговорот

Andrey Esin

Иногда читаешь комментарий, думаешь - а классный коммент

Если отвечу на него - то мой коммент будет выглядеть бледно и, возможно, туповато
Если не отвечу, то вроде и неприлично не ответить, ведь человек классно написал

Поэтому лайкаю, что тоже выглядит плюс минус так себе, но лучше чем первые 2 пункта, хотя тоже выглядит так себе

andy

@andrey
Я тоже лайкаю в таких случаях. Нормально выглядит.

Andrey Esin

Пробовали уже b3log.org/siyuan/en/ ?

Выглядит как замена достойная замена Obsidian с синхронизацией из коробки

Show previous comments
Andrey Esin

Расходимся
Синхронизация работает только при покупке лицензии за 148$

Грусть конечно

Andrey Esin

Удалось оторвать регистрацию и стать платным пользователем в веб версии

https://hubzil.la/photo/5623985319678d06e12f31e096372938-1.png

1. Надо регнуться в приложении, указать сервер, который NorthAmerica
2. Остановить siyuan (ух, как удобно с докером)
3. Найти conf.json, и в нём поле userData
4. Открыть go.dev/play/p/aICWLgJmyiU найти строку 100 и вставить данные из п.3
5. На выхлопе будет длинная строка, которую надо вставить обратно

Но теперь надо пересобирать android приложение

Удалось оторвать регистрацию и стать платным пользователем в веб версии

https://hubzil.la/photo/5623985319678d06e12f31e096372938-1.png

1. Надо регнуться в приложении, указать сервер, который NorthAmerica
2. Остановить siyuan (ух, как удобно с докером)
3. Найти conf.json, и в нём поле userData
4. Открыть go.dev/play/p/aICWLgJmyiU найти строку 100 и вставить данные из п.3
5. На выхлопе будет длинная строка, которую надо вставить обратно

E23

@andrey даже не слышал, оно опенсорсное на этот раз или приемущество в синхронизаторе?

Andrey Esin

Беспроводная зарядка в автомобиль

Xiaomi продолжает радовать

video.vide.li/w/uP9GCzNDY1s9LW…

Есть 2 датчика приближения и первый открывает держатель, когда подносишь телефон, а второй с торца, когда хочешь телефон забрать
Если электричество кончится, то без особых усилий телефон забирается из лапок
Сзади есть вентилятор, который изо всех сил охлаждает заднюю стенку

#xiaomi #авто

Andrey Esin

Зашли на рынок на Пражской

Купили моченых яблок (вкус из детства)
Соленые арбуза (мммм, хуета, никогда не пробовал. Хотя надо попробовать домашних соленых арбузов)

DELETED

@andrey солёный арбуз это в принципе хуета, неважно домашний он или уличный.

Andrey Esin
эх, жаль, я почему-то перестал видеть сообщения от некоторых пользователей hubzilla, например @cats-shadow и @kostikov не видел уже ооочень давно 🙁
Alexey Skobkin

@andrey
Я бы сказал, что пользователи Hubzilla сокращаются в количестве естественным путём, но сегодня видел сообщение от одного из них.

Шуро

С Кошаком проблемы, посмотри логи на своём сервере - лично у меня там ошибки соединения.

По-хорошему, надо бы связаться с ним другим способом и посмотреть вместе :)

А Костиков просто редко пишет, недавно появлялся.

Andrey Esin
С 15 февраля проезд по МСД будет платным — в утренние и вечерние часы

Ну чё началось-то
Получается, чтобы проехать с юга север всю МСД, надо отдать 45 рублей (и это только начало)

Andrey Esin

Странный молоток нашёл

Узкий - не очень удобно попадать по гвоздю, ещё и зачем-то линейку нарисовали на рукояти

Alado
@andrey ну ты деревня! Какой же это молоток? Это же разводной гаечный ключ. А линейка, чтобы меряться, у кого гайка больше.
Andrey Esin

Телефон жив

Всё ок

mr_camino

@andrey еще в декабре прилетел 15 андроид

Andrey Esin
Вы верите в гироскопы?
sley :smug_hk:

@andrey Это всё акселерометры по удвоенной цене — заговор капиталистов инженеров!

Go Up