Українська

Інструменти розробника · UUID генератор

Squential IDs Leak Business Data: Чому публічні API Expose UUIDs

· Чому це питання

Опубліковано ToolAcre · Редакція журналу

Увійти криптографія веб-сайт

Схема контрастних послідовних нумерних ідентифікаторів, що призводить до зростання шаблонів з opaque UUIDs, які не проявляються
Головна ToolAcre векторна ілюстрація

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

Ваші рахунки-фактури розкажуть конкурентів, які випливають, — це витік інформації /orders/10482

Анонім API кінцева точка, яка повертається /orders/10482 розповідає про зовнішній вигляд, ніж сам замовлення. Навколишній ідентифікатор сигналів, які ви обробляєте принаймні десять тисяч замовлень, наголошують інформацію про рівень росту і робить кожен порядок вгадливим. Проста петля через послідовні номери виходить всі записи без автентифікації або перевірки дозволу. Цей шаблон з'являється скрізь — у URL, ключах бази даних, номерах рахунків та ідентифікаторах транзакцій — в іншому випадку, коли система вимагає автентифікації перегляду будь-якого окремого запису. Проблемні сполуки у звіті та аналізі. Атак, який може кинути /orders/1, /orders/2, і продовжуйте /orders/10482 ви отримуєте комплексний вигляд історії замовлення та тенденцій.

Усиновлення та скребкування — як послідовні ідентифікатори перетворюються на всі з них

У рамках проекту «Сучасний» ви знайдете тренди, які ви можете придбати в ціновому плані. Спостереження дізнається про те, що ваш бізнес зростає або контрактує. Інформація, отримана тільки від ID-кодування, може повідомити конкурентну стратегію, керівництво соціальної інженерії або інформувати часті дії інших атак. Вартість експозиції нічого не відкривати і з'являється в URL, історії браузера, кешованих сторінок і журналах сервера. Це не теоретичні: конкурентні розвідувальні фірми та цікаві інженери, що регулярно видобувають метрики бізнесу з загальноприйнятих ID. Пробірка номерів замовлення розкриває рівень виробництва і загальний обсяг для всіх, хто мотивував достатню кількість для збору даних і виконання базового аналізу.

Проблема німецького бака в одному пункті — оцінювання від зразка послідовних чисел

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

Що виправити UUIDs — негаразові посилання та не можна сигналу про зростання в ID

По випадковому створенню UUID , 122 bits ентропія при генеруванні з криптографічно захищеного джерела як RFC 9562 specifies для версії 4. Визначальник не вгадливий, не вдається і не розкриває нічого про темпи зростання або обсяг зовнішніх спостерігачів. Атакувальник, який знає /orders/9a1f4e2b-7c3e-4d1a-8a5f-1b2c3d4e5f60 не може пред'явити про наступний порядок UUID або поїхати назад через історичні ID з будь-яким розумним впевненістю. Мистецтво UUID сам стає довідником, що є унікальним, але повністю непрозорим. По випадковому розподілу означає декілька запитів, які не відображаються, не проваджено та не пропустіть інформацію про швидкість до зовнішніх спостерігачів, які моніторингають ваші запити API.

Що таке UUIDs не фіксується — нездатний ID не авторизація, а не зобов’язання все ще потребує перевірки доступу за ним

Заміна послідовних ідентифікаторів з UUIDs в публічних APIх здійснюється оперативно і не вимагає комплексної координації між системами. Додати UUID стовпець до таблиці замовлень, генеруйте для кожного нового замовлення, висаджуючи UUID у відповідь і поступово депресувати неоднорідний ключ. Ваші внутрішні системи можуть продовжувати використовувати цілі основні ключі для виконання та простоти; тільки зміни інтерфейсу громадськості. Старий послідовний ідентифікатор залишається в базі даних для власних абзаців або слухових причепів, але клієнти та треті особи дивляться тільки UUID. Цей підхід є найкращою практикою для підтримки існуючих показників індексу при проведенні випарних ідентифікаторів на зовнішній світ.

Працював приклад — додаючи громадськість UUID стовпчик з внутрішнім цілим ключем і розширюючи тільки колишній

Цей підхід відрізняється від актуальної авторизації, оскільки UUID не є паролем і неточністю, не є контрольом безпеки. Клієнт, який має законний доступ до /orders/{their-uuid} повинен бути в змозі побачити його, але /orders/{someone-elses-uuid} повинні бути відхилені від перевірки доступу. Мистецтво UUID приховує номер замовлення від випадкового перевірки та запобігає статистичному аналізу за рахунок ентуерації, але логіка авторизації та авторизації залишається відповідальністю Вашого коду. Захист шарується: UUID припиняє витік інформації у самій ідентифікаторі, а також контроль доступу, який може діяти на цей ідентифікатор.

Що це не криється — індексно-перформаційних торгових марок випадкових ключів, які обговорюються в окремому пості

У UUIDS фіксує витік інформації в самому ID, але не заміняє механізмів контролю доступу. Якщо клієнт має API для отримання запитів до системи, які ще можуть зробити замовлення. Сфера доступу, яка визначається за допомогою моделі дозволу та визначення ролі, а не форматом ID. Користь UUIDs є чисто тим, що ідентифікатор припиняє обсяг мовлення, послідовність і дані про ріст для всіх, хто може спостерігати його. Комплекси з проектування свердловин UUID опитування з перевіркою явного контролю доступу на кожному запиті API.

Похід: окремі публічні посилання з внутрішніх ключів — ToolAcre генераторні матеріали CSPRNG-запущені UUIDs для публічної сторони

Практична міграція дозволяє уникнути часу прапора, що підтримує обидва формати. Якщо ви перетворите кінцеві точки, то v1 API може продовжувати повертати цілі ідентифікатори, коли v2 повертає UUIDs. Перехід клієнтів у власний темп без узгодження координатного ріжуча. Ваші внутрішні запити баз даних залишаються незмінними: вони все ще фільтрують цілою ідентифікацією, оскільки ваші індекси побудовані на цьому стовпці і ваші іноземні ключі, що довідкові. Тільки дані, які повернулися до змін клієнтів. Мистецтво ToolAcre UUID генератор виробляє версію-4 формат, який ви будете використовувати; кожен вихід є правильним RFC 9562 UUID готовий до створення, розгортання та поступових сценаріїв міграції.