Стаття 12 з 123 хв читання

Компактний і нативний: C++, без JavaScript-рантайму, від робочої станції до Raspberry Pi

Гаманець — це програма безпеки. Він має бути достатньо компактним для аудиту, достатньо швидким, щоб про нього забути, і без рухомих частин, які йому не належать.

Чип C++ над монітором, ноутбуком і одноплатним комп’ютером
Один нативний бінарний файл на платформу.
Зміст

C++ і Qt

AirNox Wallet написано на C++ із фреймворком Qt. Криптографія, код для блокчейнів, конструктори транзакцій і перевірка запитів — усе живе в одному нативному ядрі, скомпільованому для кожної платформи. Інтерфейс теж нативний. Немає вбудованого браузера, що малює гаманець, і немає скриптового рушія, що його виконує.

Це має три наслідки, які ви відчуєте. Гаманець запускається за мить. У простої він працює тихо і споживає так мало, що машина вільна для іншої роботи. І під ним немає середовища виконання, яке саме себе оновлює, завантажує пакети чи виконує код, отриманий бозна-звідки.

Чого всередині немає

Жодного JavaScript-рантайму. Чимала частка компрометацій гаманців іде через екосистеми пакетів і впровадження скриптів. Гаманець без скриптового рушія для них не мішень.

Жодного web view. Інтерфейс малює фреймворк, а не браузерний компонент. Немає сторінки, в яку можна щось впровадити.

Жодної телеметрії, аналітики чи трекерів. Гаманець спілкується з вузлами блокчейнів і з тими провайдерами обмінів і мостів, якими ви вирішили користуватися. З нами він не спілкується. Ніщо не надсилає даних «додому», і не треба створювати жодного облікового запису.

Чотири плитки платформ — Windows, Linux, macOS і Raspberry Pi — і три перекреслені пункти: жодного JavaScript-рантайму, жодного web view, жодної телеметрії
Де він працює і чого в ньому немає.

Платформи

Десктопний застосунок працює на Windows, Linux і macOS — як нативна збірка для кожної з них. Той самий код працює на залізі класу Raspberry Pi, тож AirNox підходить для вбудованих рішень: термінал обмінного пункту, кіоск, станція підпису в бек-офісі. Маленька плата з екраном, USB-зчитувачем NFC і гаманцем — це повноцінна робоча точка, готова до роботи за повітряним проміжком (air gap), а ключі — на телефоні, яким торкаються зчитувача.

Одне ядро підпису

Застосунок на телефоні й десктопна програма мають спільне ядро. Код, що виводить ключі, складає транзакцію і декодує її для екрана, — той самий на обох пристроях, скомпільований для кожного. Для кожного блокчейну одна реалізація для аудиту, а не дві, які мають між собою узгоджуватися, і виправлення з одного боку — це виправлення з обох.

Чому це важливо

Компактність і нативність — не питання стилю. Кожна залежність — це місце, де чужа помилка стає вашою. Кожне середовище виконання — поверхня атаки. Кожен мережевий запит, без якого можна обійтися, — витік чогось. Гаманець, що є однією нативною програмою і спілкується лише з вузлами, на які ви його спрямували, — це гаманець, поведінку якого можна передбачити. Цього стандарту ми тримаємося в усьому продукті, від підписувача (signer) на телефоні до вікна на вашому столі.

Уся серія

  1. Вважайте комп’ютер скомпрометованим
  2. Mass Adoption Security: підписувач — це телефон, який у вас уже є
  3. Три способи перетнути повітряний проміжок: QR-коди, Bluetooth LE і NFC
  4. Невидимий в ефірі: підписувач, якого не знайти скануванням
  5. Каналу передачі не довіряють ніколи
  6. Що показує вам телефон: аналіз транзакцій на підписувачі
  7. Телефон веде власний журнал
  8. Сховище на вашому комп’ютері: Argon2id і профіль, стійкий до підбору
  9. dApp без браузерного гаманця
  10. MCP-сервер із правилами: ШІ-агенти в межах лімітів
  11. Один захищений гаманець для всього
  12. Компактний і нативний: C++, без JavaScript-рантайму, від робочої станції до Raspberry Pi

Запишіться до списку очікування

Залиште електронну адресу, і ми надішлемо новини про реліз. Більше нічого.