در مبحث امنیت سختافزار، یک تابعِ کپیناپذیرِ فیزیکی (به انگلیسی: Physical Unclonable Function) یا PUF (که بعضاً با در نظر گرفتن یک معیار امنیتی ضعیفتر، تابعِ فیزیکیْ کپیناپذیر نامیده میشود)، یک شیءِ فیزیکی است که به ازای یک ورودی و شرایط (چالش)، یک «اثرانگشت دیجیتالِ» فیزیکیْتعریفشده به عنوان خروجی ارائه میدهد (پاسخ) که به عنوان یک شناسهٔ منحصربهفرد و بیشتر برای دستگاههای نیمهرسانا مثل ریزپردازندهها استفاده میشود. PUFها بیشتر اوقات بر اساس تفاوتهای فیزیکی منحصربهفردی ساخته میشوند که بهطور طبیعی در هنگام تولید دستگاههای نیمهرسانا رخ میدهند. PUF یک موجودیت فیزیکی است که در یک ساختار فیزیکی قرار داده میشود. امروزه PUFها در مدارهای مجتمع پیادهسازی و معمولاً در کاربردهایی که نیازمندیهای امنیتی بالا دارند و بهطور خاص رمزنگاری استفاده میشوند.
اولین ارجاعات به بهرهبرداری از ویژگیهای فیزیکیِ سیستمهای نامنظم با هدف احراز هویت به مقالهٔ باودر در سال ۱۹۸۳[۱] و مقالات سیمونز در سال ۱۹۸۴[۲][۳] برمیگردد. در سال ۱۹۹۲ Naccache و Frémanteau یک شمای احراز هویت برای کارتهای حافظه ارائه کردند.[۴] اصطلاحات POWF (تابع یکطرفهٔ فیزیکی) و PUF (تابع کپیناپذیر فیزیکی) در مقالاتی در سالهای ۲۰۰۱[۵] و ۲۰۰۲[۶] ابداع شدند. مقالهٔ دوم اولین PUF یکپارچه را توصیف میکرد. این PUF برخلاف PUFهای مبتنی بر نور، به صورت یکپارچه با مدار اندازهگیری در یک مدار الکتریکی یکسان و بر روی سیلیکون ساخته میشود.
PUF از سال ۲۰۱۰ تا ۲۰۱۳ در بازار کارتهای هوشمند و به عنوان راهی آیندهدار برای ارائهٔ «اثرانگشت سیلیکونی» و در نتیجه ساخت کلیدهای رمزنگاری منحصر به هر کارت هوشمند مورد توجه قرار گرفت.[۷][۸]
در حال حاضر PUFها به عنوان یک جایگزین امن به جای ذخیرهسازی باتری-پشتیبانِ کلیدهای مخفی در FPGAهای تجاری مثل Xilinx Zynq Ultrascale+[۹] و Altera Stratix 10 استفاده میشوند.[۱۰]
PUFها به منحصربهفرد بودن ریزساختار فیزیکیشان وابستهاند و این ریزساختار به عوامل فیزیکیِ تصادفی که در حین تولید اتفاق میافتند وابسته است. این عوامل غیرقابلپیشبینی و غیرقابلکنترل هستند و بنابراین کپیکردن ساختار تقریباً غیرممکن است.
برای ارزیابی این ریزساختار، به جای قرار دادن تنها یک کلید رمزنگاری، PUFها احراز هویت چالش-پاسخ را پیادهسازی میکنند. وقتی که یک تحریک فیزیکی به ساختار اعمال میشود، به دلیل رفتار پیچیده ریزساختار فیزیکی دستگاه در مقابل آن تحریک، ساختار به شکلی غیرقابلپیشبینی (اما قابل تکرار) واکنش نشان میدهد. رفتار هر ریزساختار خاص به عوامل فیزیکی و غیرقابلپیشبینی زمان ساخت آن بستگی دارد (مثل پرتاب یک سکه). به تحریک اعمال شده چالش، و به واکنش PUF، پاسخ گفته میشود. هر چالش خاص به همراه پاسخ مربوط به آن یک جفت چالش-پاسخ (به انگلیسی: Challenge-Response Pair) یا CRP تشکیل میدهند. شناسهٔ دستگاه بر اساس ویژگیهای خود ریزساختار مشخص میشود. با توجه به اینکه با مکانیزم چالش-پاسخ، این ساختار مستقیماً فاش نمیشود، بنابراین دستگاه در مقابل حملات جعل مقاوم است.
با استفاده از یک استخراجکننده فازی، کدهای قطبی تودرتو[۱۱] یا استخراجکنندهٔ کلید میتوان از PUF برای استخراج یک کلید رمزنگاری قوی و منحصربهفرد استفاده کرد.[۱۲] آن کلید خاص هر مرتبه که PUF ارزیابی شود، مقدار قبلی را خواهد داشت.[۱۳][۱۴]
PUFها میتوانند با هزینهٔ سختافزاری کم پیادهسازی شوند. برخلاف یک ROM که یک جدول از پاسخهای همهٔ چالشها دارد و بنابراین به هزینهٔ سختافزاری نمایی نسبت به تعداد بیتهای چالش نیاز دارد، PUF میتواند با هزینهٔ سختافزاریِ متناسب با تعداد بیتهای چالش و پاسخ پیادهسازی شود. در بعضی مواقع PUF میتواند با ویژگیهای درست از سختافزارهای موجود استفاده کند.
کپیناپذیر بودن به این معناست که هر PUF یک راه منحصربهفرد و غیرقابلپیشبینی برای نگاشت چالش به پاسخ دارد، حتی اگر دو PUF در یک فرایند ساخت و به عنوان دو دستگاه یکسان ساخته شوند. ساخت یک PUF که با یک PUF دیگر رفتار چالش-پاسخ یکسان داشته باشد عملی نیست، چون داشتن کنترل دقیق بر فرایند ساخت غیرعملی است. کپیناپذیریِ ریاضیاتی به این معناست که یافتن پاسخ به یک چالش با استفاده از سایر CRPها یا با داشتن برخی از ویژگیهای قسمتهای تصادفی یک PUF سخت باشد. با توجه به اینکه پاسخ یک چالش از ارتباط پیچیدهٔ چالش با تعداد زیادی یا همهٔ قسمتهای تصادفی PUF بدست میآید، با وجود دانستن طراحی سیستم PUF اما بدون دانستن همهٔ ویژگیهای فیزیکی قسمتهای تصادفی آن، CRPها بسیار غیرقابلپیشبینی هستند. ترکیب کپیناپذیری فیزیکی و ریاضیاتی، یک PUF واقعاً کپیناپذیر ارائه میدهد.[۱۳][۱۵]
توجه داشته باشید که در PUF این ویژگیهای فیزیکی هستند که کپیناپذیرند، اما زمانی که یک کلید توسط PUF ساخته شد، مشکلی برای کپی کردن کلید (که خروجی PUF است) وجود ندارد.
به دلیل این ویژگیها میتوان از PUFها به عنوان یک شناسهٔ دستگاه منحصربهفرد و غیرقابلدستکاری استفاده کرد. همچنین میتوان از PUFها به عنوان روش ساخت و ذخیرهسازی کلید امن و همچنین منبع اعداد تصادفی استفاده کرد.
تا به حال بیش از ۴۰ نوع PUF پیشنهاد شدهاست[۱۶] از PUFهایی که یک عنصر ذاتی مدارهای مجتمع موجود را ارزیابی میکنند[۱۷] تا مفاهیم توزیع تصادفی ذرات بر سطح شیءِ فیزیکی برای احراز هویت.[۱۸] همهٔ PUFها در معرض تغییرات محیطی مثل دما، ولتاژ تغذیه و تداخل الکترومغناطیسی هستند که بر کارایی آنها تأثیرگذار است؛ بنابراین PUFها به جز فقط تصادفی بودن و داشتن عملکرد متفاوت در دستگاههای متفاوت، باید در یک دستگاه یکسان و در شرایط محیطی مختلف عملکرد یکسان داشته باشند.
در بسیاری از کاربردها، پایدار بودن خروجی PUF مهم است. اگر قرار باشد از PUF در ساخت کلید رمزنگاری استفاده شود، لازم است تا خطاهای ناشی از فرایندهای فیزیکی زیرین تصحیح شود تا در هر بار ساخت و در هر شرایطی، کلید مقدار یکسانی داشته باشد. دو مفهوم پایه در تصحیح خطا وجود دارد: پیشپردازش و پسپردازش.[۱۹][۲۰]
استراتژیهایی برای افزایش قابلیت اعتماد PUFهای نوع SRAM در طول زمان، بدون کم کردن ویژگیهایی مثل امنیت و کارایی، توسعه یافتهاند.[۲۱]
تحقیقات در دانشگاه کارنگی ملون بر روی پیادهسازی انواع PUF نشان دادند که بعضی از تکنیکهای کاهش خطا مقدار خطای پاسخ PUF را در بازهٔ تقریباً ۷۰ تا ۱۰۰ درصد کاهش میدهند.[۲۲]
تحقیقی در دانشگاه ماساچوست در امهرست برای افزایش قابلیت اعتماد PUFهای نوع SRAM برای ساخت کلید، یک تکنیک تصحیح خطا برای کاهش نرخ خطا مطرح کردهاست.[۲۳]
برای بدست آوردن قابلیت اطمینان بیشتر برای هر بیت تولید شده توسط PUF از روشهای کدگذاری هم قابلاعتماد و هم امن مبتنی بر کدگذاری تبدیل استفاده میشود، به طوری که برای اینکه احتمال خطای یک بلاک برابر ۱ بیت از ۱ میلیارد بیت باشد، کدهای تصحیح خطا با پیچیدگی پایین، مثل کدهای BCH کافی باشند.[۲۴]
از کدهای قطبی تو در تو بهطور مشترک برای کمیتسازی بردار و تصحیح خطا استفاده میشود. کارایی آنها برای طول بلاک داده شده در ابعاد حداکثر تعداد بیت مخفی تولید شده، حداقل مقدار اطلاعات شخصی فاش شده دربارهٔ خروجی PUF و حداقل ذخیرهسازی لازم به صورت متناوب بهینه است. نشان داده شدهاست که شمای تعهد فازی (به انگلیسی: Fuzzy Commitment Scheme) و استخراجکنندههای فازی در بعد حداقل ذخیرهسازی کاملاً بهینه نیستند.[۱۱]
در سال ۲۰۱۱ تحقیق دانشگاهی نشان داد که PUFهای مبتنی بر تأخیر در برابر حملات کانال جانبی آسیبپذیر هستند[۳۳][۳۴] و پیشنهاد شد که برای جلوگیری از این حملات از در طراحی راههای مقابله استفاده شود. همچنین پیادهسازی نامناسب PUF میتواند دارای درپشتی باشد.[۳۵][۳۶] در ژوئن ۲۰۱۲، یک محقق در مؤسسهٔ تحقیقاتی فراونهوفر در امنیت کاربردی و یکپارچه (AISEC) به نام دومنیک مرلی ادعا کرد که PUF نقاط ورود بیشتری برای حمله به یک سیستم رمزنگاری فراهم میکند و اینکه به تحقیقات بیشتری دربارهٔ آسیبپذیریهای PUFها نیاز است، قبل از آنکه بتوان از آنها در کاربردهای عملی مربوط به امنیت استفاده کرد.[۳۷] حملات ارائهشده همه بر PUFهایی بودند که در سیستمهای ناامن مثل FPGA یا SRAM پیادهسازی شده بودند. همچنین اطمینان به مناسب بودن شرایط محیط برای سطح امنیتی مورد نیاز الزامی است.[۱۹]
چند تحقیق در سال ۲۰۱۵ ادعا کردند که امکان حمله به انواع خاصی از PUFها با تجهیزات ارزان و در زمانی در حد چند میلیثانیه وجود دارد. تیمی در دانشگاه رور بوخوم آلمان روشی برای ساخت یک مدل از نوع XOR Arbiter PUF ارائه دادند که بتوانند پاسخ آن را به هر چالش پیشبینی کنند. روش آنها فقط به ۴ جفت چالش-پاسخ نیاز دارد که تولید آنها حتی در دستگاههایی که منابع محدود دارند نباید بیشتر از ۲۰۰ میلیثانیه طول بکشد. با استفاده از این روش و یک دستگاه ۲۵ دلاری یا یک تلفن همراه هوشمند با قابلیت NFC، آن تیم توانستند با موفقیت RFIDهای مبتنی بر PUF را در حالی که در یک کیف پول و در جیب عقب افراد بود، کپی کنند.[۳۸]
حملاتی که بالاتر ذکر شدند از انواع تهاجمی[۳۹] تا غیرتهاجمی[۳۸] گستردهاند. یکی از انواع مشهورترین حملات غیرتهاجمی حملات یادگیری ماشین هستند.[۳۸] از شروع دوران PUFها این شک وجود داشت که این نوع حملات قابل انجام بر PUFها باشند.[۴۰] در نبود آنالیز دقیق و اثباتهای ریاضیاتی امنیت PUF، حملات تککاره در مقالات معرفی شدند. در نتیجه راههای مقابله برای این نوع حملات کمتر موثرند. همراه با این تلاشها، حدس زده شده که آیا PUFها میتوانند به شکل مدار در نظر گرفته شوند تا اثبات شود که شکستن آنها سخت است.[۴۱] در پاسخ یک چارچوب ریاضیاتی پیشنهاد شدهاست که در آن حملات یادگیری ماشین قابل اثبات برای چند دسته از انواع PUFهای شناخته شده معرفی شدهاست.[۴۲]
به همراه این چارچوب و برای ارزیابی امنیت PUF در مقابل حملات یادگیری ماشین، الگوریتمهای تست ویژگی در جوامع علمی امنیت سختافزار بازمعرفی شدهاند و به صورت عمومی در دسترس قرار گرفتهاند.[۴۳][۴۴] این الگوریتمها ریشه در موضوعات تحقیقاتی تثبیتشدهٔ تست ویژگی، نظریهٔ یادگیری ماشین و تحلیل بولی دارند.
یکی از دلایل قابل استفاده بودن حملات یادگیری ماشین برای PUFها ممکن است این باشد که بیشتر روشهای پیشپردازش و پسپردازش که تاکنون استفاده شدهاند، اثر همبستگی بین خروجیهای PUF را نادیده میگیرند. برای مثال یک روش برای کاهش همبستگی، گرفتن یک بیت از مقایسهٔ خروجی دو نوسانساز حلقوی است. اما این روش همهٔ همبستگیها را از بین نمیبرد؛ بنابراین تبدیلهای کلاسیک موجود در زمینهٔ پردازش سیگنالها به خروجی خام PUFها اعمال میشوند تا قبل از کمیتسازی خروجی در دامنهٔ تبدیل برای تولید رشته بیتهای خروجی ناهمبند شوند. این روشهای ناهمبندکردن میتوانند به غلبه بر مشکل افشای اطلاعات مبتنی بر همبستگی خروجی PUFها کمک کنند، حتی اگر دمای محیط و ولتاژ تغذیه تغییر کنند.[۴۵]