컴퓨터보안#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를 공개키로 복호화하여 결과값 확인
    • 결과값을 비교하여 인증 완료