< Return to Video

PUFs, protection, privacy, PRNGs (33c3)

  • 0:00 - 0:16
    Translated by Yuliia Kaminska
    (ITKST56 course assignment at JYU.FI)
  • 0:16 - 0:23
    Геральд: Добре, привітайте Пола
    ван Обела, аспіранта Університету Радбуда
  • 0:23 - 0:30
    в Неймегені, він збирається виступити з
    доповіддю про фізично неклоновані функції.
  • 0:30 - 0:31
    Поаплодуйте, будь ласка.
  • 0:31 - 0:39
    оплески
    Дякую.
  • 0:39 - 0:42
    Пол: Дякую, дякую за запрошення,
    дякую, що запросили в прайм-тайм,
  • 0:42 - 0:45
    коли всі нарешті прокидаються,
    але ще не п'яні.
  • 0:45 - 0:46
    тихий сміх
  • 0:46 - 0:53
    І дякую, що дозволили мені позмагатися з
    з космічним треком. Отже, Геральд
  • 0:53 - 1:00
    пояснив, хто я такий, але робота в цьому
    виступі, взагалі-то, не зовсім моя. Це
  • 1:00 - 1:06
    багатьох авторів, і цитати будуть майже на
    кожному слайді. Не звертайте
  • 1:06 - 1:11
    на них увагу. Мені було дуже важко
    зробити два різних набори
  • 1:11 - 1:17
    слайдів. Завантажте слайди пізніше, якщо
    щось вас зацікавило. Весь задум
  • 1:17 - 1:21
    - зацікавити вас цим матеріалом,
    щоб ви почали читати статті,
  • 1:21 - 1:25
    і змусити вас впроваджувати ці речі
    самостійно. Отже, без зайвих сумнівів і
  • 1:25 - 1:31
    без подальшої егоцентричної балаканини,
    давайте подивимось на проблему, яку намагаємось
  • 1:31 - 1:40
    вирішити. У сфері комп'ютерної безпеки, з
    1980-х років помітили, що може знадобитися
  • 1:40 - 1:46
    унікальна ідентифікація та автентифікація
    пристроїв. А потім, зокрема, інтегровані
  • 1:46 - 1:52
    схеми. Отже, ми хочемо відрізнити
    мікросхеми, унікально, від однакових
  • 1:52 - 2:00
    виробничих масок, рівномірно, і з високою
    точністю, безпомилково. Легке завдання,
  • 2:00 - 2:07
    чи не так? Отже, щоб пояснити, як ми
    отримуємо фізично неклоновані функції,
  • 2:07 - 2:11
    я спочатку поясню історію
    боротьби з підробками. І
  • 2:11 - 2:16
    боротьба з підробкою, ви можете думати про
    гроші, ви можете уявити собі картки
    з магнітною стрічкою,
  • 2:16 - 2:22
    що посвідчують особу, і лічильники
    ядерних бомб, або, як їх зазвичай
  • 2:22 - 2:29
    називають «Договір з обмеженою
    річчю» ідентифікатори. Давайте почнемо з
  • 2:29 - 2:36
    грошей. Історично склалося так, що гроші
    були захищені дуже складними зображеннями.
  • 2:36 - 2:42
    На приклад після Революції Гідності в США,
    і мені особисто дуже подобається,
  • 2:42 - 2:47
    скажімо, «Підробляти - це смерть».
    Тому що, знаєте, хоча це був
  • 2:47 - 2:53
    злочин проти держави, всіх було витягнуто
    і четвертовано, хто це робив. Тоді ми
  • 2:53 - 2:56
    перемотаємось на кілька століть вперед,
    я б хотів дізнатися у глядачів, хто
  • 2:56 - 3:02
    коли-небудь бачив таке? ... Досить багато.
    Хто-небудь може сказати мені, що це?
  • 3:02 - 3:05
    коментарі аудиторії (не чути)
  • 3:05 - 3:13
    Сузір'я Євросоюзу. Воно призначене
    щоб запобігати ксероксам
  • 3:13 - 3:17
    копіювати ваші гроші. Отже, коли ксерокс
    виявить цю штуку, він просто
  • 3:17 - 3:22
    не... він скаже: «Я не хочу копіювати».
    Ви можете використовувати це на своїх
  • 3:22 - 3:29
    речах, якщо хочете. Але ми бачимо
    спільну тему в цих кількох
  • 3:29 - 3:35
    століттях, а саме ви позначаєте всі дійсні
    купюри однаково, а потім переконуєтесь,
  • 3:35 - 3:42
    що можете перевірити ці позначки, щоб
    визначити, що вони є легітимними.
  • 3:42 - 3:48
    Альтернативою цьому було б мати різні
    позначки для кожної купюри, і підписувати
  • 3:48 - 3:55
    їх. Але, ви отримуєте цілу
    купу питань, наприклад, як потім
  • 3:55 - 4:01
    запобігти копіюванню цієї відмітки для
    конкретної банкноти і не скопіювати її сто
  • 4:01 - 4:05
    тисяч разів, і просто, не
    скопіювавши при цьому підпис. Адже
  • 4:05 - 4:17
    ніхто не перевіряє паперові гроші онлайн.
    Отже, у 1983 році Бейдер запропонував
  • 4:17 - 4:24
    спосіб боротьби з підробкою, який полягав
    у розсипанні відрізків довільної довжини
  • 4:24 - 4:31
    до того, як він стане папером...
    муллом. (?)
  • 4:31 - 4:39
    Потім ви заробляєте гроші, використовуєте
    сканер зі світловим бар'єром, тобто
  • 4:39 - 4:43
    все, що робить ксерокс. Потім з'являється
    візерунок, який з'являється навколо
  • 4:43 - 4:48
    світлової смуги. І ви витягаєте цей
    візерунок, перетворюючи його на серію
  • 4:48 - 4:54
    бітів і підписуєте цей шаблон. Потім
    ви друкуєте підпис на купюрі. Тепер
  • 4:54 - 4:57
    з цим є проблеми, які пояснюються
    в цих документах, я не
  • 4:57 - 5:05
    маю часу заглиблюватися в них, але в
    принципі, це працює. Потім, далі, картки.
  • 5:05 - 5:09
    Ви знаєте магнітні смужки і ПІН-коди, ми
    використовуємо їх в Європі, я думаю, що
  • 5:09 - 5:16
    ви все ще використовуєте їх у США, я не
    впевнений. Оскільки ніхто не вміє копіювати
  • 5:16 - 5:25
    магстрапси, так? Отже, ти додаєш щось
    на карту, щоб її можна було виявити
  • 5:25 - 5:30
    коли хтось скопіював картку на підробку.
    Отже, ви використовуєте голограми. Наскільки
  • 5:30 - 5:36
    я знаю, голограми зараз можна копіювати,
    Я не маю посилань на літературу,
  • 5:36 - 5:47
    але багато чого можна зробити. У 1980 році
    вже запропонували це: ви навмання
  • 5:47 - 5:57
    розсіюєте магнітні волокна у покритті, ви
    скануєте ці волокна за допомогою, ну,
  • 5:57 - 6:04
    електромагнітного датчика, і перетворюєте
    їх в імпульси, а імпульси з годинником
  • 6:04 - 6:09
    і т.д., знову перетворити їх на біти,
    підписуєте цей шаблон і т.д. Існує також
  • 6:09 - 6:12
    така гарна пропозиція, де ви навмання
    розсіюєте провідні частинки у
  • 6:12 - 6:18
    в ізоляційному матеріалі і скануєте його
    мікрохвильовкою, це той самий принцип з
  • 6:18 - 6:26
    1980-х. Далі, документи, що посвідчують
    особу, хтось запропонував
    використовувати напівпрозорість
  • 6:26 - 6:34
    паперової смужки в документі, що посвідчує особу,
    відскануйте цю смужку, перетворіть прозорість
  • 6:34 - 6:41
    у бітову маску, підпишіть бітову маску,
    і так далі. Тепер, Сіммонс вже сказав, що
  • 6:41 - 6:44
    це було занадто легко клонувати, тому що,
    ви можете просто сфотографувати
  • 6:44 - 6:51
    і відтворити його за допомогою
    фотографічних методів. Отже, прозорість
  • 6:51 - 6:57
    не дуже добра. Тепер ви також можете
    потенційно використати точний
  • 6:57 - 7:04
    тривимірний візерунок бавовняних волокон
    з паперу. Але ця пропозиція також була в
  • 7:04 - 7:14
    1991, Сіммонс також сказав, що це
    неможливо зробити. Однак у 1999 році,
  • 7:14 - 7:19
    хтось придумав щось подібне,
    вони беруть хеш текстури поштового
  • 7:19 - 7:24
    конверта, і ви друкуєте квадрат на
    конверті, з високою роздільною здатністю
  • 7:24 - 7:31
    фотографії, а потім хешуєте її з певним
    хеш-кодом, який гарантує, що всі
  • 7:31 - 7:41
    ці речі зводяться до того ж бітового
    шаблону кожного разу. Це працює. Потім
  • 7:41 - 7:47
    нарешті, ці обмежені Договором речі,
    мітки частинок, ви, по суті.
  • 7:47 - 7:53
    прикріплюєте таку мітку на поверхню
    предмета, а потім обробляєте його
  • 7:53 - 7:58
    ультрафіолетом, щоб перетворити
    на склоподібну речовину, яка
  • 7:58 - 8:04
    робить втручання очевидним, якщо я спробую
    його зняти, скло розбивається, а також
  • 8:04 - 8:08
    зберігає орієнтацію частинок, і потім
    ви накладаєте на неї лазер, дивитеся на
  • 8:08 - 8:14
    відбитий візерунок, отримуєте ідентифікатор.
    Отже, якщо у вас колись буде купа
  • 8:14 - 8:20
    ядерних бомб, щоб порахувати, це може бути
    цікавим. Спільною темою тут є те, що
  • 8:20 - 8:27
    ми використовуємо внутрішній аспект,
    який неможливо скопіювати, але легко
  • 8:27 - 8:36
    читати. Вона непередбачувана, і вона
    в ідеалі має бути незмінною. Що призводить
  • 8:36 - 8:46
    до пропозиції 2001 року про фізичні
    односторонні функції. Ідея була такою,
  • 8:46 - 8:55
    у вас епоксидна смола з скляними сферами,
    епоксидна смола застигає, ви робите
  • 8:55 - 8:58
    з неї кульки розміром десять на два
    з половиною мм, не знаю точних
  • 8:58 - 9:06
    вимірів. Я кажу «сфера», я маю на увазі
    як це називається, куб... кубоїди,
  • 9:06 - 9:11
    щось таке... А потім ви освітлюєте
    лазером, і виходить плямистий
  • 9:11 - 9:15
    візерунок, тому що лазер
    розсіюється у дійсно непередбачуваному
  • 9:15 - 9:23
    вигляді, і ви фіксуєте це у 320х240
    пікселів, перетворюєте 2400 бітний
  • 9:23 - 9:27
    ключ за перетворенням Габора. Я не
    знаю, як працює математика за цим, тому що
  • 9:27 - 9:34
    це не моя сфера діяльності. І ви отримуєте
    цікаві властивості, такі як свердління
  • 9:34 - 9:39
    отвору, половина свердел вилітає, тож
    це стійкість до злому, і це відображає
  • 9:39 - 9:45
    роботу односторонніх функцій, як SHA-1 і
    SHA-256: якщо ви перевернете один біт
  • 9:45 - 9:51
    на вході, половина бітів на виході буде
    перевернута. Таким чином, ця стаття є першою
  • 9:51 - 10:01
    роботою, яка запропонувала це як зв'язок
    з криптографією. Тож тут, зчитування
  • 10:01 - 10:06
    структури є можливим, тому що, у вас
    є цей скляний візерунок, ви можете просто
  • 10:06 - 10:10
    - Я кажу «просто», але ви можете використовувати
    мікроскопічні методи, щоб прочитати його
  • 10:10 - 10:18
    точно, але бажаю вам удачі з такою
    субмікронною точністю для всіх цих скляних
  • 10:18 - 10:31
    сфер в епоксидній смолі. Отже, ви можете,
    в теорії, якщо знаєте структуру, імітувати
  • 10:31 - 10:38
    або змоделювати, як лазер проходить
    крізь це. Але це вимагає багато
  • 10:38 - 10:45
    обчислювальної сили, і щоб... ви
    не можете створити базу даних відповідей
  • 10:45 - 10:53
    до викликів, тому що уявіть, що
    виклик у структурі - це лазер під
  • 10:53 - 10:58
    різними напрямами, наприклад,
    лазер під кутом 5 градусів, або 10
  • 10:58 - 11:03
    градусів або 20 градусів, і в різних
    місцях, і всі ці відповіді будуть
  • 11:03 - 11:10
    різними. Тож простір викликів-відповідей
    неймовірно величезний. Тому протокол тут
  • 11:10 - 11:17
    буде таким: по-перше, ви читаєте це на
    довіреному терміналі, створюєте випадкову
  • 11:17 - 11:22
    колекцію пар «виклик-відповідь».
    Ваші виклики повинні залишатися в таємниці
  • 11:22 - 11:27
    тому що далі ви отримуєте запит на
    аутентифікацію від ненадійного терміналу,
  • 11:27 - 11:35
    ви кидаєте виклик цьому терміналу. Ідея
    полягає в тому, що неможливо відправити
  • 11:35 - 11:43
    правильний ключ відповіді, якщо не маєте
    пристрою, що містить цей PUF, е-е, тобто
  • 11:43 - 11:47
    фізичну односторонню функцію. Отже, ви
    отримуєте ключ відповіді і відхиляєте
  • 11:47 - 11:56
    це, якщо ключ відрізняється на багато бітів.
    Тому що це не буде ідеальний збіг. Ось.
  • 11:56 - 12:01
    Можуть бути подряпини, можуть бути
    мікронні відмінності в напрямі, це
  • 12:01 - 12:09
    може бути погана камера, ви отримаєте
    відмінності, і те, як ви потім
  • 12:09 - 12:19
    обчислюєте найменш ймовірний
    рівень прийнятності підробленого пристрою
  • 12:19 - 12:24
    який вам потрібен, і потім ви отримуєте цю
    кількість бітів. І тоді ви можете отримати
  • 12:24 - 12:29
    кращий відсоток збігів, якщо повторите
    кроки (4) - (6) кілька разів, і якщо у вас
  • 12:29 - 12:37
    закінчаться пари викликів, можете просто
    повернутися до пункту (1). Така ідея.
  • 12:37 - 12:39
    Це перша робота, яка зробила цей
    зв'язок з криптографією, вона має
  • 12:39 - 12:45
    визначений протокол, але є кілька не дуже
    приємних речей, н-д, у вас є спеціальне
  • 12:45 - 12:51
    необхідне обладнання, і ми б дуже хотіли
    хотіли б мати таку ж можливість у
  • 12:51 - 12:56
    тільки силіконі. Тепер у цьому
    документі вже було запропоновано, щоб ви
  • 12:56 - 13:03
    могли мати подібний підхід,
    якщо розсієте електрони...
  • 13:03 - 13:07
    не розумію, що тут написано, але я знаю,
    що це не те, що ми збираємося зробити.
  • 13:07 - 13:15
    До речі, якщо ви займаєтеся такими речами.
    то можете прочитати дуже старі
  • 13:15 - 13:22
    газети. Тож, хіба не було чудово, коли ви могли
    сказати це: "При розміщенні паливних стрижнів
  • 13:22 - 13:27
    високі рівні радіації в “гарячій” комірці
    забезпечували стійкість до втручання".
  • 13:27 - 13:30
    Або: «Сейсмічні датчики ... виявлять
    спробу отримати фізичний доступ до
  • 13:30 - 13:33
    пакета задовго до того, як безпека
    інформації опиниться під загрозою."
  • 13:33 - 13:40
    Я б не приймав це як ставку, тому що
    Я знаю вас, хлопці, але перший варіант
  • 13:40 - 13:45
    досить непоганий. І ви побачите речі
    на кшталт цього. RSA було зроблено в
  • 13:45 - 13:54
    1984. Це - я думаю - це
    ISA, можливо, до-ISA, не знаю... Ось
  • 13:54 - 14:00
    як це було зроблено. І текст
    дуже гарний: вони відсканували старий,
  • 14:00 - 14:06
    фактично набраний на друкарській машинці
    папір. Це доступно в Інтернеті,
  • 14:06 - 14:12
    якщо у вас є університетський доступ...
    вибачте... Є й інші рішення
  • 14:12 - 14:14
    цієї проблеми. У вас є
    апаратні модулі безпеки, також
  • 14:14 - 14:19
    смарт-карти, у вас є надійна платформа
    модулів... взагалі, я дізнався, що вони у
  • 14:19 - 14:24
    нас з 2006 року, мені здалося, що вони
    були старішими.... Але у вас все ще є
  • 14:24 - 14:27
    проблема управління ключами, так? Тому
    що ключ не прив'язаний до платформи. Якщо
  • 14:27 - 14:32
    можна витягти ключ і помістити його в
    інший довірений модуль платформи, або
  • 14:32 - 14:38
    ще один апаратний модуль безпеки, то ми
    залишаємося на волосок від загибелі. Отже, аспекти
  • 14:38 - 14:43
    полягають в тому, що ключ ніколи не
    покидає пристрій - в ідеалі - але як тоді
  • 14:43 - 14:47
    ключ увійшов у пристрій? Ви можете ввести
    нові ключі, можна ввести ключ-шифрування,
  • 14:47 - 14:52
    щоб розшифрувати ключі, які ви ніколи не бачите,
    які експортує інший апаратний модуль безпеки,
  • 14:52 - 14:59
    це все цікава криптографія, але також
    виникає проблема, що може робити ключ,
  • 14:59 - 15:05
    чи обмежені ви 1024 бітами RSA, і чи можна
    все це емулювати після того, як
  • 15:05 - 15:13
    у вас є ключ, так? Ми дійсно хочемо
    мати інші аспекти нашої функції. Зараз,
  • 15:13 - 15:21
    це перша назва PUF, «випадкові
    функції кремнію", але вони
  • 15:21 - 15:28
    вже знали, що «PRF» може мати якийсь
    трибуквений акронім, який перегукується з
  • 15:28 - 15:31
    «псевдовипадковою функцією», тому вони вирішили
    піти на «фізично неклоновану
  • 15:31 - 15:35
    функцію". Існує цікава
    дискусія про те, чи має це бути
  • 15:35 - 15:41
    «фізично» чи «фізичне»... не буду лізти
    в це. Ідея в тому, що стійкість до доступу
  • 15:41 - 15:47
    загалом це дорого, складно,
    це просто... давайте подивимось на інший
  • 15:47 - 15:52
    підхід. Існує достатня варіативність процесів
    між ідентичними інтегрованими
  • 15:52 - 15:56
    де... так, вони не ідентичні
    через ті процеси
  • 15:56 - 16:03
    варіацій. А вже у 2000 році хтось
    зробив... Лофстром, Дааш і Тейлор мали
  • 16:03 - 16:14
    невелику статтю про спеціальний пристрій
    ідентифікаційної схеми. Якщо ви хочете
  • 16:14 - 16:17
    використовувати їх для безпечної
    ідентифікації та автентифікації пристрою,
  • 16:17 - 16:24
    то одного такого ланцюга недостатньо.
    Потрібно більше. І що ви робите? Ви
  • 16:24 - 16:29
    будуєте це. І я не вважаю це
    реально здійсненним, ... по суті, це
  • 16:29 - 16:33
    вся схема, у вас є затримка.
    це кільцевий генератор
  • 16:33 - 16:41
    PUF. Отже, у вас тут є контур затримки,
    це автоколивальний контур,
  • 16:41 - 16:46
    по суті, це повертається до цього. І
    виклик тут є для кожного з
  • 16:46 - 16:54
    цих блоків. І що каже біт: якщо
    це одиниця, то ви проходите, якщо це
  • 16:54 - 16:58
    нуль, ви пропускаєте. Тож якщо у вас є
    інший виклик, у вас інший
  • 16:58 - 17:04
    шлях через цей PUF. Тож в ідеалі,
    кожен виклик має бути непередбачуваним
  • 17:04 - 17:12
    чи цей останній арбітр, що стоїть тут.
    десь там... дає одиницю.
  • 17:12 - 17:20
    або нуль, а потім рахуєте імпульси,
    і ідентифікуєте свої схеми. Зараз
  • 17:20 - 17:25
    атаки на нього також були досить добре
    вивчені в цій роботі... можливі атаки.
  • 17:25 - 17:29
    Отже, у вас є атака дублювання,
    по суті, клонування, яке повинно бути
  • 17:29 - 17:33
    неможливим. Так, це загальна
    ідея: Клонування має бути неможливим. Ось
  • 17:33 - 17:41
    це емуляція з вимірювання, тобто, будуєте
    модель на основі цього, вимірюючи точну
  • 17:41 - 17:47
    відстань між логічними одиницями всередині
    PUF, або довжину проводів всередині
  • 17:47 - 17:52
    PUF, також вважається нездійсненним, тому що як
    як ви збираєтесь виміряти це без
  • 17:52 - 17:59
    знищення PUF. Це було в 2001 році. Тоді
    була емуляція з моделювання, тож, якщо
  • 17:59 - 18:02
    ви отримуєте достатньо цих пар виклик-
    відповідь, можете застосувати деякі з них
  • 18:02 - 18:08
    до цього гарні алгоритми машинного навчання,
    і ви отримуєте передбачення відповідей.
  • 18:08 - 18:11
    І, нарешті, у вас є контроль
    алгоритму атаки, який полягає в
  • 18:11 - 18:16
    атакуванні алгоритму управління PUF
    навіть не потрапляючи до PUF. Якщо ви
  • 18:16 - 18:24
    може це зробити, тоді ваш PUF марний. Отже,
    вони також запропонували фізично контрольовану
  • 18:24 - 18:30
    неклоновану функцію, що є тим самим
    але з дзвіночками. Отже, у вас є доступ до
  • 18:30 - 18:38
    функції для PUF, яка є частиною PUF. Це
    робиться для запобігання остаточного
  • 18:38 - 18:45
    нападу. Отже, ви накладаєте логіку
    функції доступу на PUF, так що
  • 18:45 - 18:50
    для доступу до логіки функції access
    потрібно розбити PUF. І
  • 18:50 - 18:56
    якщо ви зламаєте PUF, все зламається,
    перестане працювати. Тож це дає додаткові
  • 18:56 - 19:02
    властивості. Неконтрольований PUF можна
    використовувати лише для автентифікації.
  • 19:02 - 19:10
    Це можна використовувати для таких речей,
    як докази виконання на певному пристрої.
  • 19:10 - 19:14
    Потенційно [для] речей, щодо яких я не маю
    думки: щодо коду, який працює лише на
  • 19:14 - 19:20
    певних пристроях, але якщо вам знадобився
    безпечний криптографічний ключ, вам слід
  • 19:20 - 19:24
    використовуватиме контрольований PUF.
    Це ідея. Але ви все ще можете зробити
  • 19:24 - 19:29
    ідентифікацію. Отже, як виглядає цей
    PUF? У вас є випадковий хеш, ви
  • 19:29 - 19:35
    маєте потенційний ID тут, маєте PUF
    тут, Виклик, Ідентифікатор, Особистість в
  • 19:35 - 19:39
    випадковому хеші, ви проганяєте його через
    PUF, виправляєте помилки, тому що PUF -
  • 19:39 - 19:43
    не ідеальний, а потім знову випадковий хеш,
    а потім відповідь. Це робиться для того, щоб запобігти
  • 19:43 - 19:50
    всім цим нападам. Якщо вас це цікавить,
    то почитайте газету. Потім, у 2011 році
  • 19:50 - 19:55
    була запропонована формальна модель, що
    потрібно від PUF? По-перше, нам потрібна
  • 19:55 - 20:00
    надійність. У всіх оцінках нам потрібна
    однакова відповідь. Нам потрібна фізична
  • 20:00 - 20:04
    неклонованість, насправді не повинно бути
    можливом клонувати ці речі, і ми
  • 20:04 - 20:12
    потребуєм непередбачуваності. Ці два варіанти
    потенційно великі, тож ми розберемося з цим
  • 20:12 - 20:18
    на останньому слайді, здається. І з
    2001 року було багато пропозицій
  • 20:18 - 20:24
    та напади на PUF. Отже, по-перше, є
    Arbiter PUF, які всі затримують
  • 20:24 - 20:31
    на основі. Отже, загальна ідея полягає
    в пропусканні сигналу через чіп, там він
  • 20:31 - 20:36
    затримується на певну суму. Ця сума
    є унікальною для кожного чіпа. Але
  • 20:36 - 20:43
    виявилось, що це можна досить легко змоделювати.
    І навіть бістабільне кільце PUF, яке є
  • 20:43 - 20:51
    досить недавнє, я думаю, ви можете зробити
    машинне навчання... Я дуже
  • 20:51 - 20:55
    рекомендую цю статтю «Навчання арбітрів
    PUFs". По суті, ідея полягає в тому, що ви
  • 20:55 - 21:00
    маєте 30000 пар «виклик-відповідь», цього
    достатньо, щоб забезпечити 100% точність
  • 21:00 - 21:07
    на 256-бітному алгоритмі з викликом PUF.
    Це не добре. Це не працює, якщо ви можете
  • 21:07 - 21:17
    змоделювати це таким чином. Також можна
    використовувати оптичне вимірювання сигналів
  • 21:17 - 21:22
    з точністю до шести пікосекунд. Отже.
    ці штуки можуть існувати не набагато
  • 21:22 - 21:28
    довше. Існують PUF на основі пам'яті.
    Вони основані на бістабільній пам'яті, яка
  • 21:28 - 21:36
    виглядає так, і він також є на основі
    затримки, але тут він унікальний до
  • 21:36 - 21:41
    клітини. У вас є блок цих комірок,
    всі вони незалежні, так що ви отримуєте
  • 21:41 - 21:48
    цей шаблон. Ці клітинки йдуть до одиниці
    або нуль, і вони досить стабільні
  • 21:48 - 21:54
    в цьому. Пізніше я покажу картинку того,
    що станеться, якщо у вас буде гарний PUF з
  • 21:54 - 22:00
    цього типу, і якщо у вас немає хорошого
    PUF. Однак, якщо у вас є SRAM PUF,
  • 22:00 - 22:07
    наприклад, ви маєте обмежену SRAM. Тому
    ви можете просто, в принципі, прочитати
  • 22:07 - 22:12
    все це і зберегти всі біти в базі даних.
    А потім ви можете клонувати чіпа у
  • 22:12 - 22:21
    Тому що ти можеш використовувати сфокусовані
    іонні пучки, щоб обрізати SRAM іншого чіпа у
  • 22:21 - 22:26
    правильну орієнтацію. І, емуляція,
    якщо у вас є ця база даних, ви можете
  • 22:26 - 22:32
    відповісти зі своєї бази даних. Отже, це
    в літературі називається «слабкий PUF»,
  • 22:32 - 22:38
    але це, мабуть, все ще найкорисніший
    з тих, що ми маємо зараз. Зазвичай це,
  • 22:38 - 22:42
    а також те, що у ваших пристроях, якщо
    вони мають фізичну неклоновану
  • 22:42 - 22:48
    функцію. Але вони здебільшого контролюють
    більшу частину часу. І, нарешті,
  • 22:48 - 22:54
    нещодавно хтось запропонував, здається.
    це був, так, Шаллер, Сьонг і
  • 22:54 - 23:00
    Анагносто... не можу вимовити. Але засновано
    на розпаді, ідея полягає в тому, що у вас є
  • 23:00 - 23:07
    DRAM, вимкнути, увімкнути живлення знову
    ввімкнути, він розпався. Немає атак
  • 23:07 - 23:16
    на це, що я бачив. Отже, останні
    кілька хвилин цієї розмови будуть
  • 23:16 - 23:27
    про ваші власні PUF пам'яті. Що є
    тривіально. Так? ... Ні, насправді ні.
  • 23:27 - 23:32
    І весь цей час ви могли думати,
    навіщо нам взагалі цим перейматися? Це
  • 23:32 - 23:38
    здається безнадійним для PUF, у силіконі
    недостатньо випадковості, але
  • 23:38 - 23:42
    я не згоден. Тому що, по-перше.
    захист краще, ніж ніякого, а саме
  • 23:42 - 23:49
    що є у пристроїв на мікросхемах.
    І по-друге, я не вірю в срібні кулі.
  • 23:49 - 23:56
    Це має бути частиною більшого механізму безпеки.
    Тому, якщо нічого іншого, якщо всі ви
  • 23:56 - 24:03
    хочете від цієї розмови - це якусь цікаву
    статтю для читання, хоча б одну, то прочитайте цю.
  • 24:03 - 24:07
    Це на слайді 39, він називається
    "Полегшене рішення для захисту від
  • 24:07 - 24:12
    підробок для недорогих пристроїв з
    вбудованими PUF." І, бажано, щоб ви також
  • 24:12 - 24:17
    прочитали цей, «ПЗ на основі PUF захист
    для бюджетних вбудованих пристроїв".
  • 24:17 - 24:22
    Нехай вас не вводять в оману терміни «захист IP»
    та «ліцензійна модель». Це все однакові речі.
  • 24:22 - 24:26
    Середовище безпечного завантаження. Ви хочете, щоб воно було,
    наприклад, на своєму Raspberry Pi. Я не
  • 24:26 - 24:31
    знаю чи є це в Raspberry Pi, це доведеться
    з'ясувати. Отже, вам знадобиться
  • 24:31 - 24:39
    пристрій з замаскованим ROM для зберігання
    завантажувача, як перша стадія коду
  • 24:39 - 24:45
    має бути під вашим контролем. Вам потрібно
    мати цей модифікований код запуску, вам
  • 24:45 - 24:51
    потрібно мати змогу його модифікувати.
    Також вбудований SRAM, щоб створити
  • 24:51 - 24:57
    PUF з нього. А потім вам знадобиться трохи
    енергонезалежна пам'ять для зашифрованої прошивки
  • 24:57 - 25:06
    та допоміжних даних. Отже, у проекті
    puffin, який було зображено на малюнку
  • 25:06 - 25:17
    з... Отже, тут є декілька результатів.
    Це мікроконтролер STM32F100B,
  • 25:17 - 25:22
    це PandaBoard, яка дуже схожа на
    мобільний телефон, так що те, що ви хочете
  • 25:22 - 25:27
    побачити це. Білий шум. Ця частина -
    PUF-подібний діапазон пам'яті, ця частина
  • 25:27 - 25:32
    можливо, зіпсована завантажувачем або
    чимось подібним, неправильним кодом, але
  • 25:32 - 25:40
    це можна використовувати. Виглядає добре.
    Отже, коли у вас є такий білий шум, ви
  • 25:40 - 25:46
    починаєте вимірювати багато разів, а потім
    обчислюєте відстань Гемінга між
  • 25:46 - 25:50
    безліччю вимірювань з безлічі різних
    пристроїв. І ви хочете, щоб він виглядав
  • 25:50 - 25:55
    ось так, ви хочете, щоб це була половина.
    Тому що це означає, що кожен пристрій буде
  • 25:55 - 26:03
    виглядатиме по-різному. Приблизно на 50%. Ви також вимірюєте
    внутрішню відстань Хеммінга в класі, яка дорівнює
  • 26:03 - 26:09
    вимірюванню з того ж самого PUF, і ви
    хочете, щоб вона була меншою за 0.1. Ви не хочете
  • 26:09 - 26:14
    бути занадто неточним, тому що тоді
    виправлення помилок стає надто складним
  • 26:14 - 26:19
    і почнеться витік інформації, і вам знадобиться
    виправлення помилок, використовуючи для цього
  • 26:19 - 26:29
    наприклад, коди Голея. Отже, перший
    документ, про який я згадав , це... це...
  • 26:29 - 26:33
    полегшений захист від підробок, це теж з
    того документу. Прочитайте його, він також
  • 26:33 - 26:36
    пояснює, як працює вилучення.
    Якщо вас це зацікавило, тут є багато
  • 26:36 - 26:43
    наукової літератури. І
    нарешті, ви будуєте цей нечіткий
  • 26:43 - 26:49
    екстрактор, а потім реєструєте свій чіп.
    І генеруєте деякі допоміжні дані для
  • 26:49 - 26:54
    для виправлення помилок, а потім
    виклик чіпу, ви надсилаєте ці
  • 26:54 - 26:59
    дані для виправлення помилки разом з викликом.
    І в кінцевому підсумку ідея полягає в тому, що ви
  • 26:59 - 27:05
    отримаєте секретний S' від кожного чіпа. І як
    це можна використати? У вас є завантажувач
  • 27:05 - 27:09
    у замаскованому ROM, це перший етап
    завантажувача, він викликає PUF, і
  • 27:09 - 27:14
    розшифровує завантажувач другого рівня,
    що надходить із зовнішньої пам'яті. Потім
  • 27:14 - 27:18
    ви завантажуєте вбудовану ОС.
    Отже, це має виглядати знайомим для
  • 27:18 - 27:24
    багатьох з вас, тому що так само працює
    працює атестація пристроїв на x86, якщо ви
  • 27:24 - 27:35
    використовуєте довірені модулі платформи. Отже,
    трохи детальніше, та сама процедура, запит до
  • 27:35 - 27:39
    PUF, розшифровуємо і викликаємо, тут ключ
    також і ви розшифровуєте і викликаєте
  • 27:39 - 27:46
    ядра, і, нарешті, ось як це виглядає
    в реальних деталях. І навіть якщо
  • 27:46 - 27:52
    ви не захочете це збирати, ви все одно
    матимете це: пам'ятаєте, я показував вам
  • 27:52 - 27:58
    внутрішньокласову відстань Хаммінга,
    10% різниці між вимірюваннями? Це
  • 27:58 - 28:03
    викликані червоними крапками. Це нестабільні
    клітини оперативної пам'яті. Їх можна використовувати як
  • 28:03 - 28:08
    насіння для випадкової функції. І надіюсь,
    у вас не буде цього. Це виглядає
  • 28:08 - 28:12
    неправильно, це не PUF, це занадто
    передбачувано. На жаль, все це не буде
  • 28:12 - 28:16
    на x86, тому що ми шукали
    PUF в процесорах, але Intel та AMD
  • 28:16 - 28:23
    явно все обнуляють. Наостанок, кілька слів
    про конфіденційність. У мене не багато
  • 28:23 - 28:28
    часу на це, але мені дуже сподобався факт.
    що вони згадували, що відчувають користувачі... користувачі
  • 28:28 - 28:32
    що їх можна відстежити, якщо є
    унікальний ідентифікатор. Начебто, це не є
  • 28:32 - 28:39
    обґрунтоване занепокоєння. Чорт забирай, користувачі -
    параноїки. Тепер до контрольованого PUF. Ви можете
  • 28:39 - 28:43
    додати ідентифікатор особистості як користувача. Якщо вони
    оскаржать це, ви додаєте особистість, тож
  • 28:43 - 28:47
    одна програма, яка читає PUF, отримує
    інший ідентифікатор, ніж інша програма,
  • 28:47 - 28:51
    що змінює весь результат хеш-
    функції, ніякої параної не більше не
  • 28:51 - 29:00
    буде. Сподіваюся. Нарешті, посилання.
    Google Scholar - ваш друг. Решта
  • 29:00 - 29:06
    слайдів... всілякі
    посилання... Прочитайте їх! Ви вже бачили
  • 29:06 - 29:09
    все це, прочитайте,
    дякую за увагу.
  • 29:09 - 29:18
    оплески
  • 29:18 - 29:22
    Геральд: Дякую, Поле. Ми маємо
    час для двох запитань.
  • 29:22 - 29:26
    Будь ласка, підійдіть до
    мікрофонів... Мік 3!
  • 29:26 - 29:32
    Мік 3: Що ви думаєте про функції на основі MEMS
    фізично неклонованих функцій, де
  • 29:32 - 29:37
    вони в основному використовують
    акселерометр датчики,
  • 29:37 - 29:41
    і відхилення в цих датчиках викликають
    проблеми, як контрольовані вібрації?
  • 29:41 - 29:44
    Пол: Вибачте, я пропустив
    перше слово запитання.
  • 29:44 - 29:48
    Мік 3: На основі MEMS... технологія,
    яка використовується для створення
  • 29:48 - 29:55
    акселерометрів у кремнії. Отже, Bosch має
    деякі мікросхеми PUF, засновані на ній, де вони
  • 29:55 - 29:59
    є масивами цих MEMS-чіпів, а потім
    керований вібратор, щоб викликати
  • 29:59 - 30:00
    виклик в них.
  • 30:00 - 30:05
    Пол: Я думаю, що вони більш безпечні.
    ніж силіконові PUF, тому що вони
  • 30:05 - 30:10
    створені для випадковості, а ми тут
    намагаємося витягти випадковість з
  • 30:10 - 30:15
    існуючої схеми. Так, вони цікаві.
    Використовуйте їх, якщо можете, але
  • 30:15 - 30:20
    більшість людей не мають такої можливості.
  • 30:20 - 30:21
    Мік 3: Дякую.
  • 30:21 - 30:25
    Геральд: Ще питання?
    Пол: Ось тут!
  • 30:25 - 30:28
    Геральд: Гаразд, мік 7!
  • 30:28 - 30:32
    Мік 7: Привіт, дякую за розмову, я ніколи
    не чув про PUF. Нещодавно я ходив на
  • 30:32 - 30:37
    пошуки придатної для використання смарт-картки, яка
    б відповідала всьому, що я хотів зробити, наприклад,
  • 30:37 - 30:46
    відкривати вихідним кодом. Чи можете
    розповісти про використання PUF з OpenPGP
  • 30:46 - 30:50
    зі смарт-карткою або подібним?
  • 30:50 - 30:54
    Пол: Коротка відповідь: ні. Я не маю
    уявлення чи буде OpenPGP підтримувати щось
  • 30:54 - 31:01
    подібне до цього. У вас є протоколи PKCS,
    Я знаю, що теоретично це можливо.
  • 31:01 - 31:05
    Я не знаю, чи хтось
    реалізовав це. Є PUF на
  • 31:05 - 31:10
    смарт-картах, але чи... Ми не досліджували
    це, я не знаю нікого, хто б це робив.
  • 31:10 - 31:11
    Мік 7: Дякую.
  • 31:11 - 31:14
    Пол: Але це не означає,
    що його не існує.
  • 31:14 - 31:17
    Геральд: На цьому все.
    Будь ласка, привітайте Пола, ще раз.
  • 31:17 - 31:20
    Пол: Дякую!
    оплески
  • 31:20 - 31:25
    музика
  • 31:25 - 31:44
    Translated by Yuliia Kaminska
    (ITKST56 course assignment at JYU.FI)
Title:
PUFs, protection, privacy, PRNGs (33c3)
Description:

more » « less
Video Language:
English
Duration:
31:44

Ukrainian subtitles

Revisions Compare revisions