Get your free and exclusive 80-page Banking Passkey Report
qr code login methods authentication cover

QR 코드 로그인 방식과 인증

네이티브 앱과 패스키를 통한 QR 코드 로그인을 비교하여 안전하고 편리한 인증을 구현하세요. 우리 조직에 가장 적합한 방법을 알아봅니다.

Vincent Delitz

Vincent

Created: August 8, 2025

Updated: August 8, 2025


See the original blog version in English here.

Our mission is to make the Internet a safer place and passkeys provide a superior solution to achieve that. That's why we want to keep you updated with the latest industry insights here.

1. 서론: QR 코드를 이용한 인증#

안전하고 편리한 인증 방법이 그 어느 때보다 중요해졌습니다. 우리가 매일 여러 기기에서 접속하는 온라인 서비스의 수가 증가하면서, 기존의 비밀번호 기반 시스템은 효율성이 떨어지고 번거로워지고 있습니다. 특히 네이티브 앱(iOS 또는 Android 앱)에 많은 사용자를 보유한 기업의 경우, 복잡한 비밀번호나 사용자 이름조차 입력할 필요 없이 사용자를 빠르고 쉽게 인증할 수 있는 QR 코드 기반 로그인에 대한 수요가 증가하고 있습니다.

이러한 맥락에서 다음과 같은 질문들이 생겨납니다.

  • 네이티브 앱을 이용한 QR 코드 기반 인증은 어떻게 작동하나요?
  • 패스키를 이용한 QR 코드 기반 인증과는 어떻게 다른가요?

Native QR Code Revolut Passkeys QR Code Apple

네이티브 앱 로그인에서 QR 코드를 사용하는 대표적인 예로는 WhatsApp, TikTok, Revolut과 같은 앱 우선 서비스들이 있습니다. 동시에 패스키 로그인을 지원하는 기업 목록도 빠르게 증가하고 있습니다.

이 글에서는 QR 코드 기반 인증 기술을 살펴보겠습니다. 2단계 인증 초기화에 사용되는 TOTP QR 코드(Authy나 Google Authenticator와 같은 추가 앱 사용)는 다루지 않을 것입니다.**

또한 다양한 QR 기반 인증 방법들을 비교하며 각각의 장점, 단점, 그리고 잠재적인 취약점을 검토할 것입니다.

이 글을 다 읽고 나면, QR 코드 기반 인증이 여러분의 보안 요구에 적합한 선택인지 더 명확하게 이해하게 될 것입니다.

2. QR 코드란 무엇인가요?#

QR 코드(Quick Response code)는 URL부터 일반 텍스트에 이르기까지 다양한 정보를 저장할 수 있는 2차원 바코드입니다. 원래 1994년 Toyota 그룹의 자회사인 Denso Wave에서 자동차 부품을 빠르고 효율적으로 추적하기 위해 개발되었습니다. 그 이후 QR 코드는 작은 정사각형 안에 많은 양의 데이터를 저장할 수 있는 능력 덕분에 다양한 산업 분야에서 자리를 잡게 되었습니다.

'QR 코드'라는 용어는 사실 Denso Wave의 상표이지만, 기술 자체는 널리 채택되어 상표에 의해 제한되지 않습니다. QR 코드는 흑백의 정사각형 패턴이 특징이며, 스마트폰이나 전용 스캔 장치(QR 스캐너)를 사용하여 스캔하면 인코딩된 정보에 접근할 수 있습니다.

QR 코드 지원은 수년 전부터 iOSAndroid와 같은 모바일 운영 체제에 통합되었습니다. 두 플랫폼 모두 각자의 카메라 앱을 통해 QR 코드 스캔을 기본적으로 지원하므로, 사용자는 추가 소프트웨어 없이도 QR 코드와 쉽게 상호작용할 수 있습니다.

Substack Icon

Subscribe to our Passkeys Substack for the latest news.

Subscribe

일반적으로 앱과 함께 사용되는 QR 코드는 사용자 지정 URL이나 앱 링크를 활용합니다. 이 링크들은 기기에 앱이 설치되어 있는 경우 앱이 자동으로 열리도록 할 수 있습니다. 만약 앱이 설치되어 있지 않다면, QR 코드는 사용자를 관련 앱 스토어로 안내하여 앱을 다운로드하고 설치하도록 유도함으로써 원활한 사용자 경험을 제공합니다. 다음은 Revolut이 앱 처리를 위해 등록한 경로 목록입니다.

https://revolut.com/.well-known/apple-app-site-association
{ "applinks": { "apps": [], "details": [ { "appID": "QUZEZSEARC.com.revolut.revolut", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.test", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.retail.india", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.retail.india-debug", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.invest", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.invest-debug", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.revolutx", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.revolutx-debug", "paths": ["/app/*"] } ] } }

보시다시피 "/app/*"로 시작하는 모든 링크가 처리됩니다. 다음 섹션에서 예시를 볼 수 있습니다. QR 코드 내에 사용자 지정 URL과 앱 링크를 포함시킴으로써, 기업과 개발자는 사용자를 원하는 앱이나 서비스로 직접 안내하는 맞춤형 경험을 만들어 사용자 상호작용의 편의성과 보안을 모두 향상시킬 수 있습니다.

3. 네이티브 앱을 통한 QR 코드 로그인#

네이티브 앱을 통한 QR 코드 로그인은 모바일 기기의 카메라와 QR 코드에 내장된 특정 URL 간의 원활한 상호작용을 활용합니다. 이 과정은 일반적으로 사용자가 웹사이트나 다른 기기에 표시된 QR 코드를 스마트폰 카메라로 스캔하는 것으로 시작됩니다. QR 코드에는 iOSAndroid 기기에서 볼 수 있는 특정 네이티브 앱과 상호작용하도록 특별히 설계된 사용자 지정 URL이 포함되어 있습니다.

예를 들어, Revolut과 같은 서비스는 https://revolut.com/app/challenges/qr/e2d78521-d38a-4773-b1b8-27a902a36b4b와 같은 URL이 포함된 QR 코드를 사용할 수 있습니다. 이 URL은 사용자의 기기에 설치된 Revolut 앱에서 인식되도록 되어 있습니다.

QR 코드를 스캔하면 앱이 자동으로 이 링크를 포착하여 인식하고 해당 앱을 표시하며(위 예시에서 "Revolut"이 일치하는 앱으로 식별됨), 내부적으로 로그인 프로세스를 처리합니다. 이 상호작용은 iOS와 Android 모두에서 지원하는 딥 링킹 메커니즘에 의해 촉진되며, 이를 통해 특정 링크가 웹 브라우저가 아닌 설치된 앱 내에서 직접 열릴 수 있습니다.

만약 기기에 앱이 설치되어 있지 않다면, 운영 체제는 일반적으로 사용자를 적절한 앱 스토어(iOS 기기의 경우 Apple App Store, Android 기기의 경우 Google Play Store)로 리디렉션하여 앱을 설치하도록 안내합니다.

이를 통해 사용자가 처음에 앱을 설치하지 않았더라도 빠르고 쉽게 앱을 다운로드하여 설치 후 프로세스를 계속할 수 있습니다.

대부분의 경우, 이미 앱을 설치한 기존 고객은 원활한 로그인 과정을 경험하게 됩니다. QR 코드를 스캔하면 앱이 자동으로 열리고, 사용자 이름이나 비밀번호를 입력할 필요 없이 인증이 완료됩니다. 이 방법은 QR 코드 스캔 과정에서 민감한 정보가 전송되지 않으므로 사용자에게 주로 편의성을 제공합니다.

기술적으로는 휴대폰에 이미 로그인된 세션을 사용하여 데스크톱에서 새로운 세션을 인증하는 것입니다. 이를 수행하는 데에는 여러 가지 기술이 있습니다. 매우 정교한 버전은 WhatsApp 보안 백서의 클라이언트 등록 → 컴패니언 기기 등록 → QR 코드를 사용한 연결 부분에 게시되어 있습니다.

출처: https://engineering.fb.com/2021/07/14/security/whatsapp-multi-device/

WhatsApp은 2021년부터 다중 기기 접속과 종단 간 암호화를 지원하므로, 이 프로토콜은 주로 다중 기기 메시징 애플리케이션을 위해 설계되어 인증용으로는 완벽하게 적합하지 않습니다. 실제 인증 구현에 따라 안전한 핸드셰이크를 달성하기 위한 더 간단한 접근 방식들이 있습니다. 명심해야 할 점은 항상 사용자 세션과 기기와 서버 간의 통신 채널을 안전하게 처리해야 한다는 것입니다. QR 코드 인증 로그인 구현의 복잡성에 관계없이, 다음과 같은 몇 가지 핵심 보안 원칙을 항상 따라야 합니다.

  1. 세션 무결성: 데스크톱이나 다른 기기에서 새로운 세션을 인증하는 데 사용되는 휴대폰의 기존 로그인 세션은 안전하게 검증되어야 합니다. 이는 일반적으로 세션 하이재킹이나 재전송 공격을 방지하기 위해 보안 토큰이나 다른 암호화 방법을 사용하여 세션의 신뢰성을 확인하는 것을 포함합니다.
  2. 암호화된 통신: 모바일 앱, 서버, 그리고 인증을 요청하는 기기 간의 모든 통신은 HTTPS를 사용하여 암호화되어야 합니다. 이는 세션 토큰 및 로그인 세부 정보를 포함한 민감한 정보가 전송 중에 가로채거나 변조될 수 없도록 보장합니다.
  3. 안전한 토큰 생성: QR 코드 인증 프로세스를 위해 생성된 모든 토큰이나 자격 증명은 안전하게 생성되어야 합니다. 여기에는 예방 조치로 다른 기기에서 사용할 수 없도록 요청하는 기기에 고정하는 것(예: 브라우저-에이전트)이 포함될 수 있습니다.
  4. 사용자에 의한 로그인 확인: 인증 프로세스를 완료하기 전에 사용자가 로그인 시도를 확인하거나 승인할 수 있는 단계를 두는 것이 좋습니다. 이는 모바일 기기에서 사용자 승인을 요구하고 인증 세부 정보를 보여주는 알림 형태일 수 있으며, 추가적인 보안 계층을 더합니다(위 스크린샷에서 볼 수 있듯이).
  5. 시간 기반 제한: QR 코드의 유효 기간에 시간 기반 제한을 구현하여, QR 코드가 잘못된 사람의 손에 들어갔을 때 무단 접근에 사용될 위험을 최소화해야 합니다. QR 코드를 사용할 수 있는 시간 창을 제한하면 잠재적인 보안 위협을 줄이는 데 도움이 됩니다. 중간자 공격을 피하기 위해 자동으로 새로고침되고 최대 유효 기간은 120초 미만이어야 합니다.
  6. 위치 기반 제한: "불가능한 이동" 감지와 같은 로그인 시도에 대한 제한도 QR 코드로 시행되어야 합니다. 이는 미국에서 QR 코드를 생성하는 동안 유럽에서 인증을 위해 앱이 열리는 것과 같이 의심스러운 IP 기반 정보를 바탕으로 로그인 시도를 자동으로 차단하는 것을 포함할 수 있습니다.
  7. 속도 제한, 로깅 및 모니터링: QR 코드 로그인과 관련된 의심스러운 활동을 감지하고 대응하기 위해 적절한 속도 제한, 로깅 및 모니터링을 구현해야 합니다. 이는 잠재적인 보안 침해를 식별하고 사용자 계정을 보호하기 위한 시기적절한 조치를 취하는 데 도움이 됩니다.
  8. 사용자 알림: 새로운 기기에서의 성공적인 로그인 시도는 사용자에게 중요한 정보(로그인 시도 시간 및 장소, 기기 및 IP 주소 등)와 함께 사용자가 직접 시도한 로그인이 아닐 경우 취해야 할 조치(예: 즉시 서비스에 연락, 계정 모니터링, 시스템이 지원하는 경우 모든 로그인된 기기 제거 등)에 대한 지침이 담긴 이메일 알림을 보내야 합니다.

이러한 모범 사례를 따르면, 기업은 사용자 친화적이면서도 안전한 QR 코드 기반 인증을 구현하여, 모바일 기기의 편의성을 활용하면서 사용자 데이터와 세션을 보호하기 위한 강력한 보안 조치를 유지할 수 있습니다.

Slack Icon

Become part of our Passkeys Community for updates & support.

Join

이제 패스키를 통한 QR 코드 로그인에 대해 살펴보겠습니다.

4. 패스키를 통한 QR 코드 로그인#

패스키 기반 인증은 iOS 및 Android 생태계에 통합된 안전한 기기 간 인증 시스템을 제공하며 WebAuthn 표준에 명시되어 있습니다. 현재는 iOS 또는 Android에서 생성된 패스키만 QR 코드를 통한 기기 간 인증(CDA)에 사용할 수 있습니다.

4.1 패스키를 이용한 QR 코드 로그인은 어떻게 작동하나요?#

패스키를 이용한 QR 코드 로그인이 어떻게 작동하는지 분석해 보겠습니다. 다음 차트는 다양한 단계의 개요를 보여줍니다.

iOS와 Android 모두에서 패스키는 플랫폼의 네이티브 authenticator(예: Face ID, Touch ID 또는 Android 생체 인식) 내에 저장됩니다. 이를 통해 사용자의 패스키는 최신 운영 체제 버전에서 동일한 Apple ID(iOS의 경우) 또는 Google 계정(Android의 경우)으로 로그인된 모든 기기에서 사용할 수 있습니다.

4.2 QR 코드 기반 CDA의 요구 사항은 무엇인가요?#

  • 두 기기 모두 활성 인터넷 연결 필요: 인증 과정에 관련된 두 기기 모두 활성 인터넷 연결이 있어야 합니다. 이는 인증 과정에서 데이터를 동기화하고 자격 증명을 확인하는 데 매우 중요합니다.
  • 두 기기 모두 블루투스 지원 필요: 두 기기 모두 블루투스를 지원해야 하며, 블루투스가 활성화되어 있어야 합니다. 블루투스는 기기 간의 근접성을 확인하는 데 사용되어, 인증 중에 기기들이 서로 가까이 있도록 보장함으로써 원격 위치에서의 피싱 위험을 완화합니다.

4.3 패스키를 통한 QR 코드 로그인의 약점#

  • 기기 바인딩 데스크톱 패스키: 기기에 바인딩된 데스크톱 패스키(예: Windows 플랫폼)는 QR 코드 기반 CDA에 사용할 수 없습니다.
  • 블루투스 의존성: 블루투스에 의존하는 것은 때때로 연결 문제나 블루투스 근접성 확인을 방해할 수 있는 기기 설정으로 인해 단점이 될 수 있습니다. 근접성을 확인하는 것이 보안을 강화할 수는 있지만, 기기들이 블루투스를 통해 연결되지 못할 경우 사용성 문제를 야기할 수도 있습니다. 그러나 일단 기기들이 성공적으로 페어링되면, 이후의 연결은 일반적으로 더 간단해집니다.
Subreddit Icon

Discuss passkeys news and questions in r/passkey.

Join Subreddit

4.4 패스키를 통한 QR 코드 로그인의 강점#

  • 원격 피싱 공격 방지: 근접성 확인을 위해 블루투스를 사용하면 인증 과정에서 두 기기가 물리적으로 서로 가까이 있음을 보장하여 원격 위치에서의 피싱 공격 위험을 줄입니다.
  • 동기화된 패스키로 더 나은 UX 제공: 기기 간 패스키 동기화는 사용자가 여러 세트의 자격 증명을 관리할 필요가 없으므로 원활한 사용자 경험을 제공합니다.

4.5 패스키를 통한 QR 코드 로그인의 UX를 개선하는 방법#

패스키 기반 기기 간 인증(CDA)을 구현할 때는 사용자에게 프로세스에 대한 명확한 안내를 제공하는 것이 중요합니다. 사용자에게 QR 코드가 표시될 것이며, 휴대폰을 사용하여 스캔해야 한다는 점을 알려야 합니다.

우리의 의견으로는, 사용자가 CDA에 활용할 수 있는 패스키를 가지고 있지 않은 경우 QR 코드를 표시하지 않는 것이 중요합니다. 또한, QR 코드를 표시하기 전에 사용자의 현재 운영 체제와 브라우저가 CDA를 지원하는지 확인해야 합니다.

StateOfPasskeys Icon

Want to find out how many people use passkeys?

View Adoption Data

이러한 시나리오를 효과적으로 관리하기 위해, 우리는 이 글에서 모든 중요한 사례를 설명했으므로 여기서는 자세히 다루지 않겠습니다. 우리의 패스키 인텔리전스 시스템은 이러한 상황을 자동으로 처리하도록 설계되어, 적절할 때만 QR 코드가 표시되도록 하고 사용자가 인증 과정을 원활하게 통과하도록 안내합니다. 이를 통해 다양한 기기와 운영 체제에서 높은 보안과 호환성을 유지하면서 원활한 경험을 보장합니다.

5. QR 코드 기반 로그인 비교#

이 섹션에서는 이 글에서 논의한 두 가지 주요 QR 코드 기반 로그인 방법인 네이티브 앱을 통한 QR 코드 로그인패스키를 통한 QR 코드 로그인을 요약하겠습니다. 각 방법은 고유한 장점을 제공하며 보안, 사용자 경험, 구현 복잡성과 같은 요소에 따라 다양한 사용 사례에 적합합니다.

  • 네이티브 앱을 통한 QR 코드 로그인은 딥 링킹을 활용하여 QR 코드를 모바일 기기에 설치된 특정 앱과 연결합니다. 사용자가 QR 코드를 스캔하면 관련 앱이 실행되어 원활하고 안전한 로그인 프로세스를 촉진합니다. 이 방법은 WhatsApp, TikTok, Revolut과 같은 앱 우선 애플리케이션에서 흔히 사용되며, 사용자는 앱 환경에 익숙하고 비밀번호를 입력할 필요 없이 쉽게 인증할 수 있습니다.
  • 패스키를 통한 QR 코드 로그인은 운영 체제의 플랫폼 authenticators와 직접 통합되는 더 발전된 기기 간 인증 접근 방식을 사용합니다(네이티브 앱을 설치할 필요가 없습니다). 이 방법은 높은 수준의 보안을 제공하도록 설계되었으며, 동기화된 패스키를 사용하고 인증 과정에서 두 기기가 가까운 거리에 있어야 합니다(블루투스를 통해 확인). 이 방법은 피싱 공격에 대한 강력한 보호를 제공하고 여러 기기에서 간소화된 사용자 경험을 제공합니다.

두 방법이 어떻게 비교되고 어떤 다른 특징을 가지고 있는지 살펴보겠습니다.

비교표: 네이티브 앱을 통한 QR 코드 로그인 vs. 패스키를 통한 QR 코드 로그인

특징네이티브 앱을 통한 QR 코드 로그인패스키를 통한 QR 코드 로그인
앱 필요 여부예, 네이티브 앱 필요아니요
패스키 도입 필요 여부아니요, 독립적예, 사용자가 패스키를 옵트인해야 함
구현 노력높음높음
피싱 저항성 MFA아니요예 (피싱 저항성 및 MFA)
근접성 확인아니요
사용자 경험앱이 설치된 경우 원활함패스키가 있는 경우 원활함
보안 수준중간매우 높음

우리는 비교표에서 인증 기반 특성에 초점을 맞췄으며, 3절에서 설명한 주변 요구 사항은 두 대안 모두에 적용됩니다. 패스키는 WebAuthn을 통해 피싱 저항성과 근접성 확인을 사용하므로 위치 기반 및 시간 기반 제한이 필요하지 않습니다.

Demo Icon

Want to try passkeys yourself in a passkeys demo?

Try Passkeys

6. 결론#

서론에서 설명했듯이, 우리는 기기 간 인증의 가장 일반적인 두 가지 시나리오를 살펴보았습니다. 간단히 요약해 보겠습니다.

  • 네이티브 앱을 통한 QR 코드 로그인은 네이티브 앱에 강력한 사용자 기반을 가지고 있고, 아직 패스키 구현을 고려하지 않으며, 피싱 공격에 대해 크게 우려하지 않는 기업에 이상적입니다. 이 방법은 앱의 기존 인증 메커니즘을 사용하여 편의성과 보안을 제공하며, 앱을 자주 사용하는 사용자의 마찰을 줄여주지만, 가끔 앱에 로그인하는 경우에는 도움이 되지 않습니다.
  • 패스키를 통한 QR 코드 로그인은 특히 기기 간 인증이 필요하고 패스키가 인증 요소로 고려되거나 이미 사용 중인 환경에서 더 안전하고 유연한 옵션을 제공합니다. 플랫폼 수준의 인증과 블루투스 기반 근접성 확인을 활용함으로써, 이 방법은 미래 지향적인 유일한 피싱 저항성 다단계 인증 방법을 기기 간 사례에도 적용합니다.

서론의 질문에 답해 보겠습니다.

  • 두 접근 방식의 차이점: 각 조직은 사용자 기반, 보안 요구 사항, 원하는 사용자 경험과 같은 요소를 고려하여 필요에 가장 적합한 방법을 선택해야 합니다. 앱 중심 서비스의 경우, 네이티브 앱을 통한 QR 코드 로그인을 통합하는 것으로 충분할 수 있습니다. 그러나 최대의 보안과 기기 간 기능을 우선시하는 경우, 패스키를 통한 QR 코드 로그인이 강력한 솔루션을 제공합니다.

어떤 솔루션이 기존 인증 아키텍처에 적합한지에 대한 현재 평가와 관계없이, 패스키는 인증의 미래에 대한 투자라는 점을 명심해야 합니다. 생태계가 명확하게 이 방향으로 움직이고 있기 때문입니다. 일찍부터 패스키를 수집하기 시작하는 것은 다양한 CDA 전략과 결합될 수 있습니다.

Learn more about our enterprise-grade passkey solution.

Learn more

Share this article


LinkedInTwitterFacebook

Enjoyed this read?

🤝 Join our Passkeys Community

Share passkeys implementation tips and get support to free the world from passwords.

🚀 Subscribe to Substack

Get the latest news, strategies, and insights about passkeys sent straight to your inbox.

Related Articles