•
해시
◦
메시지를 입력으로 하여 길이가 정해지 짧은 값으로 변환 혹은 압축한 것
◦
정보의 무결성을 확인하기 위한 목적으로 사용
◦
입력 메시지의 길이에 상관없이 고정된 길이의 출력 값을 계산
→ 압축 기능 제공
•
일방향성
◦
해시 함수의 결과 값에서 역으로 어떤 입력 메시지였는지를 알아내는 것은 계산상 불가능
•
충돌 회피
◦
서로 다른 입력 메시지에 대해서는 서로 다른 해시 결과값이 계산
◦
효율성 : 해시 함수는 계산하는 데 시간과 자원이 적게 필요함
•
해시 관련 용어
◦
해시 함수 : 메시지 다이제스트 함수, 메시지 요약 함수
◦
메시지 : 프리 이미지
◦
해시 결과값 : 메시지 다이제스트, 지문, 핑거 프린트
◦
무결성 : 완전성, 보전성
•
해시 대표적인 종류
◦
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) : 조직 하위 이름