指紋辨識、臉部辨識的原理是什麼?手機如何認出本人?

約 11 分鐘 · 更新:2026年10月23日

手機的指紋辨識和臉部辨識,是把感測器讀到的手指或臉的特徵轉成數字,再比對是否和登錄時的數字相似。比對和資料的保管,都在晶片中受保護的區域進行,照片和特徵資料不會送到外面。讓他人通過的機率不是零,所以會和PIN碼或解鎖密碼搭配使用。

這篇文章可以了解

  • 生物辨識不是看「完全一致」,而是看「相似程度」來判斷的原因
  • 指紋感測器的3種方式(電容式、光學式、超音波式)
  • 臉部辨識中,一般相機和量測立體形狀的方式有什麼不同
  • 指紋和臉的資料,以什麼形式存放在哪裡
  • 讓他人通過的機率的官方數值,以及仍然需要PIN碼的原因
  • 通行金鑰和指紋、臉的關係

先備知識:不需要。加密和密碼的基礎,可以從相關文章的連結補充。

生活中的例子

拿起手機看一下螢幕,鎖就解開了。手指放上去,付款就完成了。iPhone在2013年推出Touch ID(指紋),2017年推出Face ID(臉)。

另一方面,也有人擔心指紋或臉的照片會不會留在手機裡,或被送到廠商那裡。也有人懷疑,長得很像的人是不是就能打開。

生物辨識是什麼:用身體的特徵確認本人

確認本人的線索,大致有3種:知道的東西(PIN碼或密碼)、擁有的東西(手機等),以及身體的特徵。用身體的特徵確認本人的方法,稱為生物辨識。3種線索的搭配方式,在「密碼為什麼會被破解?」中說明。

和密碼最大的不同,是每次讀到的都不會完全相同。手指放上去的角度、力道和乾燥程度,都會讓讀到的紋路一點一點改變。臉也會因為亮度、表情和眼鏡而看起來不同。所以判斷的方式不是「是否完全一致」,而是「有多相似」。

把相似的程度變成分數,超過事先決定的線,就視為本人。這條線稱為門檻值。門檻值要設在哪裡,後面的「2種錯誤」會再說明。

讀取指紋的感測器:3種方式

指尖的皮膚上,排列著細細隆起的線條,稱為「脊線」。脊線和脊線之間稍微凹下的部分,稱為「谷線」。指紋感測器是一種半導體晶片,會把脊線和谷線的排列,當成許多細小的點來讀取。讀取的方式主要有3種。

電容式:量測電荷累積的差異

感測器表面的下方,密密麻麻地排列著能導電的小板子。這種板子稱為電極。手指放上去時,脊線的部分會非常靠近電極。谷線的部分則離得稍微遠一點。

電極和手指之間,會產生儲存電荷的性質。能儲存的量稱為電容,距離越近就越大。因此,脊線下方的電極數值大,谷線下方的數值小。把這些數值排列成深淺,指紋的紋路就浮現出來了。這和觸控螢幕是同樣的想法,詳細說明在「觸控螢幕為什麼能感應手指?」。

電容式指紋感測器:手指脊線下方的電極數值大,谷線下方的電極數值小。把數值排列起來,就成為指紋的紋路 從側面看指尖 手指 各電極(方塊)量到的值 脊線下方:距離近,所以大 谷線下方:距離遠,所以小
手指的脊線(皮膚隆起的線條)離電極近,谷線離得遠,所以每個電極的數值都不同。省略的部分:實際的電極縱橫排列了好幾萬個,間隔比這裡細得多。表面保護層的厚度,以及脊線和谷線的高低差,也都畫得比較誇張。

Apple的Touch ID使用這種電容式感測的原理。根據Apple的說明,它會從皮膚最外層的下方讀取細緻的影像。

光學式:用螢幕的光照亮再拍攝

在螢幕上按手指的方式,常見的是光學式。手機常用的OLED螢幕,構成畫面的小點(像素)每一個都會自己發光。讓手指按著的地方發光,光就會在手指上反射。脊線和谷線的反射方式不同,就形成明暗的紋路。

這道光,由放在螢幕下方的小型相機感測器接收。把光轉成電的原理,和手機相機的影像感測器相同(「影像感測器是什麼?」)。放在螢幕下方的指紋感測器,大約從2018年開始搭載在手機上。

超音波式:用聲音的反射量測形狀

人耳聽不到的高頻聲音,稱為超音波。超音波式感測器從螢幕下方朝手指發出超音波,再量測反射回來的情形。脊線貼著表面,但谷線和表面之間有一點點空氣的空隙。這個差異會改變聲音反射的方式。

Qualcomm的超音波式感測器「3D Sonic」,用在2019年Samsung的Galaxy S10系列。

方式用什麼讀取配置位置的例子
電容式電荷的累積Home鍵、電源鍵
光學式螢幕光的反射螢幕下方
超音波式聲音的反射螢幕下方

分辨臉:平面的影像與立體的形狀

臉部辨識大致有2種做法。一種是用正面的一般相機拍下的影像來比對。這種做法不需要特別的零件,但影像是平面的。要和照片或螢幕上顯示的臉區分開來,需要另外下工夫。

另一種是連臉的凹凸,也就是立體的形狀都量測的方法。Apple的Face ID就是這種方法。iPhone正面的上方,集中搭載了使用紅外線(人眼看不到的光)的零件。Apple稱之為TrueDepth相機。

核心的零件有3個:用看不見的光照亮整張臉的零件、投射出許多看不見光點的零件(點陣投射器),以及拍下光點的紅外線相機。Apple支援頁面的說明是「數千個」光點,2017年發表iPhone X時則是「超過3萬個」。因為自己發光照明,在暗的地方也能使用。

把光點投射在平坦的牆上,拍下來仍是固定的排列。投射在臉上時,在鼻子這種突出的地方和眼睛凹陷的地方,光點的位置會一點一點偏移。從這些偏移,就能知道每個位置的距離。這樣做出的臉的「距離地圖」,稱為深度圖。

投射在平面照片上的光點排列整齊,投射在立體的臉上的光點,會因為鼻子等凹凸而偏移。從偏移可以知道距離 投射看不見的光點再拍攝 照片(平面) 真正的臉 光點不變 光點偏移 從偏移的大小,知道每個位置的距離
相機和投射光點的零件之間隔著一點距離,所以有凹凸時,拍到的光點位置就會偏移。省略的部分:實際的光點有數千個以上,排列也不是整齊的格子。因為是人眼看不到的光(紅外線),實際上看不到這些光點。

知道立體的形狀後,就很難用平面的照片騙過。Face ID結合深度圖和紅外線影像,把臉的特徵轉成數字。

存起來的不是照片,而是「特徵的數字」

登錄時,手機不會直接儲存指紋或臉的影像。而是從影像中只取出比對需要的特徵,變成一串數字。這串數字稱為範本。比對時,也會把讀到的影像同樣轉成數字,再和範本比較。

指紋常用的特徵,是脊線中斷的點和分岔成2條的點。美國國家標準暨技術研究院(NIST)的資料,也說明了用這些點的位置和方向來比對的方法。不過,各家手機實際用哪些特徵,大多沒有公開。

Apple表示,Touch ID儲存的只是指紋的數學表示,不會儲存手指的影像。Apple的說明是,無法從儲存的資料重建原本的指紋影像。

不過,也不能斷言特徵的數字就一定安全。有研究(2007年)顯示,能從標準格式的特徵點資料,做出很相似的指紋影像。而且指紋和臉不像密碼,外洩了也無法更換。因此,特徵的數字也會加密,保護起來不送到外面。

存放的地方:晶片中「受保護的區域」

範本的保管和比對,在手機晶片中特別建立的區域進行。一般的App,以及讓整支手機運作的基本軟體(作業系統,OS),都無法窺看裡面。iPhone把這個區域稱為Secure Enclave。

根據Apple給開發者的資料,Secure Enclave是和其他部分隔離的安全專用運算電路。使用指紋或臉的App,收到的只有成功或失敗的答案。指紋的影像等資料,不會交給App。

Secure Enclave位在負責手機運算的中心晶片之中(2013年的iPhone 5s是A7)。晶片的整體樣貌,在「手機裡有哪些半導體?」中介紹。

瞄準機密的攻擊,不只有使用軟體的方法。也有擾亂電源電壓,或打開晶片調查內部的方法。能承受這類物理攻擊的性質,稱為抗竄改性。Apple說明,Secure Enclave的運算電路刻意以較低的速度運作,以防範擾亂電源等的攻擊。

Android的官方資料也規定,讀到的原始影像和範本,都不能從隔離的環境外面看到。這種環境的代表是TEE,中文稱為「可信執行環境」。

建立TEE的機制中,廣泛使用的是Arm的TrustZone。它在1顆晶片中,切換使用一般的世界和受保護的世界。受保護世界的記憶體,一般的世界會被電路擋住,無法接近。

儲存範本時,會用只有TEE知道的金鑰加密。Android的資料也要求,範本的檔案即使搬到別的裝置也無法使用。登錄的資料,只在那1台裝置上才有意義。存放金鑰的專用元件有什麼不同,在「TPM、HSM、安全元件的差異」中比較。

2種錯誤

生物辨識的錯誤有2種。一種是把他人判斷為本人。這個比例稱為錯誤接受率,英文縮寫為FAR。

另一種是明明是本人卻被拒絕。這個比例稱為錯誤拒絕率(FRR)。需要一再重新放手指時,就是發生了錯誤拒絕。把門檻值調嚴,錯誤接受率會下降,錯誤拒絕率則會上升。兩者是互相拉扯的關係。

也有用假造物代替真的手指或臉來欺騙的攻擊。Android除了錯誤接受率,還會另外測試假造物通過的比例(SAR)。因為錯誤接受率是隨機選出的他人碰巧通過的比率,並不表示對假造物的抵抗力。Android依這個比例等,把生物辨識分成3個等級。最強的是等級3(Class 3)。

App可以只接受等級3的生物辨識。因此依機型不同,有時臉部辨識可以解鎖,卻不能在部分App中使用。

從數字來看

下表列出各家公司公布的「他人碰巧通過的機率」,以及1次猜中PIN碼的機率。數值依據各資料在2026年時的記載。

情況他人通過的機率(參考值)
Touch ID(登錄1根手指)低於5萬分之1
Touch ID(登錄5根手指)最高1萬分之1
Face ID(登錄1張臉)低於100萬分之1
Face ID(也登錄另一種外觀)約50萬分之1
Android的標準(錯誤接受率)5萬分之1
1次猜中4位數的PIN碼1萬分之1
1次猜中6位數的PIN碼100萬分之1

Apple的數值,是Apple自己估計的、隨機選出的1個人碰巧通過的機率。登錄的手指或外觀越多,比對的對象就越多,機率也會上升。Apple提醒,雙胞胎、長得很像的兄弟姊妹,以及未滿13歲的兒童,這個機率會比較高。因為兒童臉部的特徵可能還沒有發育完全。Apple建議,如果擔心就使用解鎖密碼。

Android的5萬分之1,是隨機選出的他人通過的比率,也是所有等級共同的目標。等級的差異,主要取決於對假造物的抵抗力。

PIN碼的數值,是數字隨機選擇時的計算結果。像生日這種容易猜到的PIN碼,會比表中的數值弱得多。

失敗的次數也有上限。Apple規定,Face ID和Touch ID比對失敗5次,就會要求輸入解鎖密碼。他人無法一再嘗試,等待碰巧通過。

即使如此,仍需要PIN碼或解鎖密碼的原因

要使用生物辨識,必須先設定PIN碼或解鎖密碼。生物辨識不是解鎖密碼的替代品。它是省去每次輸入解鎖密碼的捷徑。

第1個原因,是有些場合無法使用生物辨識。例如手指濕了、受傷了,或臉前面有東西擋住。Apple規定,在下面這些情況也會要求解鎖密碼。

  • 剛開機或重新啟動之後
  • 超過48小時沒有解鎖時
  • 比對失敗5次時
  • 6天半(156小時)沒有使用解鎖密碼,而且4小時沒有使用生物辨識時

第2個原因是資料的加密。手機裡的照片和訊息,是用和解鎖密碼綁在一起的金鑰加密的(「加密是什麼?」)。重新啟動後一定要求解鎖密碼,也是這種防護的一部分。簡化來說,解鎖密碼先把金鑰打開一次,生物辨識則是之後繼續使用這把金鑰時的確認。

第3個原因,是指紋和臉無法改變。必須另外準備外洩時可以更換的方法。

和通行金鑰的關係:指紋不會送到網站

越來越多服務可以用通行金鑰代替密碼登入。使用通行金鑰時,手機會為每個網站建立並持有私密金鑰。交給網站保管的,只有成對的、可以公開的金鑰(公開金鑰)。這個機制是以公開金鑰加密為基礎。

登入時,手機用私密金鑰製作簽章,送到網站。簽章是只有持有那把金鑰的裝置才做得出來的記號(數位簽章)。而決定能不能使用私密金鑰的,就是指紋或臉的比對(也可以用PIN碼等代替)。比對通過後,裝置內的金鑰就可以使用。

指紋或臉的資料在手機中比對,不會送到外面。通過後用私密金鑰製作簽章,送到網站的只有簽章 感測器(手指、臉) 手機的晶片之中 和登錄的特徵數字 比對是否相似 通過的話 用私密金鑰 製作簽章 只有簽章 網站(公開金鑰) 指紋、臉的資料不會離開手機
用通行金鑰登入時的流程。手機解鎖時不會製作簽章,只把「是本人」的結果傳給作業系統。省略的部分:對網站每次送來的問題(挑戰)製作簽章。另外,通行金鑰的私密金鑰,也可能加密後同步到同一個人的其他裝置。

業界團體FIDO聯盟說明,生物特徵的資訊和處理都留在裝置內,不會送到伺服器。伺服器知道的,只有本人確認成功這件事。即使網站的資料被偷,裡面也沒有指紋或臉的資料。

也就是說,指紋和臉不是「給網站看的證明書」,而是「打開自己裝置裡金鑰的信號」。

常見的誤解

誤解:手機裡存著指紋或臉的照片,也會送到廠商那裡

實際上,儲存的是用來比對的特徵數字(範本),在晶片中受保護的區域管理。Apple表示,Face ID的資料不會送到Apple,也不會包含在iCloud等備份中。因為登錄的畫面看起來像是在用相機拍攝,所以常被以為會留下照片。

誤解:設定了生物辨識,PIN碼簡單一點也沒關係

實際上,PIN碼或解鎖密碼,是重新啟動後或連續失敗時的最後防線。如果PIN碼是「0000」或生日,不管生物辨識多強,都可能從這裡被打開。正因為不再每次輸入,更要設定成不容易被猜到的號碼。

誤解:既然是「100萬分之1」,除了自己以外絕對沒人能打開

實際上,這個數值是隨機選出的1個人碰巧通過的機率。雙胞胎或長得很像的兄弟姊妹,機率會比較高。Google也針對Pixel的臉部辨識說明,長得很像的人有時可以打開。機率雖然小,但不是零。

進一步學習

接著閱讀

系列「資安與生活中的 IT」的文章

  1. 密碼為什麼會被破解?長度和不重複使用為何重要
  2. 雲端運算是什麼?資料和應用程式在「哪裡」運作
  3. 加密是什麼?對稱式加密與公開金鑰加密的原理
  4. 生成式AI怎麼運作?大型語言模型(LLM)的原理
  5. VPN是什麼?保護通訊的通道原理與做不到的事
  6. 機器學習是什麼?電腦從資料中找出規則的原理
  7. 資料中心是什麼?支撐雲端與AI的建築物內部
  8. 防火牆是什麼?讓通訊通過或擋下的機制
  9. QR Code是什麼?髒污也能讀取的原理
  10. 網路釣魚是什麼?假郵件、假網站的分辨方法與對策
  11. 指紋辨識、臉部辨識的原理是什麼?手機如何認出本人?
  12. 惡意程式是什麼?病毒、勒索軟體的差異與防範對策

這個領域的題目: 硬體安全

參考資料

入門解說一覽