IT

완벽한 세상을 위한 한걸음 패스키란?

0and24 2024. 11. 20. 13:58

안녕하세요! 오늘은 비밀번호 없는 세상을 꿈꾸게 하는 패스키(Passkey) 기술에 대해 알아보려고 합니다. "비밀번호 없는 세상"이 왜 필요한지, 패스키가 어떻게 동작하는지, 그리고 실제 서비스에 어떻게 적용될 수 있는지 간단한 예제와 함께 살펴보겠습니다.

출처: https://devocean.sk.com/blog/techBoardDetail.do?ID=167067

왜 비밀번호를 없애야 할까요?

비밀번호는 오랜 시간 동안 인증 방식의 중심이었지만, 여러 문제를 안고 있습니다:

  1. 해킹에 취약:
    비밀번호가 네트워크를 통해 전달되거나 서비스에 저장될 때 해커의 공격 대상이 됩니다.
  2. 예측 가능성:
    복잡한 비밀번호를 기억하기 어려워 대부분 사람이 쉽게 추측 가능한 비밀번호를 사용합니다.
  3. 재사용 문제:
    여러 사이트에서 동일한 비밀번호를 사용하면 한 곳에서 유출된 비밀번호로 다른 계정도 해킹당할 위험이 있습니다.
  4. 피싱 공격:
    정교한 가짜 사이트에 비밀번호를 입력하면 쉽게 탈취됩니다.

패스키란?

패스키는 위와 같은 문제를 해결하기 위해 고안된 인증 기술로, 공개키 기반 암호화(Public Key Cryptography)를 활용합니다.

  • 공개키: 서비스에서 저장하는 키로, 암호화된 정보를 검증하는 데 사용됩니다.
  • 개인키: 사용자의 디바이스에 안전하게 저장되며, 절대 외부에 노출되지 않습니다.

패스키는 기기 잠금 수단(지문, 얼굴 인식, PIN 등)을 통해 개인키를 보호하고, 사용자는 비밀번호 없이 간단히 인증할 수 있습니다.

패스키 작동 원리 (쉽게 이해하기)

  1. 패스키 생성 단계
    • 사용자가 패스키를 등록하면, 공개키/개인키 쌍이 생성됩니다.
    • 공개키는 서비스에 저장되고, 개인키는 사용자의 디바이스에 안전하게 저장됩니다.
  2. 로그인 과정
    • 서비스에서 인증 요청 시, 랜덤한 데이터를 보냅니다.
    • 사용자의 디바이스는 개인키로 이 데이터를 서명하고, 서명된 데이터를 서비스로 다시 보냅니다.
    • 서비스는 공개키로 서명을 검증하여 인증을 완료합니다.

간단한 예제: 패스키를 활용한 로그인

1. 패스키 등록

// FIDO2 패스키 생성 요청
navigator.credentials.create({
  publicKey: {
    challenge: new Uint8Array(32), // 서버가 생성한 랜덤 값
    rp: { name: "Example Service" }, // 서비스 이름
    user: {
      id: new Uint8Array(16), // 사용자 고유 ID
      name: "user@example.com",
      displayName: "User"
    },
    pubKeyCredParams: [{ alg: -7, type: "public-key" }] // 알고리즘 (예: ECDSA)
  }
}).then((credential) => {
  console.log("패스키 생성 완료:", credential);
});

2. 로그인 요청

 

// FIDO2 패스키로 인증 요청
navigator.credentials.get({
  publicKey: {
    challenge: new Uint8Array(32), // 서버가 생성한 랜덤 값
    allowCredentials: [{
      id: storedCredentialId, // 사용자 등록 시 저장된 ID
      type: "public-key"
    }]
  }
}).then((assertion) => {
  console.log("로그인 성공:", assertion);
});

패스키의 장점

  1. 보안성:
    개인키는 기기에서만 보관되며, 외부로 노출되지 않아 해킹 위험이 적습니다.
  2. 피싱 방지:
    패스키는 특정 도메인에만 사용 가능하므로, 가짜 사이트에서는 작동하지 않습니다.
  3. 사용 편의성:
    비밀번호를 기억하거나 입력할 필요 없이 지문이나 얼굴 인식만으로 인증할 수 있습니다.

실제 적용 사례

  1. 대형 플랫폼: Google, Apple, Microsoft는 이미 패스키 기술을 지원하고 있습니다.
  2. e-커머스: PayPal, Amazon은 패스키를 통해 더 안전한 결제 환경을 제공합니다.
  3. SK텔레콤의 Passkey 플랫폼:
    SK텔레콤은 패스키를 활용한 인증 서비스를 제공하며, 기업들이 손쉽게 도입할 수 있는 플랫폼도 지원하고 있습니다.

결론

패스키는 더 이상 비밀번호에 의존하지 않고, 안전하면서도 간편한 인증 방법을 제공합니다.
앞으로 더 많은 서비스에서 패스키를 지원하게 될 것이며, 비밀번호 없는 세상이 현실이 될 날도 머지않았습니다.

 

참고 자료:

https://devocean.sk.com/blog/techBoardDetail.do?ID=167067

 

패스키: 인증 기술의 미래, 비밀번호 없는 세상으로의 발걸음

 

devocean.sk.com