로그인 혁명.
Qypher를 통한 QR만으로 스마트 인증.

Change Daymode and Nightmode
Ko

Qypher는 왜 안전한가.

기술자분께. Qypher가 어떤 사고방식으로 안전성을 담보하는지를 설계 원칙의 수준에서 설명합니다.
Security
먼저——이 페이지에서 일부러 쓰지 않는 것.
이 페이지에서는 Qypher의 안전성을 '어떤 성질·원칙으로 지켜지는가'라는 형태로 설명합니다. 한편 키의 길이, 알고리즘의 정확한 조합, 내부 데이터 구조 같은 구현의 세부는 일부러 쓰지 않습니다. 그것들은 공개해 봐야 공격자의 단서가 될 뿐, 안전성을 이해하는 데 필요하지 않기 때문입니다. Qypher의 안전성은 설계를 숨기는 데서 성립하는 것이 아니라, 여기에 든 성질 그 자체로 뒷받침됩니다.
1. 비밀번호를 쓰지 않는 설계
인증 정보는 사람이 기억하는 비밀번호가 아니라 기계가 생성한 토큰입니다. 돌려쓰기·추측·기억한 비밀의 피싱 같은, 비밀번호 특유의 위험이 애초에 발생하지 않습니다.
2. 원본 자격 정보는 저장하지 않음 (단방향 해시만)
Qypher의 데이터베이스에는 인증 정보를 되돌릴 수 있는 형태로 저장하지 않습니다. 저장하는 것은 원래 값을 계산으로 복원할 수 없는 단방향 해시(변환된 값)뿐입니다. 따라서 만에 하나 데이터베이스가 유출되어도 그대로 쓸 수 있는 인증 정보를 꺼낼 수 없습니다. 이름·주소 같은 개인정보도 인증 정보와는 별도로 모두 암호화하여 저장하므로, 만에 하나 유출되어도 그 내용을 그대로 읽을 수는 없습니다.
3. 암호학적으로 안전한 난수로 생성
자격 정보는 암호학적으로 안전한 의사난수 생성기(CSPRNG)로 생성되며, 시각 같은 예측 가능한 입력에 의존하지 않으므로 열거하거나 추측으로 생성·재현할 수 없습니다.
4. 토큰은 인증 암호로 보호 (변조·위조 감지)
QR에 담긴 토큰은 암호화에 더해 무결성 보호가 적용되어 있습니다. 변조되거나 위조된 토큰은 검증 단계에서 확실히 거부됩니다. 부분적인 정보로 유효한 토큰을 조립할 수는 없습니다.
5. 인증 정보는 '나눌 수 없는 하나'로 검증
여러 요소를 묶어 하나의 단위로 검증합니다. 일부만 알아도 인증이 통과되지 않으므로, 요소를 따로따로 공격할 여지를 주지 않습니다.
6. 로그인 결과는 '행선지'와 한 묶음으로 검증 (가로채기·사칭 대책)
로그인 결과에는 '어느 사이트 앞인가'라는 행선지 정보가 함께 담겨 있고, 나중에 고쳐 쓸 수 없도록 봉인되어 있습니다. 받은 사이트는 그 봉인이 진짜인지 확인한 뒤 받아들입니다. 그래서 공격자가 도중에 결과를 가로채 다른(가짜) 사이트에서 돌려쓸 수 없습니다.
7. 데이터 제공은 이용자의 동의가 시작점 (이용자가 주도권을 가짐)
각 사이트에 기본으로 전달되는 것은 Qypher ID와 연령 확인 결과(예/아니오)라는 필요 최소한뿐입니다. 실제 나이나 생년월일 자체는 보내지 않고 그 사이트가 정한 연령 조건을 충족하는지만 전달합니다(연령 확인이 필요한 상황에서 '전송을 거부해 확인할 수 없는' 상황을 막기 위해 확인 결과를 기본에 포함합니다). 그 밖의 데이터를 넘길지는 사이트의 요구와 그에 대한 이용자의 허가가 모두 갖춰져야 비로소 정해지며, 이용자가 허가하지 않은 데이터가 넘어가는 일은 없습니다. 각 사이트가 요구하는 데이터와 약관은 로그인 시 제시되고, 이용자는 내용을 확인한 뒤 동의할 수 있습니다.
※ 다만 일단 전달된 데이터를 사이트가 어떻게 다루는지는 각 사이트의 책임 범위이며, Qypher가 거기까지 보장하지는 않습니다.
8. 즉시 실효 (재발급하면 이전 Qypher 카드를 무효화)
Qypher 카드를 재발급하면 이전 카드는 그 순간 무효가 됩니다. 분실했을 때나 뭔가 이상하다고 느꼈을 때는, 이용자가 언제든 카드를 다시 만들어 이전 자격 정보를 무효로 만들 수 있습니다. 만에 하나 유출이 있더라도 위험에 노출되는 기간을 최소한으로 줄일 수 있습니다.
9. 서버 사이드 세션 + 무조작 타임아웃
세션은 서버 측에서 검증하며, 클라이언트에는 신뢰의 근거가 되는 비밀을 두지 않습니다. 일정 시간 조작이 없으면 자동으로 실효됩니다. 도난당하면 곤란한 것을 애초에 클라이언트에 두지 않는 설계입니다.
10. 경계에서의 다층 방어
API는 자동화된 남용 탐지·평판 기반 차단·봇 필터 등 여러 층으로 보호됩니다(구체적인 기준이나 임계값은 비공개입니다).
11. 연령 판정은 Qypher 측에서 일괄 수행
Qypher는 이용자가 등록한 생년월일을 바탕으로 연령을 판정하지만, 각 사이트에 전달하는 것은 실제 나이가 아니라 '그 사이트가 정한 연령 조건을 충족하는지(예/아니오)'라는 판정 결과뿐입니다. 생년월일도 실제 나이도 Qypher 안에만 머무르며 사이트로는 나가지 않습니다(실제 나이를 매번 그대로 보내면 값이 바뀌는 것으로부터 생년월일을 추측당할 우려가 있어 결과만 전달합니다). 이로써 각 사이트가 생년월일이나 나이 자체를 모아 관리할 필요가 없어집니다.
또한 각 사이트는 자신의 서비스에 맞춰 연령 기준값을 독자적으로 설정할 수 있으며, 그 기준에 못 미치는 이용자를 '이용 불가로 할지(연령 제한)' 아니면 '보호자 확인을 요구할지'를 선택할 수 있습니다(13세 미만에는 보호자 확인이 기본입니다).
※ 이는 등록된 생년월일에 근거한 판정이며, 공적 서류에 의한 연령 심사가 아닙니다.
12. 각국 정부·금융기관도 채택하는 암호 방식 사용
독자 개발한 암호가 아니라, 각국 정부 기관과 금융 업계에서도 채택하는, 세계적으로 확립된 암호 방식을 사용합니다. 오랜 세월 전 세계 전문가의 검증을 받아 온 신뢰도 높은 방식입니다. 모든 통신은 TLS로 보호됩니다. 안전성을 '설계를 숨기는 것'에만 의존하지 않습니다.

요컨대, 이런 상황에 강합니다.

  • 데이터베이스가 새어도: 인증에 쓰는 자격 정보는 단방향 해시로만 저장하므로, 그대로 쓸 수 있는 자격 정보는 얻을 수 없습니다.
  • Qypher 카드를 훔쳐보거나 복사당해도: 재발급하면 옛 카드는 즉시 무효가 되고, 위조·변조는 인증 암호로 감지됩니다.
  • 가짜 사이트로 유도되어도: 인증 결과의 행선지가 검증되므로 공격자의 사이트로 가로챌 수 없습니다.
  • 이용자가 허가하지 않은 데이터는 넘어가지 않음: 사이트에 전달되는 것은 '사이트의 요구'와 '이용자의 허가'가 겹치는 범위뿐이며, 허가하지 않은 정보가 멋대로 흘러가는 일은 없습니다.
구현의 세부를 공개하지 않는 이유. 그것은 '공개해 봐야 공격자에게만 도움이 되는 정보'이기 때문입니다. 설계상의 안전성은 위에 든 성질로 담보하고 있습니다. 만약 취약점을 발견하셨다면, 그것이 공격에 쓰이기 전에 먼저 문의 폼으로 알려주시면 감사하겠습니다.
도입 방법 보기
문의 · 취약점 신고
Qypher = QR + Key + Cipher
안전성은 숨기는 것이 아니라 설계로 만든다.
로그인
Qypher 사이트맵
Qypher 홈페이지
왜 Qypher
이용자분께
사이트 운영자분께
보안 구조
칼럼
사용 방법
Qypher 사용 방법
Qypher 도입 방법
이용 요금
플랜 목록
등록 정보
회원 가입
로그인
개인 정보
운영 회사
회사 정보
이용 약관
개인정보 처리방침
특정 상거래법에 따른 표기
문의하기
지원 양식
AbuseIPDB Contributor Badge
↼ 페이지 맨 위로