Replicated

사용자 인증 (Authentication) 본문

소프트웨어 보안개발방법론

사용자 인증 (Authentication)

라구넹 2025. 4. 20. 02:29

인증이란?

- 사이버 보안에서 인증: 사용자 또는 시스템의 신원을 확인하는 프로세스, 가장 기본적이고 중요한 요소

- 일반적으로 비밀번호, 하드웨어 토큰 사용

 

인증 방식 분류

지식 기반 인증(Something you know)

- 비밀번호, PIN, 보안 질문

- 유출 위험

- 안전한 비밀번호 정책 필요

 

소유 기반 인증(Something you have)

- OTP(One Time Password)

- 보안카드, USB 보안키 등

- 부수적인 물리적 장치 이용, 상대적 안전

 

생체 기반 인증(Something you are)

- 지문, 홍채, 안면, 음성

- 편리, 위조 어려움

- 구축 비용, 오인식 가능성

 

 

OTP(One Time Password)

- 일반 비밀번호의 취약성?

    - 유출 시 재사용 가능

    - 키 로깅, 브루트 포스 공격에 취약

- 일반적인 비밀번호의 보안 취약성 강화 목적으로 사용되는 일회성 비밀번호

- 매번 새로운 비밀번호를 생성, 재사용 불가하여 보안성 높음

 

TOTP(Time based OTP)

- 공유된 시드, 타임 기반으로 동작

HOTP

- 공유된 시드, 이벤트(counter)기반 동작

 

  TOTP HOTP
생성 방법 생성 시간에 따라 일회용 비밀번호 생성
비밀번호는 일반적으로 30초마다 정기적으로 변경
카운터 값을 이용해 일회용 비밀번호를 생성
인증 시도 시 카운터를 증가
시간 의존성 시간에 민감. 생성된 비밀번호는 일정 시간 후 폐기됨 시간에 민감하지 않음. 생성된 비밀번호는 시간의 영향을 받지 않음
편의성 정해진 짧은 시간 내에 생성된 코드를 입력해야 함 생성된 코드의 만료 시간이 없어 상대적으로 편의성 높음
보안성 상대적으로 보안성이 높음 시간적 민감성이 부족하여
재사용 공격같은 특정 취약성에 노출 가능성이 있음

- 일반적으로 TOTP를 사용함

- 공유된 정보와 시간 정보를 이용하여 HMAC 값 생성, Truncate 함수를 사용 -> One Time Password 생성

* Truncate 함수: 해시 값을 사용자가 입력하기 쉬운 짧은 값으로 변환하는 함수

 

 

FIDO(Fast Identity Online)

- 온라인 인증을 보다 안전하고 편리하게 만들기 위한 개방형 인증 표준

- 생체인증, PIN, 물리적 보안 키

- 개인 인증 정보가 서버에 저장되지 않고 사용자의 기기에만 저장

- 다양한 생체 인증 방식과 통합 가능

 

FIDO 인증 종류

FIDO UAF(Universal Authentication Framework)

- 생체 또는 기타 고유한 특성을 이용한 사용자 인증 프로토콜 표준

FIDO U2F(Universal 2nd Factor)

- 사용자 비밀번호와 함께 사용되는 2Factor 인증 프로토콜 표준

FIDO2

- Web Authentication을 이용한 브라우저와 운영체제 수준에서 생체 인증 지원

- CTAP(Client to Authenticator Protocol): 클라이언트와 인증 장치 간 통신 프로토콜

 

등록 시 지문 등 방식을 선택하고 자체적으로 공개키/개인키 생성

공개키는 게시하고, 개인키는 생체 정보로 개인키를 암/복호화 함

 

 

MFA(Multi-Factor Authentication)

- 2가지 이상의 서로 다른 인증 요소를 이용

- 2FA가 대표적

- SMS/문자 기반 인증

- 인증 앱 기반(TOTP): Google Authenticator, MS Authenticator 등

- Push 알림 기반

- 생체 인증

 

지식 + 소유 + 생체 섞는게 제일 좋고

꼭 섞지 않아도 멀티 팩터일 수는 있음

 

 

SSO(Single Sign On)

- 한번의 로그인 -> 여러 시스템이나 서비스에 접근 가능

- 한번만 인증 정보 입력하면 추가적인 로그인 안해도 허가된 모든 시스템 사용 가능

- 사용자 편의성 증가

    - 여러 계정 정보를 기억할 필요 없고 반복적인 로그인도 필요 없음

- IT 관리 효율성 및 보안성 증가

    - 계정 관리의 중앙화 및 사용자 접근 권한 관리와 감사가 용이

    - 중앙화된 인증 시스템을 통해 일관된 보안 정책 적용

 

 

OAuth

- 인증(Authentication)과 인가(Authorization)를 제공하는 개방형 표준 프로토콜

- OAuth 2.0이 표준

- 사용자가 비밀번호 공유 안해도 자신의 정보에 대한 접근 권한을 다른 어플리케이션에 제공

- 소셜 로그인 기반

 

- 사용자(개인정보 소유자)

- 서비스 제공 서버(리소스 서버와 연동)

- 권한 부여 서버(IDP, ID Provider == 인가 서버)

- 리소스 서버(사용자 개인 정보를 소유한 서버)

 

인증 -> 권한 인가 -> 자원 접근 세 단계

'소프트웨어 보안개발방법론' 카테고리의 다른 글

대표적인 사이버 공격  (0) 2025.04.20
Cyber Attack  (0) 2025.04.20
OpenSSL  (0) 2025.04.19
검증필 암호 모듈  (0) 2025.04.19
IPsec VPN 보안 통신, TLS, PQC  (0) 2025.04.19