Безпека
Математика, а не політика.
Більшість менеджерів паролів кажуть: «Ми ніколи не читатимемо ваші дані». Архітектура Clavitor означає, що ми не можемо. Ваш відбиток пальця, обличчя або ключ безпеки генерують ключі шифрування, яких ніколи не існує на жодному сервері. Ми тримаємо сейф. Тільки Ви тримаєте ключ.
Три речі роблять це можливим.
01 — Поле
Шифрування для кожного поля
Кожне поле має власний рівень шифрування. Ваш ключ API може читати агент, якому він потрібен; ваша кредитна картка в тому ж записі — ні. Той самий запис, різний доступ.
02 — Апаратне забезпечення
Ключі, отримані з апаратного забезпечення
Ваші найчутливіші поля зашифровано ключем, який може розблокувати лише Ваш апаратний ключ — відбиток пальця, обличчя або ключ безпеки (WebAuthn PRF). Clavitor ніколи його не тримає: він розблоковується у Вашому браузері і ніколи не залишає пристрій.
03 — Відстань
Поза досяжністю
Сховище працює на окремій інфраструктурі, до якої ваш ШІ-агент не може доторкнутися. Облікові дані випускаються через вузький API, обмежений для кожного агента. Нічого на вашому ноутбуці. Нічого у вашому файлі .env.
Шифрування сховища
Все зашифровано під час зберігання.
Кожен запис у Вашому сховищі — кожне поле, кожен елемент, кожен байт — зашифровано під час зберігання за допомогою AES-256-GCM, кожен елемент під власним випадковим 32-байтовим ключем. Ці ключі входять до ієрархії ключів, яка відкривається лише 8-байтовим ключем відкриття Вашого сховища: перші 8 байтів 32-байтового головного секрету, який було випадково згенеровано під час створення Вашого сховища. Цей головний секрет ніколи не зберігається на диску у відкритому вигляді. Він існує лише загорнутий виходом Вашого апаратного ключа.
Якщо хтось викраде файл сховища — викрадена резервна копія, скомпрометований хост, ворожий системний адміністратор — вони отримають шифротекст. Назви елементів, імена користувачів, паролі, картки, нотатки: усе зашифровано. Відкриття файлу без 8-байтового ключа означає перебір 2⁶⁴ ключів, де кожна спроба коштує деривації ключа та розгортання AES-ключа — і навіть тоді поля облікових даних усередині знову зашифровані на вищих рівнях.
Цей AES-256-GCM працює на валідованому за FIPS 140-3 криптографічному модулі: AWS-LC FIPS 3.1.0, сертифікат CMVP №5314 (активний), зафіксований точно і працює в режимі FIPS. Межа FIPS 140-3 охоплює дані у стані спокою та серверну частину кожного з'єднання між програмами Clavitor. У Вашому браузері ті самі алгоритми працюють у чистому Rust, скомпільованому до WebAssembly, без валідації модуля, оскільки браузер — це середовище, яке ніхто не може валідувати.
Це базовий рівень. Кожен менеджер паролів шифрує під час зберігання. Важливо те, що відбувається вище цього рядка.
Під час передавання
Зашифровано і для сьогоднішнього зловмисника, і для завтрашнього.
Кожен запит між програмами Clavitor — Ваш браузер, розширення, CLI, проксі, наші сервери сховищ і централі — передається у власному зашифрованому каналі з взаємною автентифікацією всередині TLS. Кожен запит — це нове рукостискання із зафіксованим відкритим ключем сервера, тож клієнт розмовляє лише з тим сервером, до якого його було зареєстровано.
Канал є гібридним. Він поєднує класичну узгодженість ключів на еліптичних кривих (ECDH на P-256) з ML-KEM-768 — постквантовою інкапсуляцією ключів, стандартизованою NIST у FIPS 203. Зловмисникові доведеться зламати обидві. Трафік, перехоплений сьогодні в надії розшифрувати його майбутнім квантовим комп'ютером, залишається захищеним, доки довгостроковий ключ сервера також не викрадено.
На наших серверах ці операції виконуються в тому самому валідованому за FIPS 140-3 модулі, що й шифрування у стані спокою: AWS-LC FIPS 3.1.0, сертифікат CMVP №5314. Сертифікат NIST містить ML-KEM-768, узгодженість ключів P-256, AES-256-GCM та HKDF як схвалені. У Вашому браузері ті самі алгоритми працюють у чистому Rust. Резервного варіанта немає: клієнт, який не вміє говорити цим каналом, не з'єднується.
TLS навколо нього також постквантовий, де Ваш браузер це підтримує: clavitor.ai узгоджує гібридний обмін ключами X25519MLKEM768 з браузерами, які його пропонують, і класичний TLS 1.3 — з тими, які ні.
Канал — наша власна конструкція, побудована на фреймворку протоколів Noise і додатково посилена постквантовою інкапсуляцією ключів, підхід опублікованих досліджень постквантового Noise та PQXDH від Signal. Ми свідомо вийшли за межі стандартного Noise: його функції узгодження ключів не схвалені за FIPS, і він не має постквантового кроку.
Шифрування облікових даних
Ваші агенти можуть читати облікові дані. Нічого більше.
Над рівнем сховища кожне поле облікових даних — ключі API, паролі, насіння TOTP, токени OAuth, ключі SSH — зашифровано індивідуально власним похідним ключем. Ключ шифрування — це 16 байтів повної ентропії. Обчислювально незламний.
Ваші ШІ-агенти отримують цей ключ, щоб вони могли виконувати свою роботу. Це за задумом — агент, який розгортає ваш код, потребує вашого ключа SSH. Але ключ постачається з чотирма рівнями захисту, які контролюють, що з ним відбувається:
Обмежені токени. Кожен агент отримує токен, який надає доступ до певних записів. Ваш агент розгортання бачить ваш ключ SSH та ваші облікові дані AWS. Він не бачить ваш ключ Stripe, ваш пароль електронної пошти чи записи вашого колеги. Він не може перераховувати, переглядати, шукати чи виявляти облікові дані поза межами свого доступу. Він отримує те, на що був названий, і не може знайти те, чого не має.
Відстань. Ваше сховище не на вашому ноутбуці. Воно працює на окремій інфраструктурі, до якої ваш агент не може доторкнутися. Агент взаємодіє через вузький API, який обслуговує або відмовляє — немає файлової системи для читання, немає пам'яті процесу для перевірки, немає локального кешу для рейду. Якби сховище знаходилося на тій самій машині, що й агент, скомпрометований навик міг би проникнути в систему та витягти те, що йому потрібно. Відстань повністю усуває цей варіант.
Обмеження швидкості. Агент, який отримує доступ до більше ніж трьох унікальних облікових даних за хвилину або десяти за годину, обмежується. Друге порушення протягом двох годин призводить до жорсткого блокування — агент заморожується і потребує вашого апаратного ключа для розблокування. Звичайному агенту потрібно два або три облікові дані. Агент, який читає десять, або неправильно налаштований, або скомпрометований. У будь-якому випадку, він зупиняється.
Білий список IP-адрес. Кожен токен агента прив'язаний до вихідної IP-адреси під час першого контакту. Вкрадений токен, використаний з іншої IP-адреси, відхиляється на рівні проміжного програмного забезпечення перед виконанням будь-якого обробника. Зловмисник має ключ, але не може використовувати його ніде, крім машини, на якій він був виданий.
Результат: радіус ураження скомпрометованого агента обмежений його областю доступу, з його IP-адреси, зі швидкістю, що викликає блокування до того, як може відбутися значна ексфільтрація. Ваші інші агенти, ваші інші облікові дані та ваші поля ідентифікації залишаються недоторканими.
Шифрування ідентифікаційних даних
Ваші найчутливіші дані зашифровані вашим пристроєм. Ми не можемо їх прочитати.
Кредитні картки, CVV, номери паспортів, SSN, коди відновлення, приватні нотатки, ключі підпису — це поля ідентифікації. Вони зашифровані 32-байтовим ключем, який був випадково згенерований під час створення вашого сховища. Ви не знаєте цього ключа. Ми його не маємо. Він ніколи не існував на жодному сервері.
Ключ зберігається всередині зашифрованого файлу ключа, обгорнутого 32-байтовим виходом розширення PRF вашого апаратного ключа (WebAuthn PRF). Щоб розгорнути його, вам потрібен фізичний пристрій — ваш зчитувач відбитків пальців, ваш датчик обличчя або ваш YubiKey. Розгортання відбувається у вашому браузері. Відкритий ключ існує в пам'яті браузера протягом однієї операції, а потім зникає.
Жоден агент не отримує цього ключа. Жоден кінцевий пункт API його не надає. Жоден серверний процес не може його отримати. Поля ідентифікації є шифротекстом на кожному сервері, у кожній резервній копії, у кожній цілі реплікації, у будь-який момент часу. Злам нашої інфраструктури — повний, всеосяжний, кожен байт ексфільтрований — призводить до шифротексту для кожного поля ідентифікації у всіх сховищах. Ключ розшифрування не міститься в ексфільтрованих даних. Його не може бути, тому що його там ніколи не було.
Ми не можемо розшифрувати ваші поля ідентифікації. Нас не можна змусити надати ключ, якого ми не маємо. Це не обіцянка політики. Це математична властивість системи.
Ніхто, крім Вас, не має доступу
І майстер-пароля немає.
Немає нічого, що можна забути, нічого, на що можна потрапити через фішинг, нічого, що можна зламати під час витоку даних. Ваш пристрій — відбиток пальця, обличчя або ключ безпеки — єдиний шлях доступу. Кожне з'єднання — це TLS 1.3 із сучасними шифрами та HSTS. Облікові дані випускаються для обмежених токенів агентів через вузькі кінцеві точки API, ніколи не реєструються. Навіть наша підтримка ШІ не може бачити ваші облікові дані — те саме шифрування, яке приховує ваші секрети від нас, приховує їх і від наших інструментів підтримки.
Модель загроз
Проти чого ми захищаємося.
Кожна платформа облікових даних стикається з однаковою поверхнею атаки. Ось як Clavitor розроблено проти кожної з них.
| Загроза | Як ми захищаємося | Результат |
|---|---|---|
| Фішинг облікових даних | Користувачі не знають своїх паролів (32-байтний випадковий, ніколи не відображається). Розширення заповнює лише при збігу URL. Користувач не може ввести те, чого не знає. | Структурно заблоковано |
| Фішинг OTP / 2FA | TOTP зберігається у сховищі, обмежений справжнім доменом. Неправильний домен — немає коду. Той самий захист, що й для пароля. | Структурно заблоковано |
| Злам сервера | Поля ідентифікації зашифровані ключами, отриманими з апаратного забезпечення, яких ми не маємо. Поля облікових даних автоматично ротуються — витік відкритого тексту закінчується протягом кількох годин. | Збитки обмежені |
| Скомпрометований ШІ-агент | Кожен агент має обмежений токен. Компрометація викриває лише область доступу агента — а не ваше повне сховище. | Радіус ураження обмежений |
| Шкідливе ПЗ на кінцевій точці | Сховище віддалене, а не локальне. Токени сеансу мають обмежений термін дії. Виклики WebAuthn прив'язані до походження — шкідливе ПЗ не може підписатися від імені користувача. | Пом'якшено |
| Внутрішня атака | Поля ідентифікації математично недоступні для нас. Ми не могли б надати відкритий текст за повісткою. | Поза нашим досягненням |
Довіряйте платформі, а не лише криптографії.
Шифрування — це лише одна з трьох гарантій. Інші дві стосуються того, що відбувається, коли щось виходить з ладу — сервіс або ваш власний доступ до нього.
Стійкість — сервіс продовжує працювати
Ми запитали, що відбувається, коли виходить з ладу кожен рівень — хмара, DNS, реєстратор, електронна пошта, наше власне програмне забезпечення. Архітектура розроблена так, що відповідь завжди однакова: сховище продовжує працювати. Список чесних загроз →
Відновлення — ви залишаєтеся в системі
Втратьте свій апаратний ключ, і ви все одно зможете повернутися — за допомогою коду з розділеним знанням з вашого боку, якоря відновлення з нашого боку та дзвінка Zoom із матеріалами для перевірки, які Ви вибрали. Жодного скидання електронною поштою, жодного SMS, жодних секретних запитань. Як працює відновлення →
Читайте глибші дослідження.
Для технічної аудиторії: криптографічні деталі, огляди моделі загроз та відкрите запрошення знайти те, що ми пропустили.