컴퓨터 시스템 보안 3장

유지토·2023년 3월 26일

3.1 전자 사용자 인증 원리

IEFT RFC 4949

사용자 인증: 시스템 엔터티에 의해 제기된, 혹은 시스템 엔터티를 위한 신원 식별 검증 절차

  • 인증은 정보 보호의 기본적인 구성 요소이며 주된 방어선
  • 접근 제어사용자 책임(user accountability)을 위한 기본

RFC 4949 인증 절차

  1. 식별(identification) 단계
  • 보안 시스템에 신원을 확인할 수 있는 식별자(id)를 제시함
  1. 검증(verification) 단계
  • 각 시스템 개체(entity)와 식별자 간의 관계를 입증하는 인증 정보를 제시하거나 생성함

전자 사용자 인증 구조적 모델

사용자 인증

사용자 id를 인증하는 4가지 수단

  1. 개인이 알고 있는 사실을 통한 인증

    비밀번호, PIN, 미리 정한 질문에 대합 답변 등

  2. 개인의 소유물을 통한 인증(토큰)

    스마트 카드, 전자 키 카드, 물리적 키 등

  3. 개인의 정적 생체 정보를 통한 인증

    지문, 망막, 안면 인식 등

  4. 개인의 행동, 즉 동적 생체 정보를 통한 인증

    음성 패턴, 필적, 타이핑 리듬 등

사용자 인증을 위한 위험 평가

세가지 개념: 보증 레벨 -> 잠재적 영향 -> 위험 영역

보증 레벨(Assurance Level)

ID 정보를 가리키는 신용장을 제시하는 사용자의 신원에 대한 조직의 확실성 정도

구체적인 정의:
1) 신용장(credential)이 발급된 개인의 신원에 대한 신뢰성 정도
2) 신용장을 사용하는 개인이 신용장을 발급받은 당사인지에 대한 신뢰성 정도

보증 레벨 네 단계

레벨 1: 확인된 사용자 ID(신원)의 유효성이 거의 없음

  • 회사 웹사이트 토론 게시판에 소비자가 참여, 트랜잭션 당시 1회성 ID와 비밀번호 사용

레벨 2: 확인된 사용자 ID의 유효성이 조금 있음

  • 일반 대중을 대상으로 하는 다양한 비즈니스에 적합(초기 식별 보증 필요), 하나의 인증 수단과 함께 인증 프로토콜이 필요

레벨 3: 높게 확인된 사용자 ID의 유효성

  • 고객과 직원이 높은 가치의 서비스를 제한적으로 접근할 경우, 예로 변리사가 특허 정보를 특허국에 제출하는 경우 경쟁자에게 노출되면 안됨. 최소 둘 이상의 인증 기술의 사용을 요구

레벨 4: 매우 높게 확인된 사용자 ID의 유효성

  • 법 집행자가 범죄 기록 정보에 접근하는 경우 불법 접근으로 개인정보침해나 범죄 조사를 무효화시킬 수 있음. 다수의 인증 기술의 사용과 당사자가 직접 등록하는 등의 요소를 요구

잠재적 영향

FIPS 199에서는 개인이나 기관의 보안 침해에 대한 잠재적 영향을 3 레벨로 정의
낮음(low) : 인증 오류가 기관 운영/자산, 혹은 개인에 제한된 역효과가 예상됨

  • 운영에 어느 정도 지장을 줌. 자산 등의 사소한 손실

보통(moderate): 인증 오류가 심각한 역효과가 예상됨

  • 운영은 되나 효율성이 심각하게 감소, 자산 등의 중대한 손실

높은(high): 인증 오류가 치명적인 역효과가 예상됨

  • 운영이 불가능함. 자산 등의 치명적인 손실

표 3.1 잠재적 영향과 적절한 보증 레벨의 대응

3.2 비밀번호 기반 인증

비밀번호(password) 기반 인증

널리 사용되는 침입자 방어 수단

  • 사용자는 이름 또는 로그인 id비밀번호를 제시함
  • 제시된 로그인 id의 비밀번호와 시스템에 저장된 비밀번호를 비교

사용자 ID

  • 사용자가 시스템에 접근이 허가 되었는가를 확인
  • 시스템의 권한 결정
  • 임의 접근 제어(discretionary access control)에 사용됨

비밀번호의 취약성

오프라인 사전(dictionary) 공격 -> 특정 계정 공격
-> 사용자들이 사용하는 잘 알려진 비밀번호 공격 -> 단일 사용자에 대한 비밀번호 추측 -> 워크스테이션 하이재킹(hijacking) -> 사용자의 실수 이용 -> 다수의 장치에서 단일 비밀번호를 사용 -> 네트워크 모니터링을 통한 비밀번호 도청

비밀번호 취약성 대응책

  • 비밀번호 파일에 인가되지 않은 접근 통제
  • 노출된 비밀번호에 대한 빠른 재발급 조치
  • 계정 폐쇄 - 일정 시도 횟수(보통 5회) 실패 시 자동 폐쇄
  • 단순한 비밀번호 사용 금지 정책
  • 비밀번호 정책 훈련 및 강화
    (비밀번호 최소 길이, 문자 집합, 비밀번호 사용 기간 등 제한)
  • 워크스테이션 자동 로그아웃
  • 사용자 훈련, 침임 탐지, 다른 인증 메커니즘과의 결합 등
  • 네트워크 장치들에서 유사한 단일 비밀번호의 사용을 제한

UNIX에서의 비밀번호 구현

초창기 기법

  • 8개 이내의 문자들로 구성 -> 56 비트를 구성하여 암호 알고리즘의 키로 사용
  • 12비트 솔트(salt)를 사용하며, DES 알고리즘에 기반한 단방향 해시 함수 사용
  • 0으로 구성된 64비트 블록 입력에 대해 반복적으로 25회 암호화 -> 의도적으로 속도를 느리게 함
  • 최종 출력을 11자리 문자열로 변환

현재 적절하지 못한 방법으로 간주됨

  • 수퍼컴퓨터로 5천만개의 비밀번호 추측을 80분만에 처리
  • 여전히 현재의 계정 관리 소프트웨어나 멀티벤더(multivendor) 환경과의 호환성을 위해 필요

UNIX 비밀번호 구현 기법의 개선

훨씬 강력한 유닉스용 해시/솔트 기법 이용 가능(많은 Unix, Linux, Solaris, FreeBSD)

권장 해시 함수: MD5에 기반

  • 48 비트까지의 솔트
  • 패스워드 길이의 제한이 없음
  • 128비트 해시 생성
  • 해시 함수의 속도를 늦추기 위해 1000회 반복의 내부 루프(inner loop) 사용

OpenBSD는 Bcrypt라 불리는 Blowfish 블록 암호 기반의 해시 알고리즘을 사용

  • 유닉스 해시/솔트 기법 중 가장 안전한 버전
  • 192비트 해시 값을 생성하기 위해 128비트 솔트 사용

3.3 토큰 기반 인증

3.4 생체 인식 인증

3.5 원격 사용자 인증

3.6 사용자 인증 보안 이슈

0개의 댓글