0:00:00.000,0:00:16.050 Translated by Yuliia Kaminska [br](ITKST56 course assignment at JYU.FI) 0:00:16.050,0:00:22.529 Геральд: Добре, привітайте Пола [br]ван Обела, аспіранта Університету Радбуда 0:00:22.529,0:00:29.540 в Неймегені, він збирається виступити з [br]доповіддю про фізично неклоновані функції. 0:00:29.540,0:00:31.258 Поаплодуйте, будь ласка. 0:00:31.258,0:00:38.809 оплески[br]Дякую. 0:00:38.809,0:00:42.250 Пол: Дякую, дякую за запрошення,[br]дякую, що запросили в прайм-тайм, 0:00:42.250,0:00:45.329 коли всі нарешті прокидаються,[br]але ще не п'яні. 0:00:45.329,0:00:46.329 тихий сміх 0:00:46.329,0:00:52.680 І дякую, що дозволили мені позмагатися з[br]з космічним треком. Отже, Геральд 0:00:52.680,0:01:00.350 пояснив, хто я такий, але робота в цьому[br]виступі, взагалі-то, не зовсім моя. Це 0:01:00.350,0:01:06.300 багатьох авторів, і цитати будуть майже на[br]кожному слайді. Не звертайте 0:01:06.300,0:01:10.680 на них увагу. Мені було дуже важко[br]зробити два різних набори 0:01:10.680,0:01:17.040 слайдів. Завантажте слайди пізніше, якщо[br]щось вас зацікавило. Весь задум 0:01:17.040,0:01:20.720 - зацікавити вас цим матеріалом,[br]щоб ви почали читати статті, 0:01:20.720,0:01:25.220 і змусити вас впроваджувати ці речі[br]самостійно. Отже, без зайвих сумнівів і 0:01:25.220,0:01:30.790 без подальшої егоцентричної балаканини,[br]давайте подивимось на проблему, яку намагаємось 0:01:30.790,0:01:40.330 вирішити. У сфері комп'ютерної безпеки, з[br]1980-х років помітили, що може знадобитися 0:01:40.330,0:01:46.040 унікальна ідентифікація та автентифікація[br]пристроїв. А потім, зокрема, інтегровані 0:01:46.040,0:01:52.420 схеми. Отже, ми хочемо відрізнити[br]мікросхеми, унікально, від однакових 0:01:52.420,0:02:00.230 виробничих масок, рівномірно, і з високою[br]точністю, безпомилково. Легке завдання, 0:02:00.230,0:02:07.290 чи не так? Отже, щоб пояснити, як ми [br]отримуємо фізично неклоновані функції, 0:02:07.290,0:02:11.260 я спочатку поясню історію[br]боротьби з підробками. І 0:02:11.260,0:02:15.630 боротьба з підробкою, ви можете думати про[br]гроші, ви можете уявити собі картки[br]з магнітною стрічкою, 0:02:15.630,0:02:22.420 що посвідчують особу, і лічильники[br]ядерних бомб, або, як їх зазвичай 0:02:22.420,0:02:28.960 називають «Договір з обмеженою[br]річчю» ідентифікатори. Давайте почнемо з 0:02:28.960,0:02:35.910 грошей. Історично склалося так, що гроші[br]були захищені дуже складними зображеннями. 0:02:35.910,0:02:41.981 На приклад після Революції Гідності в США,[br]і мені особисто дуже подобається, 0:02:41.981,0:02:47.011 скажімо, «Підробляти - це смерть».[br]Тому що, знаєте, хоча це був 0:02:47.011,0:02:52.600 злочин проти держави, всіх було витягнуто[br]і четвертовано, хто це робив. Тоді ми 0:02:52.600,0:02:56.340 перемотаємось на кілька століть вперед,[br]я б хотів дізнатися у глядачів, хто 0:02:56.340,0:03:02.260 коли-небудь бачив таке? ... Досить багато.[br]Хто-небудь може сказати мені, що це? 0:03:02.260,0:03:04.870 коментарі аудиторії (не чути) 0:03:04.870,0:03:12.610 Сузір'я Євросоюзу. Воно призначене[br]щоб запобігати ксероксам 0:03:12.610,0:03:17.220 копіювати ваші гроші. Отже, коли ксерокс[br]виявить цю штуку, він просто 0:03:17.220,0:03:22.290 не... він скаже: «Я не хочу копіювати». [br]Ви можете використовувати це на своїх 0:03:22.290,0:03:29.480 речах, якщо хочете. Але ми бачимо[br]спільну тему в цих кількох 0:03:29.480,0:03:35.060 століттях, а саме ви позначаєте всі дійсні[br]купюри однаково, а потім переконуєтесь, 0:03:35.060,0:03:41.770 що можете перевірити ці позначки, щоб[br]визначити, що вони є легітимними. 0:03:41.770,0:03:47.980 Альтернативою цьому було б мати різні [br]позначки для кожної купюри, і підписувати 0:03:47.980,0:03:54.620 їх. Але, ви отримуєте цілу[br]купу питань, наприклад, як потім 0:03:54.620,0:04:01.250 запобігти копіюванню цієї відмітки для[br]конкретної банкноти і не скопіювати її сто 0:04:01.250,0:04:04.750 тисяч разів, і просто, не [br]скопіювавши при цьому підпис. Адже 0:04:04.750,0:04:17.190 ніхто не перевіряє паперові гроші онлайн.[br]Отже, у 1983 році Бейдер запропонував 0:04:17.190,0:04:23.540 спосіб боротьби з підробкою, який полягав[br]у розсипанні відрізків довільної довжини 0:04:23.540,0:04:30.570 до того, як він стане папером...[br]муллом. (?) 0:04:30.570,0:04:38.650 Потім ви заробляєте гроші, використовуєте[br]сканер зі світловим бар'єром, тобто 0:04:38.650,0:04:43.010 все, що робить ксерокс. Потім з'являється[br]візерунок, який з'являється навколо 0:04:43.010,0:04:47.810 світлової смуги. І ви витягаєте цей[br]візерунок, перетворюючи його на серію 0:04:47.810,0:04:54.190 бітів і підписуєте цей шаблон. Потім[br]ви друкуєте підпис на купюрі. Тепер 0:04:54.190,0:04:57.241 з цим є проблеми, які пояснюються[br]в цих документах, я не 0:04:57.241,0:05:04.980 маю часу заглиблюватися в них, але в[br]принципі, це працює. Потім, далі, картки. 0:05:04.980,0:05:09.130 Ви знаєте магнітні смужки і ПІН-коди, ми[br]використовуємо їх в Європі, я думаю, що 0:05:09.130,0:05:16.110 ви все ще використовуєте їх у США, я не [br]впевнений. Оскільки ніхто не вміє копіювати 0:05:16.110,0:05:24.770 магстрапси, так? Отже, ти додаєш щось [br]на карту, щоб її можна було виявити 0:05:24.770,0:05:30.299 коли хтось скопіював картку на підробку.[br]Отже, ви використовуєте голограми. Наскільки 0:05:30.299,0:05:35.800 я знаю, голограми зараз можна копіювати,[br]Я не маю посилань на літературу, 0:05:35.800,0:05:47.320 але багато чого можна зробити. У 1980 році[br]вже запропонували це: ви навмання 0:05:47.320,0:05:57.400 розсіюєте магнітні волокна у покритті, ви[br]скануєте ці волокна за допомогою, ну, 0:05:57.400,0:06:03.500 електромагнітного датчика, і перетворюєте[br]їх в імпульси, а імпульси з годинником 0:06:03.500,0:06:08.530 і т.д., знову перетворити їх на біти, [br]підписуєте цей шаблон і т.д. Існує також 0:06:08.530,0:06:12.341 така гарна пропозиція, де ви навмання[br]розсіюєте провідні частинки у 0:06:12.341,0:06:17.780 в ізоляційному матеріалі і скануєте його[br]мікрохвильовкою, це той самий принцип з 0:06:17.780,0:06:25.710 1980-х. Далі, документи, що посвідчують[br]особу, хтось запропонував[br]використовувати напівпрозорість 0:06:25.710,0:06:34.340 паперової смужки в документі, що посвідчує особу,[br]відскануйте цю смужку, перетворіть прозорість 0:06:34.340,0:06:40.570 у бітову маску, підпишіть бітову маску,[br]і так далі. Тепер, Сіммонс вже сказав, що 0:06:40.570,0:06:44.270 це було занадто легко клонувати, тому що,[br]ви можете просто сфотографувати 0:06:44.270,0:06:51.229 і відтворити його за допомогою[br]фотографічних методів. Отже, прозорість 0:06:51.229,0:06:57.120 не дуже добра. Тепер ви також можете[br]потенційно використати точний 0:06:57.120,0:07:03.980 тривимірний візерунок бавовняних волокон[br]з паперу. Але ця пропозиція також була в 0:07:03.980,0:07:14.470 1991, Сіммонс також сказав, що це[br]неможливо зробити. Однак у 1999 році, 0:07:14.470,0:07:18.600 хтось придумав щось подібне,[br]вони беруть хеш текстури поштового 0:07:18.600,0:07:23.949 конверта, і ви друкуєте квадрат на[br]конверті, з високою роздільною здатністю 0:07:23.949,0:07:30.910 фотографії, а потім хешуєте її з певним[br]хеш-кодом, який гарантує, що всі 0:07:30.910,0:07:40.620 ці речі зводяться до того ж бітового[br]шаблону кожного разу. Це працює. Потім 0:07:40.620,0:07:46.990 нарешті, ці обмежені Договором речі,[br]мітки частинок, ви, по суті. 0:07:46.990,0:07:52.560 прикріплюєте таку мітку на поверхню[br]предмета, а потім обробляєте його 0:07:52.560,0:07:57.610 ультрафіолетом, щоб перетворити[br]на склоподібну речовину, яка 0:07:57.610,0:08:03.500 робить втручання очевидним, якщо я спробую[br]його зняти, скло розбивається, а також 0:08:03.500,0:08:08.350 зберігає орієнтацію частинок, і потім[br]ви накладаєте на неї лазер, дивитеся на 0:08:08.350,0:08:13.760 відбитий візерунок, отримуєте ідентифікатор.[br]Отже, якщо у вас колись буде купа 0:08:13.760,0:08:19.750 ядерних бомб, щоб порахувати, це може бути[br]цікавим. Спільною темою тут є те, що 0:08:19.750,0:08:27.220 ми використовуємо внутрішній аспект,[br]який неможливо скопіювати, але легко 0:08:27.220,0:08:35.938 читати. Вона непередбачувана, і вона[br]в ідеалі має бути незмінною. Що призводить 0:08:35.938,0:08:46.420 до пропозиції 2001 року про фізичні[br]односторонні функції. Ідея була такою, 0:08:46.420,0:08:55.279 у вас епоксидна смола з скляними сферами,[br]епоксидна смола застигає, ви робите 0:08:55.279,0:08:58.119 з неї кульки розміром десять на два[br]з половиною мм, не знаю точних 0:08:58.119,0:09:06.350 вимірів. Я кажу «сфера», я маю на увазі[br]як це називається, куб... кубоїди, 0:09:06.350,0:09:10.959 щось таке... А потім ви освітлюєте[br]лазером, і виходить плямистий 0:09:10.959,0:09:14.769 візерунок, тому що лазер[br]розсіюється у дійсно непередбачуваному 0:09:14.769,0:09:22.660 вигляді, і ви фіксуєте це у 320х240[br]пікселів, перетворюєте 2400 бітний 0:09:22.660,0:09:27.249 ключ за перетворенням Габора. Я не[br]знаю, як працює математика за цим, тому що 0:09:27.249,0:09:34.309 це не моя сфера діяльності. І ви отримуєте[br]цікаві властивості, такі як свердління 0:09:34.309,0:09:39.420 отвору, половина свердел вилітає, тож[br]це стійкість до злому, і це відображає 0:09:39.420,0:09:45.480 роботу односторонніх функцій, як SHA-1 і[br]SHA-256: якщо ви перевернете один біт 0:09:45.480,0:09:51.310 на вході, половина бітів на виході буде[br]перевернута. Таким чином, ця стаття є першою 0:09:51.310,0:10:00.740 роботою, яка запропонувала це як зв'язок[br]з криптографією. Тож тут, зчитування 0:10:00.740,0:10:06.239 структури є можливим, тому що, у вас[br]є цей скляний візерунок, ви можете просто 0:10:06.239,0:10:10.269 - Я кажу «просто», але ви можете використовувати[br]мікроскопічні методи, щоб прочитати його 0:10:10.269,0:10:18.129 точно, але бажаю вам удачі з такою[br]субмікронною точністю для всіх цих скляних 0:10:18.129,0:10:31.059 сфер в епоксидній смолі. Отже, ви можете,[br]в теорії, якщо знаєте структуру, імітувати 0:10:31.059,0:10:37.779 або змоделювати, як лазер проходить[br]крізь це. Але це вимагає багато 0:10:37.779,0:10:44.740 обчислювальної сили, і щоб... ви[br]не можете створити базу даних відповідей 0:10:44.740,0:10:52.799 до викликів, тому що уявіть, що[br]виклик у структурі - це лазер під 0:10:52.799,0:10:57.529 різними напрямами, наприклад,[br]лазер під кутом 5 градусів, або 10 0:10:57.529,0:11:02.760 градусів або 20 градусів, і в різних[br]місцях, і всі ці відповіді будуть 0:11:02.760,0:11:10.250 різними. Тож простір викликів-відповідей[br]неймовірно величезний. Тому протокол тут 0:11:10.250,0:11:17.279 буде таким: по-перше, ви читаєте це на[br]довіреному терміналі, створюєте випадкову 0:11:17.279,0:11:21.969 колекцію пар «виклик-відповідь».[br]Ваші виклики повинні залишатися в таємниці 0:11:21.969,0:11:27.369 тому що далі ви отримуєте запит на[br]аутентифікацію від ненадійного терміналу, 0:11:27.369,0:11:34.699 ви кидаєте виклик цьому терміналу. Ідея[br]полягає в тому, що неможливо відправити 0:11:34.699,0:11:42.769 правильний ключ відповіді, якщо не маєте[br]пристрою, що містить цей PUF, е-е, тобто 0:11:42.769,0:11:46.920 фізичну односторонню функцію. Отже, ви[br]отримуєте ключ відповіді і відхиляєте 0:11:46.920,0:11:55.950 це, якщо ключ відрізняється на багато бітів.[br]Тому що це не буде ідеальний збіг. Ось. 0:11:55.950,0:12:01.259 Можуть бути подряпини, можуть бути[br]мікронні відмінності в напрямі, це 0:12:01.259,0:12:08.619 може бути погана камера, ви отримаєте[br]відмінності, і те, як ви потім 0:12:08.619,0:12:18.999 обчислюєте найменш ймовірний[br]рівень прийнятності підробленого пристрою 0:12:18.999,0:12:23.769 який вам потрібен, і потім ви отримуєте цю[br]кількість бітів. І тоді ви можете отримати 0:12:23.769,0:12:28.620 кращий відсоток збігів, якщо повторите[br]кроки (4) - (6) кілька разів, і якщо у вас 0:12:28.620,0:12:36.509 закінчаться пари викликів, можете просто[br]повернутися до пункту (1). Така ідея. 0:12:36.509,0:12:39.490 Це перша робота, яка зробила цей[br]зв'язок з криптографією, вона має 0:12:39.490,0:12:44.939 визначений протокол, але є кілька не дуже[br]приємних речей, н-д, у вас є спеціальне 0:12:44.939,0:12:50.649 необхідне обладнання, і ми б дуже хотіли[br]хотіли б мати таку ж можливість у 0:12:50.649,0:12:55.929 тільки силіконі. Тепер у цьому[br]документі вже було запропоновано, щоб ви 0:12:55.929,0:13:03.309 могли мати подібний підхід,[br]якщо розсієте електрони... 0:13:03.309,0:13:07.279 не розумію, що тут написано, але я знаю,[br]що це не те, що ми збираємося зробити. 0:13:07.279,0:13:14.529 До речі, якщо ви займаєтеся такими речами.[br]то можете прочитати дуже старі 0:13:14.529,0:13:21.910 газети. Тож, хіба не було чудово, коли ви могли[br]сказати це: "При розміщенні паливних стрижнів 0:13:21.910,0:13:26.509 високі рівні радіації в “гарячій” комірці[br]забезпечували стійкість до втручання". 0:13:26.509,0:13:30.100 Або: «Сейсмічні датчики ... виявлять[br]спробу отримати фізичний доступ до 0:13:30.100,0:13:33.459 пакета задовго до того, як безпека[br]інформації опиниться під загрозою." 0:13:33.459,0:13:39.550 Я б не приймав це як ставку, тому що[br]Я знаю вас, хлопці, але перший варіант 0:13:39.550,0:13:45.489 досить непоганий. І ви побачите речі[br]на кшталт цього. RSA було зроблено в 0:13:45.489,0:13:53.729 1984. Це - я думаю - це[br]ISA, можливо, до-ISA, не знаю... Ось 0:13:53.729,0:13:59.959 як це було зроблено. І текст[br]дуже гарний: вони відсканували старий, 0:13:59.959,0:14:05.569 фактично набраний на друкарській машинці[br]папір. Це доступно в Інтернеті, 0:14:05.569,0:14:11.769 якщо у вас є університетський доступ...[br]вибачте... Є й інші рішення 0:14:11.769,0:14:13.930 цієї проблеми. У вас є[br]апаратні модулі безпеки, також 0:14:13.930,0:14:18.920 смарт-карти, у вас є надійна платформа[br]модулів... взагалі, я дізнався, що вони у 0:14:18.920,0:14:23.500 нас з 2006 року, мені здалося, що вони[br]були старішими.... Але у вас все ще є 0:14:23.500,0:14:26.819 проблема управління ключами, так? Тому[br]що ключ не прив'язаний до платформи. Якщо 0:14:26.819,0:14:31.759 можна витягти ключ і помістити його в[br]інший довірений модуль платформи, або 0:14:31.759,0:14:37.879 ще один апаратний модуль безпеки, то ми[br]залишаємося на волосок від загибелі. Отже, аспекти 0:14:37.879,0:14:42.699 полягають в тому, що ключ ніколи не[br]покидає пристрій - в ідеалі - але як тоді 0:14:42.699,0:14:46.769 ключ увійшов у пристрій? Ви можете ввести[br]нові ключі, можна ввести ключ-шифрування, 0:14:46.769,0:14:52.129 щоб розшифрувати ключі, які ви ніколи не бачите,[br]які експортує інший апаратний модуль безпеки, 0:14:52.129,0:14:58.850 це все цікава криптографія, але також[br]виникає проблема, що може робити ключ, 0:14:58.850,0:15:04.720 чи обмежені ви 1024 бітами RSA, і чи можна[br]все це емулювати після того, як 0:15:04.720,0:15:13.480 у вас є ключ, так? Ми дійсно хочемо[br]мати інші аспекти нашої функції. Зараз, 0:15:13.480,0:15:21.371 це перша назва PUF, «випадкові[br]функції кремнію", але вони 0:15:21.371,0:15:28.449 вже знали, що «PRF» може мати якийсь[br]трибуквений акронім, який перегукується з 0:15:28.449,0:15:31.280 «псевдовипадковою функцією», тому вони вирішили[br]піти на «фізично неклоновану 0:15:31.280,0:15:34.519 функцію". Існує цікава[br]дискусія про те, чи має це бути 0:15:34.519,0:15:41.149 «фізично» чи «фізичне»... не буду лізти[br]в це. Ідея в тому, що стійкість до доступу 0:15:41.149,0:15:46.689 загалом це дорого, складно,[br]це просто... давайте подивимось на інший 0:15:46.689,0:15:51.679 підхід. Існує достатня варіативність процесів[br]між ідентичними інтегрованими 0:15:51.679,0:15:55.509 де... так, вони не ідентичні[br]через ті процеси 0:15:55.509,0:16:02.730 варіацій. А вже у 2000 році хтось[br]зробив... Лофстром, Дааш і Тейлор мали 0:16:02.730,0:16:14.230 невелику статтю про спеціальний пристрій[br]ідентифікаційної схеми. Якщо ви хочете 0:16:14.230,0:16:17.400 використовувати їх для безпечної[br]ідентифікації та автентифікації пристрою, 0:16:17.400,0:16:23.809 то одного такого ланцюга недостатньо.[br]Потрібно більше. І що ви робите? Ви 0:16:23.809,0:16:28.889 будуєте це. І я не вважаю це[br]реально здійсненним, ... по суті, це 0:16:28.889,0:16:33.120 вся схема, у вас є затримка.[br]це кільцевий генератор 0:16:33.120,0:16:40.529 PUF. Отже, у вас тут є контур затримки,[br]це автоколивальний контур, 0:16:40.529,0:16:46.109 по суті, це повертається до цього. І[br]виклик тут є для кожного з 0:16:46.109,0:16:54.110 цих блоків. І що каже біт: якщо[br]це одиниця, то ви проходите, якщо це 0:16:54.110,0:16:58.310 нуль, ви пропускаєте. Тож якщо у вас є[br]інший виклик, у вас інший 0:16:58.310,0:17:03.509 шлях через цей PUF. Тож в ідеалі,[br]кожен виклик має бути непередбачуваним 0:17:03.509,0:17:12.030 чи цей останній арбітр, що стоїть тут.[br]десь там... дає одиницю. 0:17:12.030,0:17:19.509 або нуль, а потім рахуєте імпульси,[br]і ідентифікуєте свої схеми. Зараз 0:17:19.509,0:17:24.930 атаки на нього також були досить добре[br]вивчені в цій роботі... можливі атаки. 0:17:24.930,0:17:28.720 Отже, у вас є атака дублювання,[br]по суті, клонування, яке повинно бути 0:17:28.720,0:17:32.990 неможливим. Так, це загальна[br]ідея: Клонування має бути неможливим. Ось 0:17:32.990,0:17:40.640 це емуляція з вимірювання, тобто, будуєте[br]модель на основі цього, вимірюючи точну 0:17:40.640,0:17:46.890 відстань між логічними одиницями всередині[br]PUF, або довжину проводів всередині 0:17:46.890,0:17:52.240 PUF, також вважається нездійсненним, тому що як[br]як ви збираєтесь виміряти це без 0:17:52.240,0:17:58.640 знищення PUF. Це було в 2001 році. Тоді[br]була емуляція з моделювання, тож, якщо 0:17:58.640,0:18:02.480 ви отримуєте достатньо цих пар виклик-[br]відповідь, можете застосувати деякі з них 0:18:02.480,0:18:07.950 до цього гарні алгоритми машинного навчання,[br]і ви отримуєте передбачення відповідей. 0:18:07.950,0:18:10.910 І, нарешті, у вас є контроль[br]алгоритму атаки, який полягає в 0:18:10.910,0:18:16.180 атакуванні алгоритму управління PUF[br]навіть не потрапляючи до PUF. Якщо ви 0:18:16.180,0:18:24.040 може це зробити, тоді ваш PUF марний. Отже,[br]вони також запропонували фізично контрольовану 0:18:24.040,0:18:30.090 неклоновану функцію, що є тим самим[br]але з дзвіночками. Отже, у вас є доступ до 0:18:30.090,0:18:37.960 функції для PUF, яка є частиною PUF. Це[br]робиться для запобігання остаточного 0:18:37.960,0:18:44.770 нападу. Отже, ви накладаєте логіку[br]функції доступу на PUF, так що 0:18:44.770,0:18:49.650 для доступу до логіки функції access[br]потрібно розбити PUF. І 0:18:49.650,0:18:56.290 якщо ви зламаєте PUF, все зламається,[br]перестане працювати. Тож це дає додаткові 0:18:56.290,0:19:01.720 властивості. Неконтрольований PUF можна[br]використовувати лише для автентифікації. 0:19:01.720,0:19:10.030 Це можна використовувати для таких речей,[br]як докази виконання на певному пристрої. 0:19:10.030,0:19:14.480 Потенційно [для] речей, щодо яких я не маю[br]думки: щодо коду, який працює лише на 0:19:14.480,0:19:20.380 певних пристроях, але якщо вам знадобився[br]безпечний криптографічний ключ, вам слід 0:19:20.380,0:19:23.750 використовуватиме контрольований PUF.[br]Це ідея. Але ви все ще можете зробити 0:19:23.750,0:19:28.991 ідентифікацію. Отже, як виглядає цей[br]PUF? У вас є випадковий хеш, ви 0:19:28.991,0:19:34.701 маєте потенційний ID тут, маєте PUF[br]тут, Виклик, Ідентифікатор, Особистість в 0:19:34.701,0:19:38.770 випадковому хеші, ви проганяєте його через[br]PUF, виправляєте помилки, тому що PUF - 0:19:38.770,0:19:42.640 не ідеальний, а потім знову випадковий хеш,[br]а потім відповідь. Це робиться для того, щоб запобігти 0:19:42.640,0:19:50.090 всім цим нападам. Якщо вас це цікавить,[br]то почитайте газету. Потім, у 2011 році 0:19:50.090,0:19:54.570 була запропонована формальна модель, що[br]потрібно від PUF? По-перше, нам потрібна 0:19:54.570,0:20:00.500 надійність. У всіх оцінках нам потрібна[br]однакова відповідь. Нам потрібна фізична 0:20:00.500,0:20:04.340 неклонованість, насправді не повинно бути[br]можливом клонувати ці речі, і ми 0:20:04.340,0:20:12.010 потребуєм непередбачуваності. Ці два варіанти[br]потенційно великі, тож ми розберемося з цим 0:20:12.010,0:20:18.320 на останньому слайді, здається. І з[br]2001 року було багато пропозицій 0:20:18.320,0:20:23.560 та напади на PUF. Отже, по-перше, є[br]Arbiter PUF, які всі затримують 0:20:23.560,0:20:31.140 на основі. Отже, загальна ідея полягає [br]в пропусканні сигналу через чіп, там він 0:20:31.140,0:20:36.500 затримується на певну суму. Ця сума[br]є унікальною для кожного чіпа. Але 0:20:36.500,0:20:43.250 виявилось, що це можна досить легко змоделювати.[br]І навіть бістабільне кільце PUF, яке є 0:20:43.250,0:20:50.870 досить недавнє, я думаю, ви можете зробити[br]машинне навчання... Я дуже 0:20:50.870,0:20:54.920 рекомендую цю статтю «Навчання арбітрів[br]PUFs". По суті, ідея полягає в тому, що ви 0:20:54.920,0:21:00.450 маєте 30000 пар «виклик-відповідь», цього [br]достатньо, щоб забезпечити 100% точність 0:21:00.450,0:21:07.440 на 256-бітному алгоритмі з викликом PUF.[br]Це не добре. Це не працює, якщо ви можете 0:21:07.440,0:21:16.670 змоделювати це таким чином. Також можна [br]використовувати оптичне вимірювання сигналів 0:21:16.670,0:21:21.700 з точністю до шести пікосекунд. Отже.[br]ці штуки можуть існувати не набагато 0:21:21.700,0:21:28.430 довше. Існують PUF на основі пам'яті.[br]Вони основані на бістабільній пам'яті, яка 0:21:28.430,0:21:35.540 виглядає так, і він також є на основі [br]затримки, але тут він унікальний до 0:21:35.540,0:21:40.690 клітини. У вас є блок цих комірок,[br]всі вони незалежні, так що ви отримуєте 0:21:40.690,0:21:48.260 цей шаблон. Ці клітинки йдуть до одиниці[br]або нуль, і вони досить стабільні 0:21:48.260,0:21:54.480 в цьому. Пізніше я покажу картинку того,[br]що станеться, якщо у вас буде гарний PUF з 0:21:54.480,0:22:00.030 цього типу, і якщо у вас немає хорошого[br]PUF. Однак, якщо у вас є SRAM PUF, 0:22:00.030,0:22:06.511 наприклад, ви маєте обмежену SRAM. Тому [br]ви можете просто, в принципі, прочитати 0:22:06.511,0:22:11.990 все це і зберегти всі біти в базі даних. [br]А потім ви можете клонувати чіпа у 0:22:11.990,0:22:20.830 Тому що ти можеш використовувати сфокусовані [br]іонні пучки, щоб обрізати SRAM іншого чіпа у 0:22:20.830,0:22:26.360 правильну орієнтацію. І, емуляція,[br]якщо у вас є ця база даних, ви можете 0:22:26.360,0:22:32.020 відповісти зі своєї бази даних. Отже, це[br]в літературі називається «слабкий PUF», 0:22:32.020,0:22:37.590 але це, мабуть, все ще найкорисніший[br]з тих, що ми маємо зараз. Зазвичай це, 0:22:37.590,0:22:41.890 а також те, що у ваших пристроях, якщо[br]вони мають фізичну неклоновану 0:22:41.890,0:22:47.940 функцію. Але вони здебільшого контролюють[br]більшу частину часу. І, нарешті, 0:22:47.940,0:22:53.770 нещодавно хтось запропонував, здається.[br]це був, так, Шаллер, Сьонг і 0:22:53.770,0:23:00.460 Анагносто... не можу вимовити. Але засновано[br]на розпаді, ідея полягає в тому, що у вас є 0:23:00.460,0:23:07.290 DRAM, вимкнути, увімкнути живлення знову[br]ввімкнути, він розпався. Немає атак 0:23:07.290,0:23:16.100 на це, що я бачив. Отже, останні[br]кілька хвилин цієї розмови будуть 0:23:16.100,0:23:26.810 про ваші власні PUF пам'яті. Що є[br]тривіально. Так? ... Ні, насправді ні. 0:23:26.810,0:23:31.711 І весь цей час ви могли думати,[br]навіщо нам взагалі цим перейматися? Це 0:23:31.711,0:23:37.630 здається безнадійним для PUF, у силіконі[br]недостатньо випадковості, але 0:23:37.630,0:23:42.180 я не згоден. Тому що, по-перше.[br]захист краще, ніж ніякого, а саме 0:23:42.180,0:23:49.360 що є у пристроїв на мікросхемах. [br]І по-друге, я не вірю в срібні кулі. 0:23:49.360,0:23:55.970 Це має бути частиною більшого механізму безпеки.[br]Тому, якщо нічого іншого, якщо всі ви 0:23:55.970,0:24:03.100 хочете від цієї розмови - це якусь цікаву[br]статтю для читання, хоча б одну, то прочитайте цю. 0:24:03.100,0:24:06.660 Це на слайді 39, він називається[br]"Полегшене рішення для захисту від 0:24:06.660,0:24:12.220 підробок для недорогих пристроїв з[br]вбудованими PUF." І, бажано, щоб ви також 0:24:12.220,0:24:17.300 прочитали цей, «ПЗ на основі PUF захист[br]для бюджетних вбудованих пристроїв". 0:24:17.300,0:24:22.400 Нехай вас не вводять в оману терміни «захист IP»[br]та «ліцензійна модель». Це все однакові речі. 0:24:22.400,0:24:26.480 Середовище безпечного завантаження. Ви хочете, щоб воно було,[br]наприклад, на своєму Raspberry Pi. Я не 0:24:26.480,0:24:30.930 знаю чи є це в Raspberry Pi, це доведеться[br]з'ясувати. Отже, вам знадобиться 0:24:30.930,0:24:39.380 пристрій з замаскованим ROM для зберігання[br]завантажувача, як перша стадія коду 0:24:39.380,0:24:45.160 має бути під вашим контролем. Вам потрібно[br]мати цей модифікований код запуску, вам 0:24:45.160,0:24:50.690 потрібно мати змогу його модифікувати.[br]Також вбудований SRAM, щоб створити 0:24:50.690,0:24:56.860 PUF з нього. А потім вам знадобиться трохи[br]енергонезалежна пам'ять для зашифрованої прошивки 0:24:56.860,0:25:05.840 та допоміжних даних. Отже, у проекті[br]puffin, який було зображено на малюнку 0:25:05.840,0:25:16.950 з... Отже, тут є декілька результатів.[br]Це мікроконтролер STM32F100B, 0:25:16.950,0:25:21.590 це PandaBoard, яка дуже схожа на[br]мобільний телефон, так що те, що ви хочете 0:25:21.590,0:25:27.160 побачити це. Білий шум. Ця частина -[br]PUF-подібний діапазон пам'яті, ця частина 0:25:27.160,0:25:32.110 можливо, зіпсована завантажувачем або[br]чимось подібним, неправильним кодом, але 0:25:32.110,0:25:39.860 це можна використовувати. Виглядає добре.[br]Отже, коли у вас є такий білий шум, ви 0:25:39.860,0:25:46.110 починаєте вимірювати багато разів, а потім[br]обчислюєте відстань Гемінга між 0:25:46.110,0:25:49.830 безліччю вимірювань з безлічі різних[br]пристроїв. І ви хочете, щоб він виглядав 0:25:49.830,0:25:54.940 ось так, ви хочете, щоб це була половина.[br]Тому що це означає, що кожен пристрій буде 0:25:54.940,0:26:02.950 виглядатиме по-різному. Приблизно на 50%. Ви також вимірюєте[br]внутрішню відстань Хеммінга в класі, яка дорівнює 0:26:02.950,0:26:08.900 вимірюванню з того ж самого PUF, і ви[br]хочете, щоб вона була меншою за 0.1. Ви не хочете 0:26:08.900,0:26:13.940 бути занадто неточним, тому що тоді[br]виправлення помилок стає надто складним 0:26:13.940,0:26:18.680 і почнеться витік інформації, і вам знадобиться[br]виправлення помилок, використовуючи для цього 0:26:18.680,0:26:28.930 наприклад, коди Голея. Отже, перший[br]документ, про який я згадав , це... це... 0:26:28.930,0:26:33.130 полегшений захист від підробок, це теж з[br]того документу. Прочитайте його, він також 0:26:33.130,0:26:36.430 пояснює, як працює вилучення.[br]Якщо вас це зацікавило, тут є багато 0:26:36.430,0:26:42.560 наукової літератури. І[br]нарешті, ви будуєте цей нечіткий 0:26:42.560,0:26:49.450 екстрактор, а потім реєструєте свій чіп.[br]І генеруєте деякі допоміжні дані для 0:26:49.450,0:26:53.870 для виправлення помилок, а потім[br]виклик чіпу, ви надсилаєте ці 0:26:53.870,0:26:58.710 дані для виправлення помилки разом з викликом.[br]І в кінцевому підсумку ідея полягає в тому, що ви 0:26:58.710,0:27:04.690 отримаєте секретний S' від кожного чіпа. І як[br]це можна використати? У вас є завантажувач 0:27:04.690,0:27:08.700 у замаскованому ROM, це перший етап[br]завантажувача, він викликає PUF, і 0:27:08.700,0:27:13.800 розшифровує завантажувач другого рівня,[br]що надходить із зовнішньої пам'яті. Потім 0:27:13.800,0:27:18.500 ви завантажуєте вбудовану ОС.[br]Отже, це має виглядати знайомим для 0:27:18.500,0:27:23.900 багатьох з вас, тому що так само працює[br]працює атестація пристроїв на x86, якщо ви 0:27:23.900,0:27:34.960 використовуєте довірені модулі платформи. Отже,[br]трохи детальніше, та сама процедура, запит до 0:27:34.960,0:27:38.680 PUF, розшифровуємо і викликаємо, тут ключ[br]також і ви розшифровуєте і викликаєте 0:27:38.680,0:27:45.970 ядра, і, нарешті, ось як це виглядає[br]в реальних деталях. І навіть якщо 0:27:45.970,0:27:51.970 ви не захочете це збирати, ви все одно[br]матимете це: пам'ятаєте, я показував вам 0:27:51.970,0:27:58.500 внутрішньокласову відстань Хаммінга,[br]10% різниці між вимірюваннями? Це 0:27:58.500,0:28:03.250 викликані червоними крапками. Це нестабільні[br]клітини оперативної пам'яті. Їх можна використовувати як 0:28:03.250,0:28:07.500 насіння для випадкової функції. І надіюсь,[br]у вас не буде цього. Це виглядає 0:28:07.500,0:28:11.640 неправильно, це не PUF, це занадто[br]передбачувано. На жаль, все це не буде 0:28:11.640,0:28:16.350 на x86, тому що ми шукали[br]PUF в процесорах, але Intel та AMD 0:28:16.350,0:28:22.970 явно все обнуляють. Наостанок, кілька слів[br]про конфіденційність. У мене не багато 0:28:22.970,0:28:28.121 часу на це, але мені дуже сподобався факт.[br]що вони згадували, що відчувають користувачі... користувачі 0:28:28.121,0:28:32.020 що їх можна відстежити, якщо є[br]унікальний ідентифікатор. Начебто, це не є 0:28:32.020,0:28:39.059 обґрунтоване занепокоєння. Чорт забирай, користувачі -[br]параноїки. Тепер до контрольованого PUF. Ви можете 0:28:39.059,0:28:43.490 додати ідентифікатор особистості як користувача. Якщо вони[br]оскаржать це, ви додаєте особистість, тож 0:28:43.490,0:28:47.020 одна програма, яка читає PUF, отримує[br]інший ідентифікатор, ніж інша програма, 0:28:47.020,0:28:50.940 що змінює весь результат хеш-[br]функції, ніякої параної не більше не 0:28:50.940,0:28:59.910 буде. Сподіваюся. Нарешті, посилання.[br]Google Scholar - ваш друг. Решта 0:28:59.910,0:29:05.600 слайдів... всілякі[br]посилання... Прочитайте їх! Ви вже бачили 0:29:05.600,0:29:08.940 все це, прочитайте,[br]дякую за увагу. 0:29:08.940,0:29:17.790 оплески 0:29:17.790,0:29:22.150 Геральд: Дякую, Поле. Ми маємо[br]час для двох запитань. 0:29:22.150,0:29:26.000 Будь ласка, підійдіть до[br]мікрофонів... Мік 3! 0:29:26.000,0:29:32.460 Мік 3: Що ви думаєте про функції на основі MEMS[br]фізично неклонованих функцій, де 0:29:32.460,0:29:36.970 вони в основному використовують[br]акселерометр датчики, 0:29:36.970,0:29:40.770 і відхилення в цих датчиках викликають[br]проблеми, як контрольовані вібрації? 0:29:40.770,0:29:44.140 Пол: Вибачте, я пропустив[br]перше слово запитання. 0:29:44.140,0:29:48.360 Мік 3: На основі MEMS... технологія,[br]яка використовується для створення 0:29:48.360,0:29:55.230 акселерометрів у кремнії. Отже, Bosch має[br]деякі мікросхеми PUF, засновані на ній, де вони 0:29:55.230,0:29:59.290 є масивами цих MEMS-чіпів, а потім[br]керований вібратор, щоб викликати 0:29:59.290,0:30:00.290 виклик в них. 0:30:00.290,0:30:05.240 Пол: Я думаю, що вони більш безпечні.[br]ніж силіконові PUF, тому що вони 0:30:05.240,0:30:09.810 створені для випадковості, а ми тут[br]намагаємося витягти випадковість з 0:30:09.810,0:30:15.010 існуючої схеми. Так, вони цікаві.[br]Використовуйте їх, якщо можете, але 0:30:15.010,0:30:19.890 більшість людей не мають такої можливості. 0:30:19.890,0:30:20.930 Мік 3: Дякую. 0:30:20.930,0:30:24.620 Геральд: Ще питання?[br]Пол: Ось тут! 0:30:24.620,0:30:27.760 Геральд: Гаразд, мік 7! 0:30:27.760,0:30:32.370 Мік 7: Привіт, дякую за розмову, я ніколи[br]не чув про PUF. Нещодавно я ходив на 0:30:32.370,0:30:36.980 пошуки придатної для використання смарт-картки, яка[br]б відповідала всьому, що я хотів зробити, наприклад, 0:30:36.980,0:30:45.630 відкривати вихідним кодом. Чи можете[br]розповісти про використання PUF з OpenPGP 0:30:45.630,0:30:49.550 зі смарт-карткою або подібним? 0:30:49.550,0:30:54.350 Пол: Коротка відповідь: ні. Я не маю[br]уявлення чи буде OpenPGP підтримувати щось 0:30:54.350,0:31:01.290 подібне до цього. У вас є протоколи PKCS,[br]Я знаю, що теоретично це можливо. 0:31:01.290,0:31:04.710 Я не знаю, чи хтось[br]реалізовав це. Є PUF на 0:31:04.710,0:31:10.310 смарт-картах, але чи... Ми не досліджували[br]це, я не знаю нікого, хто б це робив. 0:31:10.310,0:31:11.030 Мік 7: Дякую. 0:31:11.030,0:31:13.750 Пол: Але це не означає,[br]що його не існує. 0:31:13.750,0:31:16.610 Геральд: На цьому все.[br]Будь ласка, привітайте Пола, ще раз. 0:31:16.610,0:31:20.237 Пол: Дякую![br]оплески 0:31:20.237,0:31:25.413 музика 0:31:25.413,0:31:44.000 Translated by Yuliia Kaminska[br](ITKST56 course assignment at JYU.FI)