Перейти к содержанию

Безопасность и хранение данных

Что мы делаем, чтобы склад, себестоимость и клиенты каждой компании оставались закрытыми. Только факты, которые можно проверить.

granilo.ruВы здесьКомпании из России
  • ПриложениеМосква, Россия
  • База данныхМосква, Россия
  • Файлы и фотоМосква, Россия
  • ПисьмаUnisender Go, Россия
  • Резервные копииЕжедневно, 7 копий; удалённые файлы можно восстановить 30 дней
granilo.ioКомпании за пределами России
  • ПриложениеСША
  • База данныхСША
  • Файлы и фотоСША
  • ПисьмаResend, США
  • Резервные копии—

1.Две площадки, два места хранения

Granilo работает на двух отдельных площадках с отдельными базами данных. Компания находится ровно на одной из них, и её данные не переходят на другую; площадки обмениваются только подписанной проверкой при входе: к какой из них относится адрес почты.

Сервис писем получает только адрес получателя и текст письма.

2.Каждая компания отделена в самой базе данных

Каждая таблица с данными компаний защищена политикой доступа на уровне строк, обязательной для всех ролей: запрос видит только строки той компании, для которой он выполняется. Приложение задаёт компанию один раз на транзакцию, и ни одна роль базы данных, которой пользуется приложение, не может обойти это правило. Поэтому ошибка в нашем коде не вернёт строки другой компании.

Важные журналы в самой базе данных можно только дополнять: историю изменений камней, перемещения и мемо, движения металла, оплаты и расход ИИ-кредитов нельзя изменить или удалить, даже нам через приложение. Выставленный счёт база данных замораживает.

3.Шифрование и файлы

Все соединения идут по HTTPS с HSTS, а приложение подключается к базе данных по TLS. Пароли хранятся только в виде хешей с солью. Файлы лежат в закрытом хранилище и открываются только по подписанным ссылкам, которые истекают через несколько минут.

4.Вход, роли и себестоимость

Вход по паролю или коду из письма, вторым шагом можно добавить приложение-аутентификатор. Пароли из известных утечек не принимаются, а попытки входа и запросы кодов ограничены по частоте.

У каждого сотрудника своя роль: владелец, администратор, сотрудник или наблюдатель. Доступ к себестоимости включается отдельно и проверяется на сервере: без него себестоимость не уходит в браузер вообще, ни в списках, ни в PDF, ни на этикетках, ни в истории.

5.Подписанные сертификаты подлинности

Сертификат подписывается один раз, при выпуске, ключом Ed25519 по его каноническому содержимому (RFC 8785). База данных отклоняет любое последующее изменение подписанного содержимого, а публичная страница проверяет подпись при каждом открытии.

Любой может проверить подпись сам, без нас: открытые ключи, включая выведенные из работы, опубликованы по адресу https://granilo.ru/.well-known/jwks.json

6.Сами страницы

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

7.Нашли уязвимость?

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

Почта для сообщений об уязвимостях:contact@granilo.ru

См. также: Соглашение, Персональные данные