컴퓨터보안#11
LeeMir, 26 May 2021
인증 및 해쉬함수
보안 서비스
- 기밀성
- 수동적인 공격으로부터 보호
- 위협 요소
- 노출 : 정확한 암호키를 소유하지 않은 사람이나 프로세스에게 메시지 내용이 노출되는 것
- 트래픽분석 : 통신자들 사이에 트래픽 패턴을 알아내는 것
- 메시지의 기밀성을 유지하는 방법
- 공개키 암호화
- 무결성
- 메시지 변조 확인, 메시지 인증(해쉬 함수)
- 메시지의 무결성을 유지하는 방법
- 메시지 인증 함수
- 메시지 암호화
- 메시지 인증 코드(MAC)
- 해쉬함수
- 메시지 인증 함수
- 인증
- 송신자 확인
- 위협 요소
- 위장 : 부정한 소스로부터 나온 메시지를 네트워크 상에 삽입하는 것
- 내용 수정 : 삽입, 삭제, 전치 및 수정을 포함한 메시지 내용의 변경
- 순서 수정 : 삽입, 삭제 및 전치를 통한 쌍방간의 메시지 순서의 변경
- 시간 수정 : 메시지의 지연과 재전송
- 부인 봉쇄
- 디지털 서명
- 위협 요소
- 부인 : 수신자가 메시지 수신을 부인하거나 발신자가 메시지의 발신을 부인
해쉬 함수
- 특징
- 암호문의 길이는 고정
- 계산이 쉬움, 역방향은 어려움
- 같은 암호문을 만들어 내는 메시지를 찾기 어려움
- Simple Hash Function
- 그냥 메시지를 쭉 쓰고 같은 열에 있는 bit들을 모두 XOR
- MD5
- 입력 : 임의의 길이의 메시지
- 출력 : 128비트 메시지 다이제스트
- 입력처리 : 512비트 블록단위로 처리
- 512비트씩 나눈 후 부족한 길이는 100….0(패딩 비트)으로 채우고 마지막 64비트에는 메시지 길이를 표현(512비트의 정수배)
- SHA-1
- 입력 : 임의의 길이의 메시지
- 출력 : 160비트 메시지 다이제스트
- 128비트에 32비트를 덧붙임
Wt = S1(Wt-16 xor Wt-14 xor Wt-8 xor Wt-3)
사용자 인증
- 단방향 해쉬 함수를 이용한 인증
- 사용자가 서버로 ID와 PW를 입력
- 수신된 PW는 해쉬 함수의 입력값으로 사용해 결과값인 Hash value와 사용자가 등록했을 때의 Hash value를 비교해 동일하면 인증 완료
- 대칭키 암호화 방식을 사용한 인증
- 서버에서 난수 R을 선택해 사용자 A로 전송
- 사용자 A는 난수 R을 비밀키로 암호화하여 결과값인 C를 서버에게 전송
- 서버는 사용자의 비밀키로 C를 복호화하여 R을 구함
- 결과값이 동일하면 인증 완료
- 사용자와 서버는 어떻게 비밀키를 나눠가질 것인가?
- 공개키 암호화 방식을 사용한 사용자 인증
- 사용자 A는 공개키와 비밀키를 생성
- 공개키를 서버에 등록하고 비밀키를 사용자가 보관
- 서버가 난수 R을 선택해 사용자 A에게 전송
- 사용자는 수신한 난수로 비밀키를 암호화하여 컴퓨터에게 전송
- 서버는 수신한 C를 공개키로 복호화하여 결과값 확인
- 결과값을 비교하여 인증 완료