33C3 Музика
Геральд: Добре, привітайте Пола ван Обела, аспіранта Університету Радбуда
в Неймегені, і він збирається виступити з доповіддю про фізично неклоновані функції.
Поаплодуємо, будь ласка.
оплески Дякую.
Пол: Дякую, дякую за запрошення, дякую, що запросили в прайм-тайм,
коли всі нарешті прокидаються, але ще не п'яні.
тихий сміх
І дякую, що дозволили мені позмагатися з з космічним треком. Отже, мій Геральд
пояснив, хто я такий, але робота в цьому виступі, взагалі-то, не моя. Це
багатьох авторів, і цитати будуть майже на кожному слайді. Не звертайте
на них увагу. Мені було дуже важко зробити два різних набори
слайдів. Завантажте слайди пізніше, якщо щось вас зацікавило. Весь задум
- зацікавити вас цим матеріалом, щоб ви почали читати статті,
і змусити вас впроваджувати ці речі самостійно. Отже, без зайвих сумнівів і
без подальшої егоцентричної балаканини, давайте подивимось на проблему, яку намагаємось
вирішити. У сфері комп'ютерної безпеки, з 1980-х років помітили, що може знадобитися
унікальна ідентифікація та автентифікація пристроїв. А потім, зокрема, інтегровані
схеми. Отже, ми хочемо відрізнити мікросхеми, унікально, від однакових
виробничих масок, рівномірно, і з високою точністю, безпомилково. Ех, легке завдання,
чи не так? Отже, щоб пояснити, як ми отримуємо до фізично неклонованих функцій,
я спочатку поясню трохи історії боротьби з підробками. І
боротьба з підробкою, ви можете думати про гроші, ви можете уявити собі картки з магнітною стрічкою,
що посвідчують особу, і лічильники ядерних бомб, або, як їх зазвичай
називають «Договір з обмеженою річчю» ідентифікатори. Давайте почнемо з
грошей. Історично склалося так, що гроші були захищені дуже складними зображеннями.
Це приклад після Революції Гідності в США, і мені особисто дуже подобається,
скажімо, «Підробляти - це смерть». Тому що, знаєте, хоча це був
злочин проти держави, вас було витягнуто і четвертовано, коли це зробили. Тоді ми
перемотаємось на кілька століть вперед, я б хотів дізнатися у глядачів, хто
коли-небудь бачив таке? ... Досить часто. Хто-небудь може сказати мені, що це?
коментарі аудиторії (не чути)
Сузір'я Євросоюзу. Воно призначене щоб запобігати ксероксам
копіювати ваші гроші. Отже, коли ксерокс виявить цю штуку, він просто
не... він скаже: «Я не хочу копіювати». Ви можете використовувати це на своїх
речах, якщо хочете. Але ми бачимо спільну тему в цих кількох
століть, а саме: ви позначаєте всі дійсні купюри однаково, а потім переконуєтесь,
що можете перевірити ці позначки, щоб визначити, що вони є легітимними.
Альтернативою цьому було б мати різні позначки для кожної купюри, і підписувати
їх. Але, ви потрапляєте в цілу купу питань, наприклад, як мені потім
запобігти копіюванню цієї відмітки для конкретної банкноти і не скопіювати її сто
тисяч разів, і просто, знаєте, не скопіювавши при цьому підпис. Адже
ніхто не перевіряє паперові гроші онлайн. Отже, у 1983 році Бейдер запропонував
спосіб боротьби з підробкою, який полягав у розсипанні відрізків довільної довжини
до того, як він стане папером... муллом. (?)
Потім ви заробляєте гроші, використовуєте сканер зі світловим бар'єром, тобто
все, що робить ксерокс. Потім з'являється візерунок, який з'являється навколо
світлової смуги. І ви витягаєте цей візерунок, перетворюючи його на серію
бітів і підписуєте цей шаблон. Потім ви друкуєте підпис на купюрі. Тепер
з цим є проблеми, які пояснюються в цих документах, я не
маю часу заглиблюватися в них, але в принципі, це працює. Потім, далі, картки.
Ви знаєте магнітні смужки і ПІН-код, ми використовуємо їх в Європі, я думаю, що
ви все ще використовуєте їх у США, я не впевнений. Оскільки ніхто не вміє копіювати
магстрапси, так? Отже, ти додаєш щось на карту, щоб її можна було виявити
коли хтось скопіював картку на підробку. Отже, ви використовуєте голограми. Наскільки
я знаю, голограми зараз можна копіювати, Я не маю посилань на літературу,
але багато чого можна зробити. У 1980 році у 1980 році вже пропонував це: Ви навмання
розсіюєте магнітні волокна у покритті, ви скануєте ці волокна за допомогою, ну,
електромагнітного датчика, і перетворюєте їх в імпульси, а імпульси з годинником
і т.д., знову перетворити їх на біти, підписуєте цей шаблон і т.д. Існує також
така гарна пропозиція, де ви навмання розсіяти провідні частинки у
в ізоляційному матеріалі і сканувати його мікрохвильовкою, це той самий принцип з
1980-х. Далі, документи, що посвідчують особу, хтось запропонував використовувати напівпрозорість
паперової смужки в документі, що посвідчує особу, відскануйте цю смужку, перетворіть прозорість
у бітову маску, підпишіть бітову маску, і так далі. Тепер, Сіммонс вже сказав, що
це було занадто легко клонувати, тому що, ви можете просто сфотографувати
і відтворити його за допомогою фотографічними методами. Отже, прозорість
не дуже добра. Тепер ви також можете потенційно використати точний
тривимірний візерунок бавовняних волокон з паперу. Але ця пропозиція також була в
1991, Сіммонс також сказав, що це неможливо зробити. Однак у 1999 році,
хтось придумав щось подібне, вони беруть хеш текстури поштового
конверта, і ви друкуєте квадрат на конверті, з високою роздільною здатністю
фотографії, а потім хешуєте її з певним хеш-кодом, який гарантує, що всі
ці речі зводяться до того ж бітового шаблону кожного разу. Це працює. Потім
нарешті, ці обмежені Договором речі, мітки частинок, ви, по суті.
прикріплюєте таку мітку на поверхню предмета, а потім обробляєте його
ультрафіолетом, щоб перетворити на склоподібну речовину, яка
робить втручання очевидним, якщо я спробую його зняти, скло розбивається, а також
зберігає орієнтацію частинок, і потім ви накладаєте на неї лазер, дивитеся на
відбитий візерунок, отримуєте ідентифікатор. Отже, якщо у вас колись буде купа
ядерних бомб, щоб порахувати, це може бути цікавим. Спільною темою тут є те, що
ми використовуємо внутрішній аспект, який неможливо скопіювати, але легко
читається. Вона непередбачувана, і вона в ідеалі має бути незмінним. Що призводить
до нас до пропозиції 2001 року про фізичні односторонніх функцій. Ідея була такою,
у вас є епоксидна смола з малими скляними ви застигаєте епоксидну смолу, робите
з неї кульки розміром десять на два з половиною мм, не знаю точних
вимірів. Я кажу «сфера», я маю на увазі як це називається, куб... кубоїди,
щось таке... А потім ви освітлюєте лазером, і виходить плямистий
візерунок, тому що лазер розсіюється у дійсно непередбачуваному
вигляді, і ви фіксуєте це у 320х240 пікселів, перетворюєте 2400 бітний
ключ за перетворенням Габора. Я не знаю, як працює математика за цим, тому що
це не моя сфера діяльності. І ви отримуєте цікаві властивості, такі як свердління
отвору, половина свердел вилітає, тож це стійкість до злому, і це відображає
роботу односторонніх функцій, як SHA-1 і SHA-256: якщо ви перевернете один біт
на вході, половина бітів на виході буде перевернута. Таким чином, ця стаття є першою
роботою, яка запропонувала це як зв'язок з криптографією. Тож тут, зчитування
структури є можливим, тому що, у вас є цей скляний візерунок, ви можете просто
- Я кажу «просто», але ви можете використовувати мікроскопічні методи, щоб прочитати його
точно, але бажаю вам удачі з такою субмікронною точністю для всіх цих скляних
сфер в епоксидній смолі. Отже, ви можете, в теорії, якщо знаєте структуру, імітувати
або змоделювати, як лазер проходить крізь крізь це. Але це вимагає багато
обчислювальних потужностей, і щоб... ви не можете створити базу даних відповідей
до викликів, тому що уявіть, що виклик у структурі - це лазер під
різними орієнтаціями, наприклад, лазер під кутом 5 градусів, або 10
градусів або 20 градусів, і в різних місцях, і всі ці відповіді будуть
різними. Тож простір викликів-відповідей неймовірно величезний. Тому протокол тут
буде таким: по-перше, ви читаєте це на довіреному терміналі, створюєте випадкову
колекцію пар «виклик-відповідь». Ваші виклики повинні залишатися в таємниці
тому що далі ви отримуєте запит на аутентифікацію від ненадійного терміналу,
ви кидаєте виклик цьому терміналу. Ідея полягає в тому, що неможливо відправити
правильний ключ відповіді, якщо не маєте пристрою, що містить цей PUF, е-е, тобто
фізичну односторонню функцію. Отже, ви отримуєте ключ відповіді і відхиляєте
це, якщо ключ відрізняється на багато бітів. Тому що це не буде ідеальний збіг. Ось.
Можуть бути подряпини, можуть бути мікронні відмінності в орієнтації, це
може бути погана камера, ви отримаєте відмінності, і те, як ви потім
обчислюєте найменш ймовірний рівень прийнятності підробленого пристрою
який вам потрібен, і потім ви отримуєте цю кількість бітів. І тоді ви можете отримати
кращий відсоток збігів, якщо повторите кроки (4) - (6) кілька разів, і якщо у вас
закінчаться пари викликів, можете просто повернутися до пункту (1). Така ідея.
Це перша робота, яка зробила цей зв'язок з криптографією, вона має
визначений протокол, але є кілька не дуже приємних речей, н-д, у вас є спеціальні
необхідне обладнання, і ми б дуже хотіли хотіли б мати таку ж можливість у
тільки в кремнії. Тепер у цьому документі вже було запропоновано, щоб ви
могли мати подібний підхід, якщо розсієте електрони...
не розумію, що тут написано, але я знаю, що це не те, що ми збираємося зробити.
До речі, якщо ви займаєтеся такими речами. то зможеш прочитати дуже старі
газети. Тож, хіба не було чудово, коли ви могли сказати це: "При розміщенні паливних стрижнів
високі рівні радіації в “гарячій” комірці забезпечували стійкість до втручання".
Або: «Сейсмічні датчики ... виявлять спробу отримати фізичний доступ до
пакета задовго до того, як безпека інформації опиниться під загрозою." Я б
не приймав це як ставку, тому що Я знаю вас, хлопці, але перший варіант
досить непоганий. І ви побачите речі на кшталт цього. RSA було зроблено в
1984. Це - я думаю - це ISA, можливо, до-ISA, не знаю... Ось
як це було зроблено. І текст дуже гарний: вони відсканували старий,
фактично набраний на друкарській машинці папір. Це доступно в Інтернеті,
якщо у вас є університетський доступ... вибачте... Є й інші рішення
вирішення цієї проблеми. У вас є апаратні модулі безпеки, також
смарт-карти, у вас є надійна платформа модулі... взагалі, я дізнався, що вони у
нас з 2006 року, мені здалося, що вони були старішими.... Але у вас все ще є
проблема управління ключами, так? Тому що ключ не прив'язаний до платформи. Якщо
можна витягти ключ і помістити його в інший довірений модуль платформи, або
ще один апаратний модуль безпеки, то ми залишаємося на волосок від загибелі. Отже, аспекти
полягають в тому, що ключ ніколи не покидає пристрій - в ідеалі - але як тоді
ключ увійшов у пристрій? Ви можете ввести нові ключі, можна ввести ключ-шифрування,
щоб розшифрувати ключі, які ви ніколи не бачите, які експортує інший апаратний модуль безпеки,
це все цікава криптографія, але також виникає проблема, що може робити ключ,
чи обмежені ви 1024 бітами RSA, і чи можна чи можна все це емулювати після того, як ви
у вас є ключ, так? Ми дійсно хочемо мати інші аспекти нашої функції. Зараз,
це перша назва ФВФ, «кремнієві фізичні випадкові функції кремнію", але вони
вже знав, що «PRF» може мати якусь трибуквений акронім, який перегукується з
«псевдовипадковою функцією», тому вони вирішили піти на «фізично неклоновану
функції". Існує цікава дискусія про те, чи має це бути
«фізично» чи «фізично»... не буду вдаватися в це. Ідея в тому, що стійкість до несанкціонованого доступу
загалом це дорого, складно, це просто... давайте подивимось на інше
підхід. Існує достатня варіативність процесів варіацій між ідентичними інтегрованими
де... так, вони не ідентичні ідентичні через ті процеси.
варіації. А вже у 2000 році хтось зробив... Лофстром, Дааш і Тейлор мали
невелику статтю про конкретний спеціальний пристрій ідентифікаційні схеми. Але, якщо ви хочете
використовувати їх для безпечної ідентифікації та автентифікації пристрою, то
одного такого ланцюга недостатньо. Потрібно більше. І що ви робите? Ви
будуєте це. І я не думаю, що це реально здійсненним, ... по суті, це
по всьому контуру, у вас є затримка. Це кільцевий генератор.
PUF. Отже, у вас тут є контур затримки, це автоколивальний контур,
по суті, це повертається до цього. І виклик тут полягає в тому, що кожен з нас
ці блоки. І що каже біт: якщо це одиниця, то ви проходите, якщо це
нуль, який ти пропускаєш. Тож якщо у вас є інший виклик, у вас інший
шлях через цей ПУФ. Тож в ідеалі, для кожного виклику кожен виклик має бути непередбачуваним
чи цей останній арбітр, що стоїть тут. десь там... дає одиницю.
або нуль, а потім рахуєш імпульси, і ідентифікуєш свої схеми. А тепер
атаки на нього також були досить добре вивчені в цій роботі... можливі атаки.
Отже, у вас є атака дублювання, яка по суті, клонування, яке повинно бути
неможливо. Так, це загальна ідея: Клонування має бути неможливим. Ось
це емуляція з вимірювання, тобто, ви будуєте модель на основі цього, вимірюючи точну
відстані між логічними одиницями всередині PUF, або довжину проводів всередині
PUF, також вважається нездійсненним, тому що як як ви збираєтесь виміряти це без
знищення PUF. Це було в далекому 2001 році. Тоді була емуляція з моделювання, тож, по суті, якщо
ви отримуєте ці пари «виклик-відповідь», якщо ви отримаєте достатню кількість таких пар, ви можете застосувати деякі з них
до цього гарні алгоритми машинного навчання, і ви отримуєте передбачення відповідей.
І, нарешті, у вас є контроль алгоритм атаки, який полягає в тому.
атакуючи алгоритм управління PUF навіть не потрапляючи до PUF. Якщо ви
може це зробити, тоді ваш PUF марний. Отже, вони також запропонували фізично контрольовану
неклоновані функції, що є тим самим але з дзвіночками. Отже, у вас є доступ до
для PUF, яка є частиною PUF. Це робиться для того, щоб запобігти тому, щоб остаточний
напад. Отже, по суті, ви накладаєте логіку функції доступу на PUF, так що
що для доступу до логіки функції access потрібно розбити PUF. І
якщо ти зламаєш PUF, все зламається, перестане працювати. Тож це дає додаткові
властивості. Неконтрольований PUF можна використовувати лише використовуватися лише для автентифікації пристрою. Це
можна використовувати для таких приємних речей, як докази виконання на певному пристрої.
Потенційно [для] речей, щодо яких я не маю думки: щодо коду, який працює лише на певних
пристроїв, але в принципі, для чого б вам не знадобився безпечний криптографічний ключ, вам слід
дійсно використовуватиме контрольовану ПУФ. Це ідея. Але ви все ще можете зробити пристрій
ідентифікацію. Отже, як виглядає контрольований ПФП виглядає? У вас є випадковий хеш, ви
маєш потенційний ID тут, маєш PUF тут, Виклик, Ідентифікатор, Особистість в
випадковий хеш, ви проганяєте його через PUF, виправляєш помилки, тому що PUF- це
не ідеальний, а потім знову випадковий хеш, а потім відповідь. Це робиться для того, щоб запобігти
всі ці напади. Якщо вас це цікавить. то почитайте газету. Потім, у 2011 році
була запропонована формальна модель, що нам насправді потрібно від PUF? По-перше, нам потрібно
надійність. У всіх оцінках нам потрібна однакова відповідь. Нам потрібна фізична
неклонованість, насправді не повинно бути клонувати ці речі, і ми
потрібна непередбачуваність. Ці два варіанти потенційно багато, тож ми розберемося з цим
на останньому слайді, здається. І з тих пір, з 2001 року було багато пропозицій
та напади на ПФУ. Отже, по-перше, є Arbiter PUF, які всі затримують
на основі. Отже, загальна ідея полягає в тому, що якщо ви пропускаєте сигнал через чіп, він
затримується на певну суму. Але ця сума сума є унікальною для кожного чіпа. Але виходить
виявилося, що це можна досить легко змоделювати. І навіть бістабільне кільце PUF, яке є
досить недавній, я думаю, ви можете зробити деяке прикольне машинне навчання... Я дуже
рекомендують цю статтю, «Навчання арбітрів щодо arbiter PUFs". По суті, ідея полягає в тому, що ви
мають 30000 пар «виклик-відповідь», і цього достатньо, щоб забезпечити 100% точність
на 256-бітному алгоритмі з викликом PUF. Це не дуже добре. Це не працює, якщо ви можете
змоделюйте це таким чином. Також можна використовувати оптичне вимірювання сигналів через
з точністю до шести пікосекунд. Отже. ці штуки можуть існувати недовго.
довше. Існують також PUF на основі пам'яті. Вони засновані на бістабільній пам'яті, яка
в основному виглядає так, і він також на основі затримки, але тут вона унікальна.
клітина. У вас є блок цих комірок, всі вони незалежні, так що ви отримуєте
з цього шаблону. Ці клітинки йдуть до одиниці або нуль, і вони досить стабільні
в цьому. Пізніше я покажу тобі картинку того. що станеться, якщо у вас буде гарний ПУФ з
цього типу, і якщо у вас немає хорошого PUF цього типу. Однак, якщо у вас є SRAM
PUF, наприклад, ви маєте досить обмежену SRAM. Тому ви можете просто, в принципі, прочитати
все це і зберегти всі біти в базі даних. А потім ви можете клонувати
PUF. Тому що ти можеш використовувати сфокусовані іонні пучки. щоб обрізати SRAM іншого чіпа у
правильну орієнтацію. І, ну, емуляція, якщо у вас є ця база даних, ви можете просто
відповісти зі своєї бази даних. Отже, це те, в деякій літературі називається «слабким PUF»,
але це, мабуть, все ще найкорисніший з тих, що ми маємо зараз. Зазвичай це
а також те, що у ваших пристроях, якщо вони якщо заявлено, що він має фізичний неклонований
функцію фізичного клонування. Але вони здебільшого контролюють більшу частину часу. І, нарешті,
нещодавно хтось запропонував, здається. це був, так, Шаллер, Сьонг і
Анагносто... не можу вимовити. Але засновані на розпаді, ідея полягає в тому, що у вас є
DRAM, вимкнути живлення, увімкнути живлення знову ввімкніть, подивіться, як він розпався. Ніяких атак.
на це, що я бачив, ще не було. Отже, останні кілька хвилин останні кілька хвилин цієї розмови будуть
про ваші власні ПФП пам'яті. Що є тривіально. Чи не так? ...Ні, насправді ні.
І весь цей час ви могли думати, навіщо нам взагалі цим перейматися? Це
здається безнадійним для ПНД, у кремнії недостатньо випадковості в кремнії, але
Я не згоден. Тому що, по-перше. захист краще, ніж ніякого, а саме
що є у більшості пристроїв на мікросхемах. І по-друге. по-друге, я не вірю в срібні кулі.
Це має бути частиною більшого механізму безпеки механізму безпеки. Тому, якщо нічого іншого, якщо всі ви
хочете від цієї розмови - це якусь цікаву статтю для читання, хоча б одну, то прочитайте цю.
Це на слайді 39, він називається "Полегшене рішення для захисту від підробок
для недорогих і товарних пристроїв з використанням з використанням вбудованих PUF." І, бажано, щоб ви також
прочитали цей, пов'язаний з цим, «Програмне забезпечення на основі PUF захист для бюджетних вбудованих пристроїв".
Нехай вас не вводять в оману терміни «захист інтелектуальної власності» та «ліцензійна модель». Це все однакові речі.
Середовище безпечного завантаження. Ви хочете, щоб воно було, наприклад. наприклад, на своєму Raspberry Pi. Я не хочу.
чи є це в Raspberry Pi, це тобі доведеться це з'ясувати. Отже, що вам знадобиться
пристрій з замаскованим ПЗП для зберігання завантажувач, як перша стадія коду
має бути під вашим контролем. Вам потрібно мати цей модифікований код запуску, ви