Skip to content

Безпека

Що захищає запис

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

Розділення

Один бізнес ніколи не може побачити інший

Усе інше залежить від цього, тож ми ставимо стіну двічі, а перевіряє її за нас комп’ютер.

  • Дві стіни між бізнесами, а не одна

    Кожен запис несе позначку бізнесу-власника, і кожен запит, який наш сервер робить до бази даних, обмежений бізнесом, який його зробив. На рівень нижче сама база даних тримає таку саму стіну зі свого боку, зі своїм власним правилом на кожній таблиці, що зберігає бізнес-записи. Тож однієї помилки в застосунку недостатньо, щоб її подолати.

  • Стіну перевіряє комп’ютер, а не чиясь пам’ять

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

  • Ми перевіряємо один бізнес проти іншого перед публікацією

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

Цілісність

Запис не можна переписати непомітно

Коли щось у роботі йде не так, історія стає доказом. Вона побудована так, щоб ніхто, навіть ми, не міг змінити її за вашою спиною.

  • Історію можна лише доповнювати, і кожен рядок блокує попередній

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

  • Платежі ніколи не змінюються

    Щоб виправити помилку, ми додаємо новий рядок, який скасовує попередній. Ми ніколи не змінюємо попередній. Те, що було записано і коли, залишається читабельним, а саме в цьому весь сенс історії платежів.

  • Посилання для підпису створює наш сервер

    Посилання для підписання документа працює лише один раз, його неможливо вгадати, і воно перестає працювати через фіксований час. Його створює наш сервер. Застосунок на телефоні ніколи його не створює.

У дорозі й після збереження

Куди йдуть дані

Cloudflare стоїть між інтернетом і сервером, з яким спілкується застосунок. На ньому наші власні правила блокування, і він уповільнює кожного, хто надсилає забагато запитів надто швидко. А вже за ним наш власний сервер застосовує ті самі обмеження вдруге.

  • Зашифровано під час передавання, всюди

    Усе, що йде між телефоном і нами, проходить через HTTPS, який шифрує його так, що ніхто посередині не може прочитати. Робочий сайт також надсилає браузеру інструкцію: якщо він уже бував у нас хоча б раз, більше ніколи не повертатися до незашифрованого з’єднання. Запити приходять до нас через Cloudflare, а не напряму на наш власний сервер.

  • Файли залишаються в одному регіоні

    Фото, документи та підписи зберігаються у файловому сховищі, налаштованому на один фіксований регіон, а саме на схід Північної Америки. Це однаково для кожного бізнесу, хоч би де він працював. Коли запускається робочий сервер, він перевіряє це налаштування і відмовляється працювати, якщо регіон відсутній або встановлений на «авто».

  • Ми ніколи не зберігаємо ваш пароль

    Ми не зберігаємо ваш пароль і не можемо його вам відновити. Натомість ми зберігаємо зашифровану версію (Argon2), яку неможливо перетворити назад на пароль. За нею можна перевірити пароль під час входу, але не можна його прочитати. Кількість спроб входу, реєстрації чи скидання пароля за короткий проміжок часу також обмежена.

На телефоні

Телефон є частиною того, що ми захищаємо

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

  • Необов’язкове блокування в самому застосунку

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

  • Ключі входу залишаються в захищеному сховищі телефону

    Застосунок мусить тримати на телефоні кілька приватних речей, як-от перепустку, що тримає вас у системі. Він кладе їх в Android keystore, окреме сховище, яке захищене самим обладнанням телефона, а не у звичайні файли застосунку.

Безперервність

Резервні копії, інциденти та як отримати свої дані

  • Закрита копія бази даних, яка зберігається поза сервером

    Щогодини ми робимо повну копію робочої бази даних. Перед збереженням копію закривають шифруванням, і завдання не залишає жодної незакритої копії: воно перевіряє, що закритий файл справді закритий, і лише потім видаляє незакритий. Далі воно перевіряє власний перелік вмісту копії, надсилає її в окреме сховище, до якого сам застосунок не має даних для входу, і зчитує назад, щоб підтвердити, що копія дійшла. База даних веде також безперервний запис кожної зміни в момент, коли вона відбувається, і цей запис теж копіюється за межі сервера, тож повернення даних на місце не обмежене останньою цілою копією. Фотографії, файли PDF та зображення підписів копіюються в те саме окреме сховище. Старі копії видаляються за встановленим розкладом в обох місцях. Скажемо прямо: це окреме сховище є другим місцем у тієї самої компанії-сховища, а не другою компанією.

  • Ми повертаємо резервні копії на місце, щоб довести, що вони працюють

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

  • Письмовий план на випадок, якщо щось піде не так

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

  • Ваші дані виходять, коли ви цього захочете

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

Чого ми не стверджуємо

Список нижче показує те, чого в нас немає, і те, чого ми не обіцяємо. Якщо щось із цього має для вас значення, це справжня відповідь. Подумайте про це, перш ніж довірити нам свою роботу.

  • Жодного сертифіката й жодного зовнішнього аудиту. У нас немає звіту SOC 2, сертифіката ISO 27001 чи схвалення PCI або HIPAA: сертифікатів безпеки, які вимагають великі покупці. Нікому за межами компанії не платили за спробу зламати систему. Якщо хтось каже вам про Zeus протилежне, він помиляється.

  • Жодної обіцянки щодо часу безвідмовної роботи чи відновлення. Ми не публікуємо ні цифри того, скільки часу застосунок працює без збоїв, ні цілі, як швидко ми відновлюємо роботу, ні цілі, скільки останньої роботи може пропасти. Жодну з цих цифр ми не можемо підтвердити.

  • Жодної обіцянки досконалої безпеки. Жодна система не буває досконало захищеною, і сторінка, яка стверджувала б протилежне, була б рекламою, а не фактом.

  • Робота, яку ви виконуєте офлайн, не резервується, поки не дійде до нас. Зміни, зроблені без сигналу, залишаються лише на цьому телефоні, поки застосунок не зв’яжеться з сервером. Відкрийте застосунок, коли сигнал з’явиться знову, щоб він міг її надіслати.

Повідомити про вразливість

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

Дотримуйтеся цих правил

  • Дайте нам час на виправлення, перш ніж комусь про це розповідати.
  • Поки ви розслідуєте, не відкривайте, не змінюйте й не зберігайте жодних даних, які вам не належать.
  • Не заливайте робочий сайт трафіком, щоб перевірити, скільки він витримає, і не спрямовуйте на нього автоматичні сканери. Не намагайтеся отримати доступ без дозволу, якщо ми спершу не погодилися на це письмово.
  • Розкажіть нам, що ви зробили і що побачили, та дайте достатньо деталей, щоб ми могли це відтворити. Проста нотатка краща, ніж нічого.

Це ті самі правила, що й у нашій політиці прийнятного використання.

Статус цієї сторінки

Ця сторінка написана для того, щоб її читали. Це не договір, і вона не обіцяє нічого, що ви могли б вимагати від нас у суді. Це роблять умови використання і політика конфіденційності у нашому правовому пакеті. Робота над безпекою ніколи не зупиняється, тож те, що на цій сторінці, змінюється. Якщо ця сторінка й ці документи колись розійдуться, чинними є саме документи.

Питання щодо всього цього надсилайте на [email protected], а все інше можна знайти на сторінці контактів.