컴퓨터 공학

정보보호개론 2장. 암호프로토콜의 개요

혼새미로 2015. 11. 27. 02:14
반응형

정보보호개론 2장 암호프로토콜의 개요

프로토콜 : 어떤 목적을 달성하기 위해 2명 이상이 참여하는 유한한 일련의 단계

홀로 어떤 목적을 달성하기 위해 수행하는 일련의 단계를 알고리즘이라 함

 

프로토콜의 특성

-       사전에 알고 있어야 함

-       참여자 간에 동의하고 있어야 함

-       모호하지 않아야 함

-       완전성 : 완전해야 함

 

프로토콜 수행 : 프로토콜 임의의 단일 실행

암호 프로토콜 : 암호 기술을 사용하고 있는 프로토콜

암호 기술을 사용하는 목적 : 프로토콜의 각 메시지의 의미를 보장하고, 참여자 또는 제 3자가 부정을 하지 못하게 함

일반 프로토콜과의 차이점 : 공격자의 존재를 가정함

암호프로토콜 : 완전성 + 안전성

 

참여자 : 실제 사용자일 수도 있고 사용자가 참여하는 장치 또는 소프트웨어 일수도 있음

참여자는 크게 일반 참여자와 TTP(3의 신뢰기관)으로 구분됨

-       일반 참여자는 프로토콜을 통해 얻고자 하는 것이 있는 이해당사자를 말하며

-       TTP는 프로토콜의 실행 결과에 대한 어떤 이해관계가 없고 어떤 참여자와도 특별한 관계가 아니지만 수행을 원활하게 수행하기 위한 참여자를 말함

 

신뢰한다는 것은 프로토콜에서 정한 규칙대로 프로토콜을 수행한다는 것임 = 중재자

 

TTP의 종류

-       인라인 TTP: 프로토콜의 모든 과정에 항상 참여해야 하는 TTP( 모든 메시지는 항상 TTP를 경유함)

-       온라인 TTP : 프로토콜의 일부 과정에서 참여해야 함

-       오프라인 TTP : 실제 프로토콜 수행과정에서 참여하지 않지만 사전에 또는 사후에 필요에 따라 참여하는 TTP를 말함

 

암호프로토콜의 분류

-       자체 강화 프로토콜 : 중재자가 필요없는 프로토콜

-       중재 프로토콜 : 중재자가 프로토콜에 항상 참여함

-       판결 프로토콜 : 분쟁이 발생한 경우에만 중재자가 참여함

 

단일 실패점 : 중재자가 동작하지 않거나 중재자와 다른 참여자간에 통신이 중단되면 프로토콜 자체를 실행할 수 없음

 

표기법

 




 

암호화의 용도

-       비밀성을 보장하기 위해 사용

-       인증을 위해 사용

-       메시지의 구성요소를 바인딩하기 위해 사용

 

 

암호알고리즘은 암호프로토콜의 각 종 요구사항을 충족시키기 위해 사용하는 가장 기본적이며 핵심인 도구임.

암호프로토콜을 설계할 때는 이상적인 암호알고리즘의 존재를 가정함

 

키확립프로토콜 : 두 사용자가 대칭 알고리즘을 사용하여 원격에서 메시지를 비밀스럽게 교환하고 싶음. 그리고 키를 네트워크상에서 교환하고 싶음. 이것을 해주는 암호프로토콜을 키 확립 프로토콜이라 함

키 확립 프로토콜을 통해 얻어지는 비밀키는 단일 세션에 사용하기 위한 세션키임

세션키를 사용하는 이유

-       같은 키로 암호화된 암호문을 제한하기 위해

-       키가 노출되었을 때 누설되는 정보의 양을 제한하기 위해

-       키 저장에 관한 안전성 문제를 해결하기 위해

-       세션 간에 또는 응용 프로그램간에 독립성을 만들기 위해

 

키 확립 프로토콜의 요구사항

-       참여자는 의도한 다른 참여자들과 사용할 수 있는 새로운 키를 얻어야 함

-       - 의도한 참여자 : 참여자가 인증되어야 함

-       - 키의 용도를 확인할 수 있어야 함

-       - 키 확인 : 다른 참여자들도 나와 같은 키를 가지고 있다는 것을 확인할 수 있어야 함

-       - 키의 최근성 : 키가 최근에 생성되었다는 것을 알 수 있어야 함

-       새로운 키는 의도된 참여자외에 다른 참여자는 얻을 수 없어야 함

 

프로토콜에 대한 가정

-       참여자에 대한 가정 : 보통 일반 참여자들은 서로를 신뢰하지 않음

-       이상적인 암호알고리즘을 사용한다고 가정

-       공격자에 대한 가정

-       1. 공격자는 프로토콜을 통해 교환되는 모든 메시지를 도청할 수 있음

-       2. 공격자는 프로토콜의 진행을 막을 수 있음

-       3. 공격자는 프로토콜에 정상적으로 참여하고 있는 참여자일 수 있으며 제 3자일수도 있음

-       4. 오래된 세션키는 공격자들에게 노출될 수 있음

 

여분정보

일반적으로 암호문 내에 여분정보를 포함하면 복호화하였을 때 올바른 키를 사용하였는지 판단할 수 있음

분류

-       명백한 여분 정보 : 누구나 알 수 있는 정보

-       함축적 여분 정보 : 오직 송신자와 수신자만 알고있는 정보

 

명명기법

메시지의 의미를 명확하게 하기 위해 참여자의 식별자를 암호문 내에 포함하는 기법

 

앨리스는 이 메시지만 보면 Kab를 누구와 함께 사용할 암호키인지 알 수 없음

 

 

키 서버S가 앨리스와 밥간에 사용할 세션키 Kab를 앨리스에게 전달하는 방법(대칭키를 사용할 경우)

 

비대칭알고리즘을 사용하는 경우.

 

메시지의 최근성/시기적절성

암호프로토콜에서 메시지를 수신하면 다음에 정해진 행동을 취하기 위해 여러가지 검사를 하게됨

이때 보통 메시지의 최근성을 검사함.

메시지의 최근성은 메시지의 구성요소로부터 유추되어야 하며 어떤 메커니즘을 사용하던지 간에 재전송 메시지에는 포함될 수 없거나 재전송 메시지와 현재 메시지를 구별할 수 없어야 함.

메시지의 최근성을 보장하기 위한 식별자로 가장 널리 사용되는 것은 타임스템프와 넌스임

-       타임스템프 기반 기법 : 시간적 관계를 통해 메시지의 최근성을 보장하는 기법

-       난스 기반 기법 : 인과 관계를 통해 메시지의 최근성을 보장하는 기법

 

관계를 형성하는 과정에는 다음과 같은 세 종류의 참여자가 관여함

-       제공자 : 식별자를 제공하는 참여자

-       입증자 : 제공된 식별자를 메시지를 포함하시키는 참여자

-       검증자 : 메시지를 포함된 식별자를 통해 메시지의 최근성을 확인하는 참여자

 

타임스템프의 장점

제공자와 입증자가 동일인물이며 일방향 통신으로 최근성을 보장할 수 있음

타임스템프의 단점

-       입증자를 신뢰할 수 있어야 함

-       시스템간의 클럭 동기화가 요구됨

타임스템프 기법의 안전성을 결정하는 요인 : 클럭 동기화, 입증자의 정직성, 입증자의 능력

선행 메시지 : 수신자의 클럭이 송신자의 클럭보다 상대적으로 앞서있다고 가정하자.송신자가 보낸 메시지를 수신자는 유효한 메시지임에도 거부하게 됨. 그래서 클럭동기화를 해야함

사후 메시지 : 송신자 클럭이 수신자 클럭보다 상대적으로 앞서있다. 공격자는 이 사실을 알고있음. 송신자가 수신자에게 타임스템프된 메시지를 전송하면 공격자는 이 것을 가로채어 보관했다가 해당 타임스템프가 유효하게되면 이것을 전송하여 공격함

 

 

난스

난스란 특정한 순간을 증명하기 위해 생성된 값을 말함

보통 시도-응답 기법을 사용

시도-응답기법: 메시지 M에 대한 응답 메시지는 오직 M의 내용을 알고있는 경우에만 생성할 수 있도록 하는 기법으로써 다음과 같은 용도로 사용됨

1.     응답메시지의 최근성 확인

2.     응답자가 최근에 응답을 하였다는 것을 확인

3.     응답자 인증

난스 기법에는 최소한 두 개의 메시지가 필요함

 

 

카운터

카운터의 사용은 쌍방간에 동기화된 카운터의 존재를 가정하며 실제 사용은 타임스템프와 차이가 없음

 

장점 : 실제시간과 독립적으로 동기화 가능

단점 : 모든 사용자간에 동기화된 별도의 카운터가 필요함

 

암호프로토콜의 안전성

-       암호프로토콜은 그것의 보안 요구사항을 모두 충족하였을 때 안전한 프로토콜이라 함.

 

보안 모델: 프로토콜의 안전성을 논하기 위해 세우는 가정들의 집합을 말하며 이와 같은 공격중에 가장 중요한 것은 공격자의 능력임.

 

공격자의 능력

1.     모든 참여자간에 통신을 제어할 수 있음

2.     지난 프로토콜 수행을 통해 확립된 세션키를 얻을 수 있음.

3.     공격자가 참여자의 장기간 키를 알고 있음

공격자의 분류

1.     악의적인 내부자 존재 : 프로토콜의 적법한 참여자가 악의적인 행동을 할 수 있음

2.     정직한 내부자 : 적법한 참여자는 항상 적직하게 행동함. 보통 종류 1의 공격자를 가정하고 프로토콜의 안전성을 논함

 

 

프로토콜의 효율성

-       계산효율성 : eg) 공개키 암호알고리즘은 비밀키 암호알고리즘에 비해 상대적으로 많은 비용이 필요함

-       통신효율성 : 메시지의 수와 크기에 따라 변경됨(필요한 라운드 수를 줄이는 게 중요함)

-       - 프로토콜의 한 라운드는 한 시점에서 병렬로 전달할 수 있는 모든 메시지를 포함한다.

반응형