Search
Duplicate

8-2 암호를 이용한 인증

생성일
2022/06/13 16:01
태그
해시
메시지를 입력으로 하여 길이가 정해지 짧은 값으로 변환 혹은 압축한 것
정보의 무결성을 확인하기 위한 목적으로 사용
입력 메시지의 길이에 상관없이 고정된 길이의 출력 값을 계산
→ 압축 기능 제공
일방향성
해시 함수의 결과 값에서 역으로 어떤 입력 메시지였는지를 알아내는 것은 계산상 불가능
충돌 회피
서로 다른 입력 메시지에 대해서는 서로 다른 해시 결과값이 계산
효율성 : 해시 함수는 계산하는 데 시간과 자원이 적게 필요함
해시 관련 용어
해시 함수 : 메시지 다이제스트 함수, 메시지 요약 함수
메시지 : 프리 이미지
해시 결과값 : 메시지 다이제스트, 지문, 핑거 프린트
무결성 : 완전성, 보전성
해시 대표적인 종류
MD : 해시 값의 크기 128비트 , MD5는 보안 취약점으로 인해 사용을 권장하지 않음
SHA
SHA-1 함수는 MD5보다 조금 느리지만 보안성은 좀 더 안전
목적
무결성 확인 : 파일 또는 메시지의 변조가 발생했는지 확인 가능
기능의 한계
누가 이 파일을 보냈는지 인증에 대해서는 증명할 수 없음
메시지 인증
메시지가 올바르 송신자로부터 왔다는 것을 확인하는 것
메시지 인증 코드(MAC : Message Authentication Code)
추가적인 키를 이용하여 메시지에 MAC 함수를 적용하여 계산된 값
해시와 공통점 : 결과값의 길이가 미리 정해져 있음
해시와 차이점 : 함수 계산에 추가적인 키가 필요
→ MAC이 인증의 역할을 할 수 있게함
단, 송신자와 수신자가 서로 키를 공유해야함(대칭키와 유사)
HMAC : 해시 함수를 이용하여 메시지 인증 코드를 구현하는 방법
여러 해시 함수들 중에서 필요에 따라 선택 가능
예) SHA256 사용 : HMAC-SHA256, SHA3를 사용 : HMAC-SHA3
제약사항
키 배송 문제 : MAC 사용을 위해, 별도의 안전한 방법으로 키를 공유해야 한다.
제 3자에 대한 증명의 불가 : 송신자와 수신자 이외의 다른 제3자에게 메시지의 송 수신자를 증명할 수 없다.
부인 방지의 불가 : 자신이 아닌 다른 사용자가 메시지를 보냈다고 주장 할 수 있다.
제 3자에 대한 증명 및 부인 방지는 전자 서명을 통해서 가능
재전송 공격 및 대응 대안
재전송 공격
악의적인 공격자가 몰래 보관해 둔 기준의 정상적인 MAC 값을 이용하여 같은 메시지를 반복해서 보내는 공격
대응방안 1: 시퀀스 번호 부여
메시지에 시퀀스 번호도 포함시켜, MAC 값을 계산
시퀀스 번호는 통신(송신/수신) 시마다 1씩 증가 시킴
단점 : 송신자와 수신자가 통신할 때 마다 마지막 시퀀스 번호를 기록해야함(제약사항)
대응 방안 2: 타임스탬프 부여
메시지에 현재 시각을 붙여 넣기로 약속
현재 시간보다 이전 시각의 메시지인 경우, 정상적인 MAC 값이더라도 오류로 판단
단점 : 통신 프로토콜 자체가 달라져야 하며 이를 위해 주고받는 데이터 양이 증가함
서명
누군가 문서를 기록했다는 증거
역할 : 서류에 대한 인증 및 부인 방지
일반 종이 서류 : 서명자가 손으로 직접 적은 싸인 혹은 도장이 서명 역할을 함
전자 서명
원본 메시지에 대한 해시 값을 서명자의 개인키로 암호화 하는 것
제공 기능 : 메시지에 대한 인증, 부인방지 및 메시지 무결성 검증
⇒ 오직 발신자의 공개키로만 복호화 할 수 있기 때문에 가능
공개키 기반 구조
필요성 : 전자 서명의 약점 → 전자 서명을 할 때 사용된 공개키가 정말로 송신자의 공개키인지 증명 필요
공개키 인증서 : 신뢰할 수 있는 기관의 인증을 통해 신뢰할 수 있는 안전한 공개키를 제공
공개키 기반 구조 : 공개키를 효과적으로 사용하여 안전한 암호화의 전자 서명 기능등을 제공하는 보안 환경
공개키 인증서 : 사용자의 공개키에 사용자의 식별 정보를 추가하고 인증기관이 인증한 정보를 추가해서 만든 일종의 사용자의 전자 신분증
인증서 사용 시나리오
인증서 사용 Step 1 : 인증서 등록 및 배포
인증서 사용 Step 2 : 인증서 검증 및 공개키 사용
공개키의 소유자가 누구인지 그리고 공개키 정보가 포함된 전자 문서
신뢰할 수 있는 인증 기관인 CA가 전자서명하여 생성
→ 대부분의 공개키 인증서는 X.509라는 표준에 따라서 만들어짐
인증서에 저장된 정보
버전 : 인증서 포맷의 버전, 우리가 사용하는 대부분의 공인인증서는 버전 3
일련번호 : 인증서를 발급한 인증 기관 내의 일려번호
서명 알고리즘 : 인증서를 발급할 때 사용한 알고리즘 예) SHA 1, RSA
발급자 : 인증서를 발급한 인증 기관의 DN 이름
유효 기간 : 인증서가 유효한 시작일과 만료일
주체 : 인증서 소유자의 DN 이름
공개키 : 인증서 소유자의 공개키 값
DN : 어떤 개인 또는 조직의 이름을 정의하는 방식
X.500 표준을 따름
하위속성
C(country) : 국가 이름
O(Organization) : 조직 이름
OU (Organization Unit) : 조직 하위 이름