PE Notes · 보안
FIDO 인증
서버에 비밀을 두지 않는 FIDO 1.0의 UAF·U2F와, 브라우저 표준이 된 2.0 WebAuthn·패스키를 피싱 내성 축으로 비교합니다.
패스워드는 재사용과 피싱에 열려 있고, 서버에 비밀이 쌓이면 그 저장소가 표적이 됩니다. 는 기기 안의 개인키로 서명하고, 서버에는 공개키만 둡니다. 도메인이 서명에 묶여 가짜 사이트의 인증이 실패합니다. 이 글은 1.0의 두 프로토콜과 2.0 웹 표준을 한 표에 올립니다.
1.0의 두 갈래
는 생체나 PIN으로 기기를 연 뒤 패스워드 없이 서버를 설득합니다. 는 기존 패스워드 위에 USB·NFC 키를 두 번째 요소로 얹습니다. 전자는 앱 중심, 후자는 물리 키가 필요했습니다.
| 비교축 | UAF | U2F | FIDO 2.0 |
|---|---|---|---|
| 목적 | 패스워드 대체 | 2단계 강화 | 대체와 2단계 모두 |
| 브라우저 | 네이티브 앱 | 플러그인 | 내장 API |
| 패스워드 | 없음 | 있음 | 없어도 됨 |
| 인증기 | 폰 생체 | 보안 키 | 플랫폼 + 보안 키 |
| 표준 | 얼라이언스 | 얼라이언스 | 얼라이언스 + W3C |
개인키는 TPM이나 보안 요소 밖으로 나오지 않습니다. TLS가 채널을 보호해도, 피싱된 패스워드는 정상 TLS 위에서 넘어갑니다. FIDO는 그 비밀 자체를 서버에서 지웁니다.
2.0 등록과 인증
은 페이지와 서버의 API이고, 는 OS와 인증기 사이입니다. 등록은 도전값에 대해 키쌍을 만들고 공개키를 저장합니다. 인증은 같은 도전을 개인키로 서명합니다.
| 단계 | 서버 | 인증기 |
|---|---|---|
| 등록 | 도전 전송, 공개키 저장 | 로컬 검증, 키쌍, 서명 |
| 인증 | 도전 전송, 공개키로 검증 | 로컬 검증, 개인키 서명 |
RP ID(도메인)가 서명에 들어갑니다. 철자가 다른 호스트는 키가 맞지 않습니다. 제로트러스트의 명시적 검증이 기기 소유와 로컬 생체라는 강한 신호로 구현됩니다.
패스키와 MFA 비교
는 2.0을 여러 기기에서 동기화할 수 있게 한 제품 이름에 가깝습니다. OTP와 SMS는 피싱과 SIM 교체에 열리고, 서버에 시드나 번호가 남습니다.
| 비교축 | OTP | SMS | FIDO 2.0 |
|---|---|---|---|
| 피싱 | 약함 | 약함 (번호 탈취) | 도메인 바인딩 |
| 서버 비밀 | TOTP 시드 | 전화번호 | 공개키만 |
| 패스워드 대체 | 불가 | 불가 | 가능 |
| 사용 | 앱 코드 | 수신 대기 | 생체·PIN |
접근통제 토픽의 역할·속성은 “로그인 이후 무엇을 할 수 있나”이고, FIDO는 “그 로그인이 피싱으로 복제되지 않게”입니다. 기업 SSO와 ZTNA 앞에 두는 인증기가 됩니다.