메시지 인증 코드(MAC)
: 메시지의 무결성 및 송신자 확인을 위한 코드
: 해시 함수만 이용할 시 송신자 확인은 불가하다.
증명(Prove)와 검증(Verify)
- 증명: 송신자가 메시지를 인증받는 것.
- 검증: 수신자가 메시지를 검사하는 것.
사용 예시
: SWIFT(Society for Worldwide Internet Financial Telecommunication, 금융 기관을 위한 국제 협력 네트워크)
: IPSec(Internet Protocol + Security)
*대부분 메시지 인증 후 암호화하는데 이 경우 암호화 후 메시지 인증 수행
: SSL/TLS
MAC 의 기본 구조
입력: 메시지, 공유하는 키
출력: 고정 길이의 코드
프로세스
- 공유 키 K, 해시 함수 H, 메시지 M에 대해 MAC = H(K||M)
- 수신자에게 M과 MAC 전송
- M을 통해 MAC를 연산하여 비교한다.
HMAC
: 기존 MAC보다 보안성이 뛰어난 인증 방법.
설계 목표
: 암호 알고리즘 없이 해시 함수만으로 구현 >> 속도에서 이점
: 해시 함수는 시중에 나와있는 것으로, 변경에 대비하여 구현
HMAC 구현
: HMAC(K, M) = H[(K⊕opad)∥H((K⊕ipad)∥M)]
*ipad = i_pad = Inner Padding / opad = o_pad = Outer Padding
*패딩 / XOR / 결합 / 해시 값 연산으로 구성
CMAC (Cipher-based MAC)
: 기존의 블록 암호 알고리즘(DES, 3DES, AES 등)을 이용하여 메시지 인증
MAC 운영 이슈
키 공유 문제
: 대칭키를 사용하기 때문에 키 공유가 문제가 됨.
해결 방안
: 공개 키 암호 / Diffie-Hellman 키 교환 / 키 배포 센터 / 키를 안전한 별도의 방법으로 전송
재전송 공격(Replay Attack)
: 송신자를 인증할 수 없기 때문에 재전송 공격에 취약하다.
해결 방안
: Sequence Number 이용
> 송/수신자 간 동기화되어 있는 번호를 추가
: Timestamp 이용
> 현재 시각과 관련된 Timestamp 값을 추가
> 단, 공격자가 해당 시간대에 공격할 경우 성공할 수 있는 문제
: Challenge and Response 이용
> 매 송신마다 송신자의 송신 요청과 수신자의 난수 생성 과정을 추가, 송신자는 해당 난수를 MAC 연산에 추가한다.
> 해당 난수를 Challenge(Nonce, 비표)라고 한다.
MAC의 한계
- 공유키를 가진 자만 검증 가능하기 때문에, 제 3자에게 증명 및 부인 방지가 불가하다.
- 이러한 점은 디지털 서명으로 보안 가능.
'공부 > 네트워크 보안' 카테고리의 다른 글
네트워크 보안(11) - 인증서 (0) | 2024.11.23 |
---|---|
네트워크 보안(10) - 디지털 서명 (0) | 2024.11.23 |
네트워크 보안(8) - 일방향 해시 함수 (0) | 2024.10.23 |
네트워크 보안(7) - 하이브리드 암호 시스템 (0) | 2024.10.23 |
네트워크 보안(6) - 공개 키 암호 (1) | 2024.10.21 |