본문 바로가기

AI/정보보안

[정보보안] 암호를 통한 인증

728x90
반응형

하이브리드 암호 시스템

공개키 암호화를 사용하여 사용하여 대칭키 암호의 비밀키 분배에 사용.

대칭키 암호화를 사용하여 실제 메시지를 암호화 하기 위해 사용

 

해시(Hash)

메시지를 입력으로 하여 길이가 정해진 값으로 변환 또는 압축하는 것.

  • 원본이 훼손됨.

 

정보의 무결성(Integrity)를 확인하기 위한 목적으로 사용

  • 디지털서명, 인증, 무결성, 부인 봉쇄 등에 사용

 

해시 함수(Hash Function)

특징

  • 압축(Compression) - 입력 메시지의 길이에 상관없이 고정된 길이의 출력 값을 계산.
  • 일방향성(One-wayness) - 해시함수가 만들어내는 결과값에서 역으로 어떤 입력 메시지였는지를 알아내는 것은 계산상 불가능.
  • 충돌회피(Collision-free) - 서로 다른 입력 메시지에 대해서는 서로 다른 해시 결괏값이 계산되어야함.

 

종류

  • MD5 - 128비트 해시값을 가지는 함수, 취약점이 발견되 사용권장하지 않음.
  • SHA-1 - 160비트 해시값을 가지는 함수, MD5보다 느리지만 보안성은 좀 더 안전함, 충돌 문제 발견되어 SHA-2 권장.
  • SHA-2 - SHA-256,384,512를 묶어서 말할 때 사용하는 명칭, 각각 256,384,512의 해시값을 가짐.

 

메시지 인증(Message Authentication)

메시지가 올바른 송신자로부터 왔다는 것을 확인하는 것.

 

메시지 인증 코드(MAC; Message Authentication Code)

  • 메시지를 추가적인 키를 이용하여 MAC 함수를 통해 계산된 값
  • 해시와 공통점 - 결과값의 길이가 미리 정해져 있음.
  • 해시와 차이점 - 함수 계산에 추가적인 키(송수신자가 서로 키 공유)가 필요.

 

메시지 인증 코드(MAC)를 이용한 사칭에 대한 대책

  • 메시지 내용 인증 - K를 모르는 공격자가 메시지와 대응되는 점검값 구성 불가
  • 출처 인증 - K를 아는 A만이 올바른 점검값을 작성하여 전송가능
  • 메시지 순서 인증 - 메시지의 순서번호가 포함되어 있다면 내용 인증에 의해 메시지 순서 보장

 

메시지 인증 코드의 한계(제약사항)

구분 내용
키배송 문제 MAC 사용을 위해, 별도의 다른 안전한 방법으로 키 공유 필요
제 3자에 대한 증명 불가 송수신자 이외의 제 3자에게 메시지의 수신자를 증명할 수 없음(메시지와 MAC값은 A,B 둘다 작성할 수 있으므로 A가 작성한것인지 B가 작성한것인지 판단할 수 없음)
부인 방지의 불가 키를 공유하는 A,B,C가 있을 때 C가 A가 보낸 메시지라고 주장한다면 , A는 자신이 아닌 다른 사용자가 메시지를 보냈다고 주장할 수 없음
(수신자 이외에 다른 사용자 등이 같은 키를 공유하기 때문)

 

재전송공격(Replay attack)

  • 악의적인 공격자가 몰래 보관해둔 기존의 정상적인 MAC 값을 이용하여 같은 메시지를 반복해서 보내는 공격.
  • 원래 메시지의 올바른 MAC 값을 보관했다가 재사용하는 것.

방지방법1 - 시퀀스 번호(Sequence Number)

  • 메시지에 매회 1씩 증가하는 번호를 붙이기로 약속하고 MAC 값의 계산에 시퀀스 번호도 메시지에 포함.
  • 수신자가 받은 메시지의 시퀀스 번호가 현재 자신이 가지고 있는 시퀀스 번호보다 커야함.
  • 시퀀스 번호가 자신이 저장하고 있는 시퀀스 번호보다 작거나 같으면 유효하지 않은 메시지로 무시.
  • 송신자와 수신자가 통신할 때마다 마지막 시퀀스 번호를 기록해 두어야 한다는 제약사항 존재.

 

 

방지방법2 - 타임스탬프(Timestamp)

  • 메시지에 현재 시각을 붙여넣기로 약속.
  • 현재 시각보다 이전 시각의 메시지가 왔을 때에는 MAC 값이 올바른 값이더라도 오류로 판단.
  • 재전송 공격으로 기존에 저장된 메시지를 보내더라도 그 메시지는 타임스탬프가 옛날 시간이기 때문에 오류.
  • 송신자와 수신자의 시계가 같은 값을 가지도록 시간을 일치시켜야 한다는 제약사항 존재.

 

 

방지방법3 - 비표(Nonce)

  • 비표 - 일회용으로 랜덤하게 생성되는 값.
  • 송신자는 수신자에게 비표를 요청하여 수신, 메시지안에 방금 전달 받은 비표를 붙여 MAC 값 계산.
  • 송수신자 사이에 비표를 주고 받은 과정이 추가되어야 하기 때문에 통신 프로토콜 자체가 달라져야하며 주고 받는 데이터 양이 증가한다는 단점을 가짐.

 

 

해시함수를 사용하여 메시지 인증 제공

  • 대칭키(공통키) 방식으로 암호화 
  • 기밀성을 요구하지 않는 응용에 적합함.

 

전자서명(Digital signature)

원본 메시지에 대한 해시 값을 서명자의 개인키로 암호화

제공기능 - 메시지에 대한 인증, 부인방지 및 메시지 무결성 검증

 

공개키암호를 사용한 전자서명

공개키 암호 사용

수신측(B)에서 A의 공개키(KUa)로 복호화한 결과와 전송된 메시지(M)을 비교 후 다르면 무결성, 인증에 문제가 있음.

 

공개키암호와 해시를 사용한 전자서명

  • 메시지 전체에 서명할 시 처리 시간이 오래 걸리기 때문에 메시지의 해시값을 암호화
  • 송신자의 개인키로 암호화, 송신자의 공개키로 복호화

수신측(B)에서 A의 공개키(KUa)로 복호화한 결과와 전송된 메시지(M)을 비교 후 다르면 무결성, 인증에 문제가 있음.

 

 

중간자 공격

  • B : 자신의 공개키(KUb)를 A에게 전송
    • 공격자가 이것을 가로챔

 

  • 공격자 : A에게 B의 공개키는 KUx라고 속여서 전송
  • A : 공격자의 공개키를 B의 공개키라고 생각하고 KUx를 이용해 메시지 M을 암호화해서 B에게 전송
    • 공격자 : 이것을 가로챔 / A가 B에게 보내는 암호문 복호 가능

 

  • 공격자 : 가짜 메시지 M'을 B의 공개키 KUb로 암호화해서 B에게 전송
  • B : 공격자가 보낸 암호문을 A가 보낸 것이라 생각하고 암호문을 복호화하여 M'을 얻음

 

 

공개키 기반 구조

필요성

  • 전자서명의 약점 - 전자서명을 할 때 사용된 공개키가 정말로 송신자의 공개키인지 증명 필요

 

공개키 인증서(PKC, Public Key Certificate)

  • 사용자의 공개키에 사용자의 식별 정보를 추가하여 만든 일종의 전자 신분증
  • 신뢰할 수 있는 인증 기관(CA, Certification Authority)을 이용하여 신뢰할 수 있는 안전한 공개키를 제공
  • 인증서 사용 시나리오
    • 인증서 등록 및 배포
    • 인증서 검증 및 공개키 사용

 

인증서에 저장된 정보

  • 버전 : 인증서 포맷의 버전, 우리가 사용하는 대부분의 공인인증서는 버전 3
  • 일련번호 : 인증서를 발급한 인증 기관 내의 일련번호
  • 서명 알고리즘 : 인증서를 발급할 때 사용한 알고리즘. 예) SHA1, RSA
  • 발급자 : 인증서를 발급한 인증 기관의 DN(Distinguish Name) 이름
  • 유효 기간 : 인증서가 유효한 시작일과 만료일
  • 주체 : 인증서 소유자의 DN 이름
  • 공개키 : 인증서의 모든 영역을 해시해서 인증 기관의 개인키로 서명한 값

 

 

공개키 기반 구조(PKI, Public Key Infrastructure)

  • 공개키를 효과적으로 사용하여 안전한 암호화와 전자서명 기능 등을 제공하기 위한 보안 환경
  • 예) 인터넷 뱅킹에서 사용되는 공인인증서

 

728x90
반응형

'AI > 정보보안' 카테고리의 다른 글