메시지 인증 코드를 사용하면 자신에게 도착한 메시지가 송신자에게 보낸 그대로인지를 확인 할 수 있다. 즉, 메시지 인증코드를 사용하면 메시지가 ‘변경’되지는 않았는지, 누군가 거짓 송신자로 ‘위장’을 하고 있지 않은지를 확인할 수 있는 것이다.
인증
A은행은 메시지 출처를 인증
하고, 통신 중 내용 변경 유무에 대해 무결성
을 보장해야 한다.
메시지 인증 이란?
무결성을 확인하고, 메시지에 대한 인증을 위한 코드
Message Authentication Code , MAC
입력 : 메시지, 공유하는 키 / 출력 : 고정 비트 길이의 코드
일방향 해시는 키를 사용하지 않지만, 메시지 인증 코드는 키를 사용하는 차이점이 있다.
앨리스와 수신자 A은행 : 사전에 키(K) 공유
앨리스 : 송금 의뢰 메시지(M) 작성 → MAC값()을 계산
앨리스 : 수신자 A은행으로 송금 의뢰 메시지와 MAC값을 전송
수신자 A 은행 : 수신한 송금 의뢰 메시지를 기초로해서 MAC값을 계산
수신자 A 은행 : 앨리스로부터 수신한 MAC 값과 자신이 계산한 MAC 값을 비교
수신자 A 은행 :
인증 성공 : 2개의 MAC 값이 동일하면 송금 의뢰가 틀림없이 앨리스로부터 온 것이라고 판단
인증 실패 : 2개의 MAC 값이 동일하지 않으면 앨리스로부터 온것이 아니라고 판단
대칭 암호때의 키 배송 문제와 같은 문제가 메시지 인증 코드에서도 발생
키 배송 문제를 해결하는 방법
공개 키 암호
Diffie-Hellman 키 교환
키 배포 센터
키를 안전한 방법으로 별도로 보내기
SWIFT는 Society for Worldwide Internet Financial Telecommunication(국제은행간 통신협회)로 1973년에 설립된 단체이며, 설립 당시 15개국이 참가하였고, 현재 200개국 11,000 이상의 금융 기관이 서비스를 이용한다
은행과 은행은 SWIFT를 통해 거래 메시지를 교환하여 무결성을 확인하고 메시지 인증 코드를 사용한다.
인터넷 기반의 통신 프로토콜인 IP에 보안 기능을 첨가한 것 이다.
통신 내용 인증과 무결성을 위해 메시지 인증 코드를 이용한다.
웹에서 온라인 쇼핑을 할 때 사용되는 통신 프로토콜이다.
통신 내용의 인증과 무결성 확인을 위해 메시지 인증 코드를 이용한다.
SHA-3인 Keccak와 같은 일방향 해시 함수를 이용하여 메시지 인증 코드를 실현
HMAC(Hash-based Message Authentication Code)
AES와 같은 블록 암호를 사용해 메시지 인증 코드를 실현
인증 암호 : 대칭 암호와 메시지 인증 코드를 조합하여 기밀성 • 무결성 • 인증을 동시에 충족시키는 구조
Encrypt-then-MAC
선택 암호문 공격 : 적당한 암호문을 위조하여 정보를 얻어내려는 공격
Encrypt-and-MAC
MAC-then-Encrypt
인증 모드의 일종
AES와 같은 128비트 블록 암호를 CTR 모드로 이용하여 MAC값을 얻기 위하여 덧셈고 곱셈을 반복하는 해시 함수를 사용
CTR 모드는 1씩 늘어가는 숫자를 암호화하기 때문에 각 블록을 병렬로 처리하여 실행 속도를 높일 수가 있음
CTR모드와 MAC 값 생성에 공통 키를 사용하기 때문에 키 관리도 편리하다
GCM을 메시지 인증 코드 전용으로 사용
: 일방향 해쉬 함수를 이용하여 메시지 인증 코드를 구성하는 방법
HMAC의 일방향 해쉬 함수는 모듈형으로 골라서 사용하며, 새 표준인 SHA-3 KECCAK을 사용해 HMAC 작성 가능하다.
hash(opadkey || hash(ipadkey ||message))
ipadkey = key ⊕ipad
opadkey= key ⊕opad
ipadkey 가 내부이고 opadkey가 외부인지 알 수 있다
: 보존해 둔 정당한 MAC값을 반복해서 송신하는 공격
재전송 공격 방어
순서 번호
타임스탬프
비표(nonce)
메시지 인증 코드에 대한 공격
MAC값만 획득한 공격자가 키를 추측하지 못하도록 해야 한다
해시 함수의 일방향성
해시 함수의 충돌 내성
키 생성에 의사 난수 생성기 사용
앨리스로부터 메시지를 받은 밥이 ‘이 메시지는 앨리스가 보낸 것이다’ 라는 것을 제 3자인 검증자 빅터에게 증명할 수 없다
이유
일단 키를 빅터에게 알려줘야 한다.
앨리스와 밥 모두 키를 가지고 있으므로 둘 중 누가 작성했는지 말 할 수 없다.
밥이 MAC 값이 딸린 메시지를 받았고, ‘이 메시지는 앨리스로부터 온 것이다’ 라는 걸 확실히 알 수 있다. 하지만 앨리스가 전송 자체를 부정할 경우 제3자는 이 사실을 증명할 수 없다.
부인 : 앨리스가 송신자체를 부정
메시지 인증코드로는 부인방지가 불가능하다
[정리]
메시지 인증 코드는 메시지를 인증하고 무결성을 확인하는 기술이다. 송신자와 수신자가 공유하는 키를 사용하여 ‘거짓행세’ 나 ‘조작’ 이 행하여지고 있는지 아닌지를 확인 할 수있다. 메시지 인증 코드는 일방향 해시 함수나 대칭 암호 등을 이용해 만들수 있다. 메시지 인증 코드에서는 송신자와 수신자가 키를 공유하고 있기 때문에 ‘제3자에게 증명하기’ 와 ‘부인방지’를 보장 할 수 없는 문제가 있다.
참고한 도서 ⌜알기 쉬운 정보보호개론 3판⌟ 인피니티북스