Три стрибки, один хост: як рахувати справжні залежності приватності
Кількість стрибків приховує спільний хостинг, один адміністраторський обліковий запис і того самого реєстратора. Побудуйте реєстр залежностей, оцініть кожен рядок і подивіться, що з’єднує спільне значення.
Другий стрибок піднявся за розкладом, а ваша схема досі показує трьох окремих провайдерів. Потім приходять рахунки, і два з них називають ту саму хостингову компанію, той самий реєстратор тримає всі три домени, а кожен обліковий запис відновлюється на одну поштову скриньку, якою володієте ви. У конфігурації тунелю нічого не зламано. Просто проєкт жодного разу не порахував залежності, що лежать під стрибками, а кількість стрибків описує шлях, яким іде трафік, а не кількість сторін, які можуть на нього впливати.
Симптом проявляється в рахунках, а не в журналах
Ви не знайдете це в журналі тунелю, бо тунель робить саме те, що ви налаштували. Докази живуть у публічних реєстрах і налаштуваннях облікових записів: назви організацій у whois, що збігаються між кінцевими точками, однакові сервери імен, спільна адреса реєстранта, один спосіб оплати, одна панель керування. Кожне з цього — підказка, що два шари, які мали б відмовляти незалежно, можуть відмовити разом.
Жодна з цих підказок не доводить, що якась окрема сторона може читати ваш трафік. Вони зменшують кількість незалежних рішень, які мають бути хибними, перш ніж два шари захисту буде скомпрометовано однією подією.
Порівняйте записи, які ви справді бачите, і запишіть, що порівняли. Знайдіть організацію за кожною адресою кінцевої точки, перелічіть сервери імен кожного домену та відкрийте налаштування відновлення для кожного облікового запису в ланцюжку. Там, де два значення збігаються, зауважте, чи стосується збіг власності, операцій або лише фронтенду реселера. Це різні висновки, і ставлення до них як до одного — те, через що огляд залежностей перетворюється на здогади.
Намалюйте логічний шлях, потім карту залежностей
Потрібні дві схеми, а більшість малює лише першу. Логічний шлях показує, де закінчується кожен шар захисту і що ця кінцева точка може спостерігати. Карта залежностей показує, хто експлуатує й адмініструє кожну з цих кінцевих точок, а це цілком окремий набір імен.
| Layer to record | Evidence you can collect | What a shared value would mean |
|---|---|---|
| Endpoint operator | Published operator, contract, support contacts | The same party sees two traffic layers |
| Compute and hosting | Address ranges, hosting brands, platform status pages | One administrative action affects two machines |
| Network dependency | Endpoints and transit links near the observation point | Two paths share a segment that could be watched once |
| Management | Control panels, SSH keys, staff with access | One credential compromise crosses both layers |
| Account linkage | Registration records, payment method, recovery mail | Two services can be tied to one identity |
Оцінюйте кожен рядок, а не просто заповнюйте його. «Відомо» означає, що ви бачили запис, який це стверджує; «виведено» — що одне спостереження підтримує це, не вирішуючи; «невідомо» — що нічого не знайдено. Спільний бренд хостингу — це висновок про спільну інфраструктуру, а не твердження про спільну клієнтську базу. Не підносьте мовчки висновок до відомого факту лише тому, що він зручний для очікуваного підсумку.
Порожній рядок — сам по собі висновок. Він каже, який факт змінив би рішення, якби ви його дізналися, і це корисніше за ще один абзац про те, що міг би зробити витончений супротивник.
Номер AS відповідає лише на питання маршрутизації
Автономна система — це поняття адміністрування маршрутизації, набір адрес, що подається іншим мережам як єдиний узгоджений погляд на маршрутизацію. Тому різні номери AS нічого остаточного не кажуть про корпоративну власність, окремий персонал чи незалежний юридичний контроль. Зворотна помилка так само поширена: дві кінцеві точки в одній AS не автоматично означають випадок, коли одна сторона ідентифікує конкретного користувача.
Якщо вам потрібні числа, з’ясуйте їх, а не припускайте. Адреса нижче — заповнювач, а прапорець просить інструмент позначити кожен стрибок тією AS, що його оголошує.
mtr --aslookup --report --report-cycles 5 203.0.113.9Сприймайте цей вивід як вимірювання маршрутизації, а не власності чи повного шляху трафіку. Мережа доступу, з якої ви стартуєте, і транзитні залежності між кінцевими точками — окремі питання, на які адреси кінцевих точок відповісти не можуть. Коли маршрут або вибір реле не можна спостерігати з місця, де ви сидите, позначайте його як невідомий, а не вносьте загальне твердження про те, як конкретна мережа обирає шляхи сьогодні. Неспостережуване — не те саме, що неспостережне в принципі, але це й не доказ.
Назвіть спостереження перш ніж назвати ризик
У більшості оглядів залежностей змішуються три висновки, і їх розділення — більша частина роботи. Пасивна видимість зашифрованого трафіку — один висновок. Спільний адміністративний доступ — інший, бо він означає дію, а не погляд. Зв’язування облікових записів — третій, бо воно з’єднує особи, не даючи жодного технічного доступу.
Настанови щодо приватності в RFC 6973 дають для цього робочу форму: перелічіть, що дізнається кожен суб’єкт, а потім запитайте, як це можна поєднати з інформацією, що зберігається в іншому місці. Дві точки на шляху, що спостерігають подібні схеми трафіку, можуть обґрунтувати занепокоєння щодо кореляції, але не дають вам виміряної ймовірності того, що когось ідентифікували. Запишіть занепокоєння, а потім запишіть спостереження, яке його підтвердило б.
Поверніться до ланцюжка з двох тунельних сервісів і орендованого проксі. Якщо облікові дані керування проксі ділять обліковий запис відновлення з одним тунельним сервером, одна адміністративна компрометація може перетнути обидві межі. Якщо єдиний збіг — те, що хостингова компанія керує обома машинами, огляд має вказати, які повноваження має ця компанія і яка інформація лишається захищеною. Ті самі три стрибки, інший висновок.
Реєстр — не сертифікат анонімності і ніколи ним не буде. Його цінність вужча й практичніша: він показує, де незалежність встановлена, де вона припускається, і який єдиний невідомий рядок зрушив би рішення. Оберіть цей рядок наступним і залиште решту схеми в спокої, доки не отримаєте на нього відповідь.