# Typical PUFs and primary applications - Non-Silicon PUFs: Optical PUFs. - Time-Delay based silicon PUFs: Arbiter PUF (APUF) - Intrinsic silicon PUFs: Static Random-Access Memory PUF (SRAM PUF) ## Optical PUFs - 光學 PUF 的前身是基於利用不可複製的物理獨特現象的概念(UNO)。例如在冷戰期間,UNO 被用在控制軍事設備上,輕薄的特殊顆粒被噴灑到核武器的表面上。由於這些顆粒會反射光線且隨機分佈,因此被光線照射後的反射模式在不同的觀看角度下都是獨特且無法預測的。(類似於迷彩效果) - 第一個知名的 PUF 是與光學相關的 PUF,最初被稱為物理單向函數。這裡的單向函數是通過物理手段創建而成的,而不是通過數論。是在非均勻透明塑料內部做上標記,給定角度的光照下,形成了一個2D的pattern,這個圖案再由相機記錄下來(如圖所示)。![1b.png](https://hackmd.io/_uploads/HkRD6qH7T.png) --- - 對於 PUF 來說,input的query或者challenge會產生一個特定的output或是response,這個過程被稱為 Challenge-Response Pair(CRP)。 - 在物理單向函數中,角度被視為光學 PUF 的挑戰(輸入),而 2D 圖案被視為回應(輸出)。CRP 可以被記錄下來用於辨識光學 PUF 的真實性。由於 2D 圖案是隨機且不均勻的,因此不容易偽造或仿冒該光學 PUF。 - 一旦 CRP 被記錄在僅由可信方(伺服器)知曉的安全資料庫中,也可以在遠端進行驗證。因此,光學 PUF 具有非常大的 CRP 空間,甚至無法在有限的時間內(例如幾天、幾周甚至數年)完全讀取。 - 在驗證階段,伺服器從資料庫中隨機選擇一個 CRP,並公開將challenge發送給光學 PUF 的持有者,接收其response,並將之與存儲的response進行比較,如果response之間的值在設定的閾值內,便可證實該光學 PUF 的真實性,同時為了避免replay攻擊,每個 CRP 只能使用一次。 - 光學 PUF 需要大量的成本記錄其 CRP。此外,它與現今CMOS元件的不兼容性造成其實用性上的阻礙。 ## Arbiter PUFs - 2002年提出了一種與CMOS相容的APUF(見圖)。![1c.png](https://hackmd.io/_uploads/HJcTWsB7p.png) - 這種 APUF 利用製程當中的變異性所產生的隨機互連和晶體管閘延遲。 - 這種結構簡單、緊湊,能夠提供非常大的CRP空間。 - 與光學PUF不同,APUF是建立在線性累加結構上的,因此容易受到各種建模攻擊的影響。 - 在這些攻擊中,攻擊者利用已知的 CRP 觀察結果來建立一個模型,以預測未知的CRP行為。 - 儘管最新的APUF變體能夠抵抗各種建模攻擊,但並無法對建模攻擊這種模式產生一勞永逸的效果。隨時都有可能出現新型的建模攻擊方法,削弱或繞過最新提出APUF變體的安全性。 ## Memory-based intrinsic PUFs - APUF不是一個固有的PUF,因為它在製造時並沒有被內建在硬體設備內,需要額外的設計和佈局。 - 在2007年,第一個固有的PUF被設計出來:一個SRAM PUF。SRAM PUF將SRAM單元上的電荷狀態作為response,將cells的 address作為challenge(見圖1d)。![1d.png](https://hackmd.io/_uploads/SydiQiBQp.png) --- - 雖然還有其他不是基於memory的固有PUF,但考慮到商業電子產品中記憶體的普及,基於memory的固有PUF在實踐中更加方便,包括SRAM PUF、快閃記憶體PUF和動態隨機存取記憶體(DRAM)PUF。 - 另一方面,基於記憶體的PUF通常會受到CRP空間大小的限制,因此不適用於基於Public CRP的身份驗證。 - PUF 的 Response 容易受到不同的環境條件、雜訊和硬體老化的影響,因此,最原始的response不能直接作為key來使用。 - PUF金鑰生成器通常由兩個組件組成:一個secure sketch module和一個熵值的累加器,它們被用來將原始的response轉換為key。這兩個組件通常合稱為模糊提取器fuzzy extractor。 - secure sketch module負責調解noisy response,有兩種常見的構造,但不論具體的構造如何,secure sketch module都是一對隨機的程序: - sketching procedure將一個response r 作為input,然後計算出enrolled key 和 helper data; - recovery procedure 則使用helper data和重新生成的response r′ 來重建enrolled key。 - 因為從secure sketch module得到的key可能不會理想地均勻分布,也就是說,金鑰並不具有full-bit entropy。為了解決這個問題,熵累加器透過random oracle轉換key令其滿足full-bit entropy 。 - 在實際的應用場景中,這是透過hash function來實現的。 - 由於ECC的解碼比編碼計算量更大,因此ECC編碼邏輯可以嵌入資源受限的PUF中。負責計算的解碼邏輯則由資源豐富的伺服器端執行。這種配置稱為reverse/reusable的fuzzy extractor。 - 需要注意的點是,反向模糊提取器和模糊提取器的安全性可能不相同。 --- # PUF taxonomy and applications ## Weak and strong PUFs - 光學 PUF 和 APUF 因為有非常大的CRP空間,通常被歸類為Strong PUF,而 SRAM PUF 則被歸類為Weak PUF。 - Strong PUF除了能夠實現Weak PUF 應用(例如密鑰生成)外,還可以被應用於進階的密碼協定,如oblivious transfer遺忘傳輸, bit commitment位元承諾, and multi-party omputation多方計算。 - Strong PUF 和 Weak PUF 之間的主要威脅差異在於 CRP 介面是否可以被攻擊者直接存取: Strong PUF 的介面是公開的。迄今為止,僅有大型非矽光學 PUF 和 超高資訊內容 PUF (super high information content SHIC-PUF)是對建模攻擊無明顯漏洞的Strong PUF。 - Silicon PUFs,尤其是 APUF 的變體,可能會受到建模攻擊的影響。儘管許多學者不斷努力提高Silicon PUF對建模攻擊的抵抗力,但大多數的變體要嘛成本過高,要嘛太不實用。 因此,開發實用、容易集成且不容易受到建模攻擊影響的 Strong PUF 仍是一個挑戰。 ## Reconfigurable PUFs - 大多傳統 PUF 仍表現出靜態的 CRP 行為,無法更新,這同時也限制了部分基於 PUF 的應用。 - 可重組 PUF(RPUF)在 2004 年被設計出來,其基本概念是透過引入更新機制以刷新Challenge-Response的行為。這種動態重組能力不需要實際更改整個 PUF 的電路結構。 - 重新設定 RPUF 的來源通常分為兩種類型:邏輯和物理。因此有兩種 RPUF 類別: - 邏輯可重組 PUF(LRPUF)和物理可重組 PUF(PRPUF)。 - 對於 RPUF 有兩個比較重要的挑戰: - Server如何基於已註冊的 CRP,能夠安全地遠端更新 RPUF CRP,尤其是 PRPUF? - 如何避免惡意使用者進行DoS攻擊,故意重新配置 RPUF,使受信任方已註冊的 CRP 脫離同步? ## Erasable PUFs - 由Strong PUF 實現的高級加密協議,像是key exchange和oblivious transfer,在重複利用 PUF 模型或在post protocol access下是有風險的。 - 因為同一個Strong PUF 用於執行連續的protocol sessions。 - Erasable PUF 透過幫 Strong PUF 添加一個特性來解決重用模型攻擊: - 每個 CRP 可以獨立重新配置。 - 這讓它與 RPUF 分出差別來。因為 RPUF 不需要是Strong PUF,每個 CRP 也不需要獨立刷新。 - 第一個於2011年所提出的 Erasable PUF 是一個帶有交叉點的奈米高密度交叉線結構,每個交叉點都有一個二極體。並且故意放慢讀取速度防止 SHIC-PUF CRPs 被完全讀取,而為了實現可擦除性,利用了二極體 I-V 特性中的擊穿現象,但是,這種擦除僅適用於特定的二極體或Response。 因此,開發一種高效且實用的可擦除 PUF 也是未來研究工作的一條領域。 ## Public PUFs - PUF 的安全性取決於其對於Challenge-Response的不可預測性,而這又取決於物理複雜的交互作用。因此,對於任何在數學上模仿 PUF 物理功能的 PUF 模型,必須被安全地保護。 - 實際上,PUF 也可被視為一種存儲設備,secret key是包含在基於靜態隨機性的硬體而不是 NVM 中容易被測量出來的數字形式。 - 2009 年,提出了第一個Public PUF(PPUF),同時被直觀地稱為 Simulation Possible but Laborious System(SIMPL),PPUF 是獨特且具有物理不可複製性的。 而且,PPUF 硬體不是secret,因為 PPUF 模型被假設為任何一方都知道。 它的安全性是建立在response evaluation的速度遠快於 其它模擬其產生response的model。 - PPUF 可以用在公鑰密碼協定、安全位置驗證、匿名安全協定、可信賴的感測和計算等應用。 目前,實現一個穩定且實用的 PPUF 仍是一個挑戰。 --- # PUF's challenges ## Unreliability - PUF的不可靠性(即位元錯誤率)對許多應用來說是一個障礙。因為為了修正其Response,晶片上的ECC所帶來的功耗和成本甚至比PUF本身的邏輯開銷要大好幾倍。 - 當評估這些成本時,ECC邏輯開銷通常沒有被適當地考慮在內,而是被視為PUF的一部分,這可能導致研究中低估了Cost值。此外,用於錯誤修正的Help Data可能會將金鑰生成暴露於攻擊當中。 - 再來,Noisy Response令我們很難在矽晶片中實現Strong PUF。例如實現APUF的變體變得相當困難,因為強烈的非線性特性會降低PUF的可靠性,使其在現實場景中變得不實用。不可靠的Response甚至會被作為noisy的side channel information,允許攻擊者對APUF的變體進行建模攻擊。 - 提高PUF可靠性有兩種通用方法。常用的方法之一是response error correction。第二種方法是error reduction,error reduction可以進一步分為兩種方式:內在和外在錯誤減少。內在錯誤減少是利用電路設計技術來增強回應的可靠性,但通常需要特別設計一些特殊步驟,比如hot-carrier injection。 - 而外在方法是在登記註冊的階段選擇可靠的Response。包括通過重復測量後進行投票,或者通過直接測量來確定可靠的response。而最近,機器學習也被用來確認例如SRAM PUF和APUF可靠的response。 ## Attacks and countermeasures - 攻擊與防禦之間的競賽永遠不會停止,PUF也不例外。首先,必須防止攻擊者能夠直接存取Weak PUF的Response。否則,攻擊者可以將讀出的Response複製到NVM(非揮發性記憶體)後冒充該PUF。 - 禁止直接存取可能無法完全阻止攻擊者通過利用資料殘留(例如在針對SRAM PUF的攻擊中)或基於發射光子的side-channel information(例如在SRAM PUF和APUF的攻擊中)來對Response進行特徵化。 - 可以使用聚焦離子束(focused ion beam)來物理編輯出一個類似於目標SRAM PUF的SRAM陣列,這種手法與上述將Response複製到NVM以進行的冒充行為不同,而是旨在破壞其硬體元件的“不可複製性”。 當然,在很大程度上,這不是微觀或奈米尺度上真正的物理複製。防禦者也可以檢查PUF的更多行為以檢測“複製”的贗品,盡管這可能需要有原版的硬體在手。除了二進制的Response本身之外,還有其他物理和行為特徵包括,例如SRAM PUF的資料殘留、對環境參數的敏感程度、以及特定位元的可靠性。 - 考慮多維的PUF行為可以增強安全性。例如,每個SRAM PUF Response都有自己特定的位元殘留。因此,攻擊者即使可能能夠使用“複製”的SRAM PUF來冒充模擬相似的啟動狀態,但幾乎不可能同時確保“複製”的贗品SRAM PUF能夠呈現相同的資料殘留。 - Interconnect meshes(互連網格)可以用於防止光學攻擊,包括從IC的正面進行的發射光子攻擊;對於背面攻擊,可以利用through-silicon-via (TSV)技術作為對策。此外,將PUF電路編織進現有的功能電路中也可以增加光學攻擊的難度。 - 另一種攻擊稱作功耗分析攻擊,需要在重複測量功耗痕跡時保持足夠低的noise。因此,一種有效的對策是向PUF設備額外注入noise,以防止攻擊者準確的測量功耗痕跡。 - 至於時序攻擊,需要準確的時間測量電路甚至可能在晶片上不可用,特別是對於PUF所面相的低端設備。 總之,像是可靠性、發射光子以及基於功耗和時序的攻擊在內的所有旁通道攻擊皆需要進行重複測量以增加信噪比,因此將真隨機數生成器(TRNG)與PUF結合控制challenge的生成可以有效避免重複測量以防禦這些攻擊。 - 旁通道資訊促進了對PUF的攻擊,不過我們也可以使用這些資訊來區分複製的贗品PUF。 從對抗機器學習的角度來看,可以利用機器學習的固有漏洞來應對建模攻擊。例如故意改變Response以毒化訓練資料(CRP Data),防止攻擊者建構準確的模型。 ## Tamper resistance - 只有同時滿足兩個條件時,PUF密鑰才會被提取:硬體設備為開機狀態且被提出一個challenge。因此,即使在關機狀態利用challenge,PUF密鑰也不會以任何可觀察的數位形式存在。 - 而主動改變物理結構的入侵攻擊也將改變PUF的challenge-response,甚至將其毀損。這種防篡改特性使得以PUF為基礎部署在不安全場景中的物理系統非常有價值,因為該環境有可能會有惡意人員和外部敵人控制設備來進行物理操控。 - 雖然研究中常假定PUF具有防篡改的特性,但整體來說尚缺乏進行實驗驗證以評估PUF的防篡改特性,以保護系統免受物理攻擊。 --- # Outlook ## Bit-specific reliability - 當生成Response時的預設條件與PUF在實際環境下運作的差異增加時,位元錯誤率也會增加。 - 相較於在初始階段時在固定環境狀態下的收集一次次的 Challenge-Response,另一種做法是使用同一個 Challenge,讓 PUF 裝置在各種環境條件下運行,並將這些 Response 收集回來用以提高PUF的可靠性,同時還可以降低像是 Fuzzy Extractor 做錯誤修正的成本。 - 需要注意的問題是,如機器學習等技術可以透過建構模型,來分析預測任何條件下 PUF 裝置所產生的Response。 ## Flip-side of unreliability - 雖然 PUF 有不夠可靠的問題,但從另一方面來看,在特定的應用場景下,這種特性是可以被有效利用的。 - 像是嘈雜的Response可以作為真隨機數產生器(TRNG)良好的構建來源,而TRNG又是密碼學和安全機制的關鍵。 - 其次,PUF的不可靠性可以用來保證所感測到資訊的真實性。其中的原理在於,因為PUF會受到環境參數的影響(例如電壓或是溫溼度);因此,對這些環境參數敏感的PUF Response可以起到將PUF本身作為Sensor使用。 - 最後一點,雖然因電壓和溫溼度引起的不可靠性可以被恢復,但在面對硬體設備老化時,要嘛是難以復原,要嘛就是成本過高。 ## Public-key infrastructure - 目前所使用PUF的衍生金鑰通常是以對稱式的方式呈現。那些註冊PUF Key的驗證者以及PUF裝置(證明者)恢復相同的金鑰。![3a.png](https://hackmd.io/_uploads/rJWb8BHQa.png) --- - 當有另一方想要對接並與PUF裝置進行安全通訊時,使用上述方法可能會變得很麻煩,因為對稱式金鑰需要提前安全地提供給參與者。於是在這種情境下,把PUF應用於PKI就變得很有吸引力。 - 在金鑰註冊期間,PUF裝置生成一個金鑰,可以直接用作私鑰,或是作為產生私鑰的隨機種子。然後,生成相應的公鑰,如圖所示,並將公鑰廣播在公鑰伺服器上。這種非對稱式金鑰部署的優點是私鑰和公鑰配對與PUF裝置綁定。![3b.png](https://hackmd.io/_uploads/BJ8mPBHXT.png) --- - 任何一方現在都可以方便地通過發送一個隨機數並通過使用公鑰來驗證私鑰簽名(即已簽名的隨機數)來驗證此PUF裝置的真實性,如圖所示。也因為當資料/交易發送出去時可以被簽名,接收端可以驗證發送端所宣稱的裝置或身分。![3c.png](https://hackmd.io/_uploads/S1vKPSH7a.png) --- - 這樣的簽名意味著PUF裝置無法否認其發出/簽署的資料/交易。如果集成到區塊鏈系統中,如圖所示,其中帳簿中的記錄數據/交易是基於簽名來自授權的物聯網(IoT)設備。不僅裝置與硬體設備綁定,還與使用者的行為綁定,使用者和裝置都可以被追蹤或驗證。![3d.png](https://hackmd.io/_uploads/SkyY_HHQ6.png) --- ## PUFs based on nanotechnology - 目前大多數的 PUF 都是著重在利用積體電路製程在矽質晶圓模板上的變異,因為大多數商業化的產品都是基於這種技術製造的。 - 不過近期也陸陸續續有學者開始研究奈米等級的相關元件,例如相變記憶體(PCM)、磁阻式隨機存取記憶體(MRAM)、奈米碳管場效電晶體(CNFETs)和電阻式隨機存取記憶體(RRAM)。 - 這些技術都是用於建構其他儲存機制的記憶體,採用了像是電阻和磁性的變化,而不是像現在主流 SRAM、DRAM 和快閃記憶體那樣保留電容器上的電荷。 - 這些奈米元件共同面臨的難題是,當尺寸縮小到奈米級別時,製程所產生的差異影響會非常嚴重,不利於需要記憶的應用,因為可讀取率會大幅下降。 - 然而,如果這些奈米元件相對容易製造,能與目前 CMOS 製造工藝相容,具有整合能力,這種隨機性在建構 PUFs 時會被視為極大的優勢。 - 用多層次堆疊的方式整合,在中間層放置 PUF 來減緩各種旁通道的攻擊,進一步提高防篡改的特性。又因為奈米架構可以儲存超高密度的資訊,讓我們有機會以更低的成本實現 PUF 。 ## Real-world applications - 隨著物聯網裝置的普及,保護隱私和確保安全性不管是對於消費者或是製造商都愈來愈重要,目前也有各式各樣的安全機制被提出來,而這些演算法不少都需要保證Key是安全的。 - 也因為 PUF 可以快速地生成獨特的secret,因此在工業領域,使用 PUFs 設備解決問題更倍受關注,像SRAM PUF出現時更是如此,因為它可以適用在我們現有的硬體基礎上,不需要對裝置做硬體上的更動。