https://itwiki.kr/index.php?title=%EB%A9%94%EC%8B%9C%EC%A7%80_%EC%9D%B8%EC%A6%9D_%EC%BD%94%EB%93%9C&feed=atom&action=history
메시지 인증 코드 - 편집 역사
2024-03-28T20:58:42Z
이 문서의 편집 역사
MediaWiki 1.38.1
https://itwiki.kr/index.php?title=%EB%A9%94%EC%8B%9C%EC%A7%80_%EC%9D%B8%EC%A6%9D_%EC%BD%94%EB%93%9C&diff=1966&oldid=prev
2019년 5월 13일 (월) 12:00에 211.179.41.247님의 편집
2019-05-13T12:00:24Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ko">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← 이전 판</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">2019년 5월 13일 (월) 21:00 판</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l26">26번째 줄:</td>
<td colspan="2" class="diff-lineno">26번째 줄:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== 사용 사례 ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== 사용 사례 ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[SWIFT]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[SWIFT]]</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">** 송금결제 메시지를 인증하고 무결성을 보장하기 위해 위해 메시지 인증 코드 사용</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[IPSec]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[IPSec]]</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">** 통신 내용의 인증과 무결성을 확인하기 위해 메시지 인증 코드를 이용</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[SSL/TLS]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[SSL/TLS]]</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">** 통신 내용의 인증과 무결성을 확인하기 위해 메시지 인증 코드를 이용</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">* [[VPN]]</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">** 공용 네트워크로 전달되는 트래픽은 암호화 및 메시지인증 코드 등을 사용하여 기밀성과 무결성을 제공<ref>[http://q.fran.kr/문제/7543 공무원 9급 기출문제]</ref></ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== 취약점 ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== 취약점 ==</div></td></tr>
<!-- diff cache key wikidb:diff::1.12:old-1960:rev-1966 -->
</table>
211.179.41.247
https://itwiki.kr/index.php?title=%EB%A9%94%EC%8B%9C%EC%A7%80_%EC%9D%B8%EC%A6%9D_%EC%BD%94%EB%93%9C&diff=1960&oldid=prev
2019년 5월 13일 (월) 11:45에 211.179.41.247님의 편집
2019-05-13T11:45:13Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ko">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← 이전 판</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">2019년 5월 13일 (월) 20:45 판</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l46">46번째 줄:</td>
<td colspan="2" class="diff-lineno">46번째 줄:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*# A는 B에게 결제 요청을 한 적이 없다고 거짓말을 한다.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*# A는 B에게 결제 요청을 한 적이 없다고 거짓말을 한다.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*# 메시지 인증 코드에 사용된 암호키는 A와 B만 알고 있는 것이므로, B는 제3자에게 A가 거짓말하고 있다는 사실을 증명할 수 없다.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*# 메시지 인증 코드에 사용된 암호키는 A와 B만 알고 있는 것이므로, B는 제3자에게 A가 거짓말하고 있다는 사실을 증명할 수 없다.</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">* 해결법</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">** [[부인 방지]] 효과를 누릴 수 있는 [[공개키 암호화]] 등을 함께 사용</ins></div></td></tr>
</table>
211.179.41.247
https://itwiki.kr/index.php?title=%EB%A9%94%EC%8B%9C%EC%A7%80_%EC%9D%B8%EC%A6%9D_%EC%BD%94%EB%93%9C&diff=1959&oldid=prev
211.179.41.247: 새 문서: 분류:보안분류:정보보안기사 ;Message Authentication Code == 목표 == * '''메시지의 무결성(integrity)'''과 '''메시지 인증(authentication)''' ** 자신...
2019-05-13T11:44:24Z
<p>새 문서: <a href="/w/%EB%B6%84%EB%A5%98:%EB%B3%B4%EC%95%88" title="분류:보안">분류:보안</a><a href="/w/%EB%B6%84%EB%A5%98:%EC%A0%95%EB%B3%B4%EB%B3%B4%EC%95%88%EA%B8%B0%EC%82%AC" title="분류:정보보안기사">분류:정보보안기사</a> ;Message Authentication Code == 목표 == * '''메시지의 무결성(integrity)'''과 '''메시지 인증(authentication)''' ** 자신...</p>
<p><b>새 문서</b></p><div>[[분류:보안]][[분류:정보보안기사]]<br />
;Message Authentication Code<br />
<br />
== 목표 ==<br />
* '''메시지의 무결성(integrity)'''과 '''메시지 인증(authentication)'''<br />
** 자신에게 도착한 메시지가 송신자가 보낸 그대로 인지를 확인할 수 있다<br />
* 메시지 인증코드로 막을 수 있는 것들<br />
** H가 A인척하고 B에게 메시지를 보낸다.<br />
** A가 B에게 보내는 메시지를 H가 중간에서 조작한다.<br />
: (A가 B에게 보여준 메시지를 티 안나게 조작해서 다른 메시지를 보내는 경우도 포함)<br />
<br />
== 생성 ==<br />
;해시(메시지+암호키)<br />
* 주로 [[해시]]를 이용하지만 대칭키 [[암호화 알고리즘]]을 사용하기도 함<br />
* 해시를 이용한 메시지 인증 코드를 HMAC이라고 부름<br />
<br />
== 절차 ==<br />
앨리스가 밥에게 송금 의뢰 메시지를 전달하는 경우 가정<br />
# 송신자 앨리스와 수신자 밥은 사전에 키를 공유해 둔다.<br />
# 송신자 앨리스는 송금 의뢰 메시지를 기초로 해서 MAC 값을 계산한다(공유 키를 사용).<br />
# 송신자 앨리스는 수신자 밥에게 송금 의뢰 메시지와 MAC 값을 보낸다.<br />
# 수신자 밥은 수신한 송금 의뢰 메시지를 기초로해서 MAC 값을 계산한다(공유 키를 사용). <br />
# 수신자 밥은 앨리스로부터 수신한 MAC 값과 계산으로 얻어진 MAC 값을 비교한다.<br />
# 수신자 밥은 2개의 MAC 값이 동일하면 송금 의뢰가 틀림없이 앨리스로부터 온 것이라고 판단한다(인증 성공). 동일하지 않다면 앨리스로부터 온 것이 아니라고 판단한다(인증 실패)<br />
<br />
== 사용 사례 ==<br />
* [[SWIFT]]<br />
* [[IPSec]]<br />
* [[SSL/TLS]]<br />
<br />
== 취약점 ==<br />
=== 재전송 공격 ===<br />
* 공격 시나리오<br />
*# A가 B에게 보내는 송금의뢰 메시지와 메시지 인증 코드를 H가 가로챈다.<br />
*# H는 그 메시지와 메시지 인증 코드를 그대로 다시 전송함으로써 A가 아님에도 송금 요청을 할 수 있다.<br />
* 해결방안<br />
** 순서 번호(sequence number): 송신 메시지에 매회 1씩 증가하는 번호를 함께 전달<br />
** 타임스탬프(timestamp): 송신 메시지에 현재 시각을 함께 전달<br />
** 비표(nonce): 메시지를 수신하기에 앞서 수신자는 송신자에게 일회용의 랜덤한 값(비표) 전달<br />
<br />
=== 부인 방지 불가 ===<br />
* 공격 시나리오<br />
*# A는 B에게 결제 요청 메시지와 메시지 인증 코드를 보낸다.<br />
*# B는 A의 메시지 인증 코드를 확인하여, 결제 요청이 A로부터 온 것임을 확인한다.<br />
*# B는 A에게 결제를 하고 물건을 보내줄 것을 요청한다.<br />
*# A는 B에게 결제 요청을 한 적이 없다고 거짓말을 한다.<br />
*# 메시지 인증 코드에 사용된 암호키는 A와 B만 알고 있는 것이므로, B는 제3자에게 A가 거짓말하고 있다는 사실을 증명할 수 없다.</div>
211.179.41.247