인증은 verifying 이다 이사람이 니가 말한 그사람이 맞는지 확인하는것을 신원을 확인하는것이다.
idenfication을 포함하고있는 말이다.
사용자 인증
❖ 기본 보안 구성 요소
▪ 액세스 제어 및 사용자 책임의 기초
❖ 시스템 개체가 주장한 식별 정보를 확인하는 과정
❖ 2step:
▪ 식별: 식별자 지정
▪ 검증: 개체(사람)와 식별자를 연결
❖ 메시지 인증과 구별됨
▪ 통신 당사자가 교환된 메시지의 무결성에 관심이 있는 경우
❖ 인증 = 사용자 인증 + 메시지 인증
전자 사용자 인증(EUA) 모델
❖ NIST SP 800-63-2에서 EUA를 다음과 같이 정의합니다.
▪ 전자적으로 제시된 사용자 신원에 대한 신뢰를 확립하는 과정
❖ NIST SP 800-63-2 모델
▪ 자격 증명(데이터 구조)은 구독자가 소유한 토큰과 신원을 결합합니다.
• 요청자: 인증을 받을 당사자
• 확인자: 확인하는 당사자
▪ 등록, 자격 증명 발급, 유지 관리 활동
개인 신청자가 등록 프로세스를 통해 RA에 신청합니다.
RA가 해당 신청자의 신분 증명을 수행합니다.
성공적인 신분 증명 후, RA가 CSP에 등록 확인 메시지를 보냅니다.
CSP와 새로운 구독자 간에 비밀 토큰 및 해당 자격 증명이 설정됩니다.
CSP는 자격 증명, 그 상태 및 자격 증명의 수명 동안 수집된 등록 데이터를 유지합니다 (최소한).
▪ 전자 인증을 위해 토큰과 자격 증명을 사용하는 E-인증
요청자는 인증 프로토콜을 통해 토큰을 소유하고 제어함을 확인합니다.
확인자는 CSP와 상호 작용하여 구독자의 신분을 그의 또는 그녀의 토큰에 결합하는 자격 증명을 유효화합니다.
확인자가 RP(응용 프로그램)와 별도인 경우, 확인자는 RP에 대해 구독자에 대한 주장을 제공하고, RP는 주장에서 제공된 정보를 사용하여 액세스 제어 또는 권한 부여 결정을 내립니다.
구독자와 RP 간에 인증된 세션이 설정됩니다.


❖ 모든 것이 사용자 인증을 제공할 수 있지만 문제가 있습니다.
❖ 사용자의 신원을 인증하는 네 가지 수단
▪ 비밀번호 인증
▪ 도전-응답 인증 프로토콜
▪ 생체 인식
▪ 토큰 기반 인증
❖ 기본 아이디어
▪ 사용자는 비밀번호를 가지고 있습니다.
▪ 시스템은 사용자를 인증하기 위해 비밀번호를 확인합니다.
❖ 널리 사용되는 사용자 인증 방법
▪ 사용자는 이름/로그인과 비밀번호를 제공합니다.
▪ 시스템은 지정된 로그인에 대해 저장된 비밀번호와 비교합니다.
❖ 문제점
▪ 비밀번호는 어떻게 저장되나요?
▪ 시스템은 비밀번호를 어떻게 확인하나요?
▪ 비밀번호를 추측하기 얼마나 쉽나요?
• 비밀번호 파일을 비밀로 유지하기 어려우므로, 비밀번호 파일이 있더라도 비밀번호를 추측하기 어렵게 만드는 것이 가장 좋습니다.
❖ 기본 비밀번호 체계
▪ 해시 함수 h: 문자열 → 문자열
• h(비밀번호)가 주어지면, 비밀번호를 찾기가 어렵습니다.
• 시행착오보다 더 나은 알고리즘은 알려져 있지 않습니다.
▪ 사용자가 비밀번호를 입력할 때
• 시스템은 h(비밀번호)를 계산합니다.
• 비밀번호 파일의 항목과 비교합니다.
❖ 왜 Salt 값을 사용하나요?
▪ 비밀번호 파일에서 중복 비밀번호가 보이지 않도록 합니다.
▪ 오프라인 사전 공격의 어려움을 증가시킵니다.
• 계정:암호화된 비밀번호 데이터:uid:gid:GCOS 필드:homedir:shell
• Salt: 2바이트에 인코딩된 12비트
• 암호문: 11바이트
UNIX 구현
❖ 원래 체계
▪ 8글자 비밀번호는 56비트 키로 변환됨.
▪ 12비트 salt를 사용하여 DES 암호화를 일방향 해시 함수로 변환.
▪ 출력이 11글자 시퀀스로 변환됨.
▪ 현재는 더 이상 안전하지 않은 것으로 간주됨
• 예: 슈퍼컴퓨터, 5000만 번의 시험, 80분
❖ 개선된 체계
▪ 다른, 강력한 해시/솔트 변형을 사용합니다.
▪ 현재 많은 시스템은 MD5를 사용합니다.
• 48비트 salt와 함께
• 비밀번호 길이는 제한 없음
• 1000번의 내부 루프로 해싱됨
• 128비트 해시 생성
▪ OpenBSD는 Bcrypt라고 불리는 Blowfish 블록 암호 기반 해시 알고리즘을 사용합니다.
• 128비트 salt를 사용하여 192비트 해시 값 생성

비밀번호 크래킹
❖ 사전 공격
▪ 비밀번호 파일의 해시와 대형 사전의 각 단어 및 명백한 변형을 시도합니다.
▪ 전형적인 비밀번호 사전
• 1,000,000개의 일반적인 비밀번호 항목
사람들의 이름, 흔한 애완동물 이름 및 일반적인 단어들.
• 초당 10개(항목)의 추측을 생성하고 분석한다고 가정합시다
이것은 웹 사이트에 대해 합리적일 수 있지만, 오프라인은 훨씬 더 빠릅니다.
• 최대 100,000초 안에 사전 공격 = 28시간 또는 평균 14시간
• 비밀번호가 무작위인 경우
여섯 글자의 비밀번호로 가정
» 대문자와 소문자, 숫자, 32개의 구두점 문자
» 689,869,781,056개의 비밀번호 조합.
» 완전한 검색은 평균 1,093년이 소요됩니다.
❖ 무지개 테이블 공격
▪ 가능한 비밀번호의 대형 사전
▪ 각 비밀번호에 대해:
• 모든 salt에 대한 해시 값의 테이블을 미리 계산합니다.
• 거대한 해시 값 테이블: 예를 들어, 1.4GB 테이블은 13.8초 안에 영숫자 윈도우 비밀번호의 99.9%를 해독합니다.
▪ 더 큰 salt 값을 사용하는 경우 실행할 수 없습니다.
비밀번호 파일 접근 제어
❖ 암호화된 비밀번호에 대한 접근을 거부함으로써 오프라인 추측 공격을 차단할 수 있습니다.
▪ 특권이 있는 사용자에게만 제공
▪ 종종 su 전용 별도의 그림자 비밀번호를 사용
❖ 여전히 취약점이 존재합니다
▪ 운영 체제 버그 이용
▪ 권한 문제로 인한 읽기 가능
▪ 다른 시스템에서 동일한 비밀번호를 사용하는 사용자
▪ 보호되지 않은 백업 미디어로부터의 액세스
▪ 보호되지 않은 네트워크 트래픽에서 비밀번호를 가로채는 경우
비밀번호 미리 확인
❖ 규칙 강제와 사용자 조언, 예: 8자 이상, 대소문자/숫자/구두점
▪ 만족되지 않을 수 있음
❖ 비밀번호 크래커
▪ 나쁜 비밀번호 목록
▪ 시간 및 공간 문제
❖ 마르코프 모델
▪ 추측 가능한 비밀번호를 생성
▪ 따라서 생성할 수 있는 모든 비밀번호를 거부
❖ 블룸 필터
▪ 해시를 사용하여 사전을 기반으로 테이블을 작성
▪ 원하는 비밀번호를 이 테이블과 비교
원격 사용자 인증
❖ 네트워크 상에서의 인증은 보안 문제가 복잡합니다.
▪ 도청, 재전송의 문제가 있음
❖ 일반적으로 도전-응답 방식을 사용합니다.
▪ 사용자가 신원을 보냄
▪ 호스트가 무작위 숫자 r로 응답함
▪ 사용자는 f(r,h(P))를 계산하고 다시 보냄
▪ 호스트는 사용자로부터의 값과 자체 계산한 값이 일치하는지 비교하여 사용자를 인증함
❖ 여러 공격으로부터 보호합니다.
'정보보안' 카테고리의 다른 글
| 정보보안 - Database Security (0) | 2024.03.25 |
|---|---|
| 정보보안 - Access Control (0) | 2024.03.25 |
| 정보보안 - Cryptographic Tools2 (0) | 2024.03.13 |
| 정보보안 - Cryptographic Tools (0) | 2024.03.11 |
| 정보보안 - Computer Security Overview (1) | 2024.03.06 |