피드로 돌아가기
Dev.toSecurity
원문 읽기
WebAuthn 기반 Passkeys 도입을 통한 서버측 비밀번호 저장소 제거 및 피싱 원천 차단
Laravel's First-Party Passkeys: A Detailed WebAuthn Guide
AI 요약
Context
전통적인 Password 기반 인증 체계는 DB 유출 시 Hash 무차별 대입 공격 및 소셜 엔지니어링에 취약한 구조적 한계를 가짐. 기존 Laravel 환경에서는 외부 패키지에 의존하여 경로, 컨트롤러, JS 로직을 개별적으로 구현해야 하는 통합 비용이 발생함.
Technical Solution
- 비대칭 암호화(Asymmetric Crypto) 기반의 Public Key 저장 구조로 전환하여 서버 내 탈취 가능한 비밀 값 제거
- Registration Ceremony를 통한 Device 내 Private Key 생성 및 서버측 Public Key 등록 프로세스 구축
- Authentication Ceremony 단계에서 Challenge-Response 서명 검증을 통한 사용자 소유권 확인 로직 구현
- laravel/passkeys(서버 로직), @laravel/passkeys(브라우저 API 래퍼), Fortify(헤드리스 인증 계층)의 3계층 분리 구조 채택
- Origin 바인딩 설정을 통한 유사 도메인 피싱 사이트의 서명 생성 가능성을 수학적으로 차단
- 복구 시나리오 대응을 위해 Passkeys와 기존 Password/Magic-link 인증을 병행하는 하이브리드 인증 전략 수립
실천 포인트
1. rpId 설정 후 변경 불가하므로 초기 설계 시 도메인 전략 정밀 검토
2. User 모델에 Passkey 관련 Contract 구현 여부 확인
3. 단일 디바이스 분실 대비 다중 Passkey 등록 기능 제공
4. 계정 복구 경로(Password, Email 등)를 유지하여 가용성 확보
5. pre-
1.0 패키지 사용 시 버전 고정(Pinning) 및 업데이트 모니터링