Як теоретичні інформатики ставляться до безпеки?


11

Коли я думаю про програмне забезпечення, яке є небезпечним, я вважаю, що воно "занадто корисне" і зловмисником може бути зловживано. Тож у певному сенсі забезпечення програмного забезпечення - це зробити програмне забезпечення менш корисним. У теоретичній інформатиці ви не працюєте з реальним світом. То чи є проблеми з безпекою при роботі з чистою теорією? Або з іншого боку монети, чи впливає теоретична комп’ютерна наука на реальний світ людей, які отримують злом? Якщо так, то які теми безпеки вважаються теоретичними?


9
Представлена ​​теорія CS, яка представлена, є суб'єктивною і дуже сперечальною, і її також не потрібно ставити. Здається, питання зосереджене саме на хакерстві, яке є широкою темою, яка є самою собою (починаючи від методів соціальної інженерії) і не наближається до того, що тягне за собою "безпека". З цих причин я виступаю проти. Однак я відчуваю, що питання виникає з хорошого місця і має в ньому деякі цікаві аспекти, тому я відповів нижче.
Росс Снайдер

Відповіді:


20

Ваша інтуїція, що "незахищеність" зумовлена ​​"занадто корисним" програмним забезпеченням, є певним чином. Існує велика і зростаюча теоретична література про "диференціальну конфіденційність", яка формалізує вашу інтуїцію. Дивіться, наприклад, тут: research.microsoft.com/en-us/projects/databaseprivacy/dwork.pdf

ϵeϵ

0


14

Кілька способів:


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

8
Використовуючи OllyDbg, я виправляв свій gdi dll, щоб виправити (другий) вразливість курсору (очевидно, без вихідного коду) перед патчем Microsoft у вівторок. Знову за допомогою OllyDbg я виправляв емулятор із закритим джерелом, щоб зробити його чітким доказом (збентежуючи) змагання з Pokemon. Я знайшов 0day у проекті веб-камери і набрав досить високу кількість великої кількості Wargames (включаючи Blacksun, у яких включені ASLR і PaX). Я не згадаю про деякі більш хитрі речі, які я зробив .... Потиньте плечима; Чому б це мало значення, якщо я мав або не мав? Будь ласка, не полум’я.
Росс Снайдер

13
@ The Rook: Якщо ви вважаєте, що список Росса мало пов'язаний з реальною практикою безпеки програмного забезпечення, то скажіть так. Може бути корисним навіть наведення декількох прикладів, або додавання відповіді з вашим власним деталізацією про те, наскільки далекі дослідження безпеки TCS від фактичної практики безпеки (яку я думаю, було б дуже цікаво прочитати). Але не потрібно принижувати Росса.
Джошуа Грохов

13

Розглянемо приклад конфіденційності провідної еквівалентної системи , яка насправді такого не існує: через бентежно базові теоретичні огляди (pdf), WEP може бути важким за кілька хвилин.

У "Чому комп’ютери небезпечні", - промовив Брюс Шнейер

Техніка безпеки включає програмування комп'ютера Сатани.

І комп'ютер Сатани важко перевірити.


10

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

Ю Гу, Ендрю Маккаллум та Дон Тослі. Виявлення аномалій у мережевому трафіку за допомогою максимальної оцінки ентропії. В IMC '05: Матеріали 5-ї конференції ACM SIGCOMM про Інтернет-вимірювання, сторінки 1–6, 2005


8

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

Як кажуть хакери, теоретичні результати часто дотичні до безпеки в реальному світі. Такий аргумент був зроблений більш теоретичним, науковим та точним Альфредом Менезесом та Нілом Кобліцом у їхній серії " Інший погляд " (попередження: сайт здається мені трохи конфронтаційним, але я думаю, що основна ідея ставити під сумнів припущення дуже важливо). Вони вказують на слабкі сторони стандартних припущень у криптографії, навіть у семінарських роботах.

Деякі приклади (цитування / перефразовування декількох пунктів з їх сайту):

  1. Теорема про безпеку є умовною - вона передбачає незрозумілість якоїсь математичної задачі.

  2. Часто припущення про інтрактабельність робиться для складної та надуманої проблеми: в деяких випадках проблема тривіально еквівалентна проблемі криптоаналізу для протоколу, безпека якого "доведена".

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

  4. Теорема безпеки використовує певну модель безпеки. Окремі атаки - особливо атаки бічних каналів - дуже важкі для моделювання, а запропоновані моделі, на жаль, неадекватні.


6

Докази теореми певною мірою використовувались для підтвердження правильності програмного забезпечення, апаратних засобів та протоколів. Дивіться, наприклад, тут чи тут .

Проблема потоку даних небажаними способами через програми (тим самим спричиняючи потенційний витік) теоретично моделюється з використанням поняття (не) втручання; отримати покажчики тут .


3

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

У будь-якому випадку, дослідницьке співтовариство PL дуже зацікавлене у безпеці (чи довіряєте ви своєму браузеру виконувати довільний іноземний код ?!), а їхні запитання призводять до багатьох питань класичної теорії CS.


Будь-яка належна мова високого рівня (читайте: крім C [++]) не дає програмісту контролювати доступ до пам'яті, тому я вважаю цю проблему вирішеною.
Рафаель

@Raphael: Зважаючи на те, що величезна кількість програмного забезпечення все ще написана на C і C ++, цю проблему просто не можна вважати вирішеною. Крім того, методи вирішення нападів на введення коду на Javascript, наприклад, ще в зародковому стані. Потрібно багато зробити.
Дейв Кларк

1
Той факт, що певні середовища ігнорують існуючі рішення (іноді з поважних причин), не робить проблему (тут: доступ до заборонених адрес пам'яті) менш вирішеною. Деякі речі, які важко перевірити, можна легко обійти відповідними інваріантами. Наприклад, ви можете вимагати від свого програміста офіційного підтвердження припинення (див. Ізабель / HOL).
Рафаель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.