메시지 인증 코드: Difference between revisions
From CS Wiki
(새 문서: 분류:보안분류:정보보안기사 ;Message Authentication Code == 목표 == * '''메시지의 무결성(integrity)'''과 '''메시지 인증(authentication)''' ** 자신...) |
No edit summary |
||
Line 46: | Line 46: | ||
*# A는 B에게 결제 요청을 한 적이 없다고 거짓말을 한다. | *# A는 B에게 결제 요청을 한 적이 없다고 거짓말을 한다. | ||
*# 메시지 인증 코드에 사용된 암호키는 A와 B만 알고 있는 것이므로, B는 제3자에게 A가 거짓말하고 있다는 사실을 증명할 수 없다. | *# 메시지 인증 코드에 사용된 암호키는 A와 B만 알고 있는 것이므로, B는 제3자에게 A가 거짓말하고 있다는 사실을 증명할 수 없다. | ||
* 해결법 | |||
** [[부인 방지]] 효과를 누릴 수 있는 [[공개키 암호화]] 등을 함께 사용 |
Revision as of 06:45, 13 May 2019
- Message Authentication Code
목표
- 메시지의 무결성(integrity)과 메시지 인증(authentication)
- 자신에게 도착한 메시지가 송신자가 보낸 그대로 인지를 확인할 수 있다
- 메시지 인증코드로 막을 수 있는 것들
- H가 A인척하고 B에게 메시지를 보낸다.
- A가 B에게 보내는 메시지를 H가 중간에서 조작한다.
- (A가 B에게 보여준 메시지를 티 안나게 조작해서 다른 메시지를 보내는 경우도 포함)
생성
- 해시(메시지+암호키)
절차
앨리스가 밥에게 송금 의뢰 메시지를 전달하는 경우 가정
- 송신자 앨리스와 수신자 밥은 사전에 키를 공유해 둔다.
- 송신자 앨리스는 송금 의뢰 메시지를 기초로 해서 MAC 값을 계산한다(공유 키를 사용).
- 송신자 앨리스는 수신자 밥에게 송금 의뢰 메시지와 MAC 값을 보낸다.
- 수신자 밥은 수신한 송금 의뢰 메시지를 기초로해서 MAC 값을 계산한다(공유 키를 사용).
- 수신자 밥은 앨리스로부터 수신한 MAC 값과 계산으로 얻어진 MAC 값을 비교한다.
- 수신자 밥은 2개의 MAC 값이 동일하면 송금 의뢰가 틀림없이 앨리스로부터 온 것이라고 판단한다(인증 성공). 동일하지 않다면 앨리스로부터 온 것이 아니라고 판단한다(인증 실패)
사용 사례
취약점
재전송 공격
- 공격 시나리오
- A가 B에게 보내는 송금의뢰 메시지와 메시지 인증 코드를 H가 가로챈다.
- H는 그 메시지와 메시지 인증 코드를 그대로 다시 전송함으로써 A가 아님에도 송금 요청을 할 수 있다.
- 해결방안
- 순서 번호(sequence number): 송신 메시지에 매회 1씩 증가하는 번호를 함께 전달
- 타임스탬프(timestamp): 송신 메시지에 현재 시각을 함께 전달
- 비표(nonce): 메시지를 수신하기에 앞서 수신자는 송신자에게 일회용의 랜덤한 값(비표) 전달