DOI QR코드

DOI QR Code

Remark on the Security of Password Schemes

패스워드 인증 키교환 프로토콜의 안전성에 관한 고찰

  • Published : 2003.08.01

Abstract

We discuss the security of two famous password authenticated key exchange protocols, EKE2 and PAK. We introduce ′insider assisted attack′ Based on this assumption we point out weakness of the security of EKE2 and PAK protocols. More precisely, when the legitimate user wants to find other user′s password, called "insider-assisted attacker", the attacker can find out many ephemeral secrets of the server and then after monitoring on line other legitimate user and snatching some messages, he can guess a valid password of the user using the previous information. Of course for this kind of attack there are some constraints. Here we present a full description of the attack and point out that on the formal model, one should be very careful in describing the adversary′s behavior.

Keywords

Ⅰ .서론

최근에 패스워드가 갖고 있는 특성 때문에 패스워드를 기반으로 하는 키 교환 인증 프로토콜(PAKE, password authenticated key exchange protocol)0] 많이연구되어지고 있다. 이러한 프로토콜의 예로, 불안전한 네트워크 상에서 클라이언트와 서버간에 패스워드만을 비밀로 하면서 안전한 통신을 할 수 있도록제공하는 프로토콜들(PAKE)을 들을 수 있다. 이 프로토콜의 안전성은 공격자가 얼마나 온라인을 통하여 프로토콜 참여자와 통신을 하느냐에 전적으로 의존한다. 즉, 이는 공격자가 패스워드에 관한 정보를 얻을 수 있는 유일한 방법이 online guessing밖에는 없다는 것을 의미한다. 많은 키 교환 인증 프로토콜들이 소개되었고 또 이들의 취약점이 발견되고는 했다.貝기 키 교환 인증 프로토콜들의 안전성을 최초로 Bellate'지와 Shoup。〕이 이상적인 모델(formal model)로증명하였다. 이것을 바탕으로 Bellare, 141 Boyko131 등도패스워드기반 프로토콜들을 이상적 모델을 통하여안전성을 증명하였는데 예를 들어 키 확인을 하는 EKE2(Encrypted Key Exchange protocol)四나 PAK(Pass-word Authenticated Key Exchange protocol)151 등을 들수 있다. 현재까지는 이러한 이상적 모델을 이용하여증명된 프로토콜들은 완벽한 안전성을 제공한다고간주되어지고 있다.

본 논문에서는 EKE2나 PAK 프로토콜을 이용하여 서버가 사용자를 인증하는 서버 클라이언트시스템을 살펴보려고 한다. 먼저 '내부자 공격'에 대해서 설명하려고 하는데 이는 이미 Halevi, Krawczyk">에서 소개돈 것이다. 실세계에서 내부자의 도움을 받은 공격자가 있으리라는 가정은 얼마든지 있을 수 있다. 또한, Halevi, Krawczyk'®에서 지적했듯이 시스템의 내부자 자신이 공격자가 될 경우도 얼마든지 있을 수 있다. 따라서 우리는 공격자가 시스템 내에서 자신의 아이디(ID)를 가질 수 있고 거기에 따른 공인된 패스워드를 가지고 공격을 할 확률을 고려해야만 한다. 따라서 공격자가 자신의 아이디를 이용하여 다른 사용자를 공격하지 못하도록 하는 프로토콜이 필요하다. 그러나 이러한 내부자 공격에 대해서 EKE2나 PAK 프로토콜이 이상적 모델을 통하여 안전성이 증명되었음에도 불구하고 취약한 점이 있음을 알 수 있다. 구체적으로 살펴보면 일종의 서브그룹(subgroup) 공격을 통하여 서버의 일회성 비밀정보 일부를 원하는 만큼 여러 차례에 걸쳐서 알아낸 후 온라인상의 합법적인 사용자가 송수신하는 것을 보고 그러한 정보와 이미 알아낸 정보를 이용하여 합법적인 사용자의 패스워드를 추측할 수 있다. 물론 공격이 가능하기 위해서는 위에서도 언급했듯이 사용상의 몇몇 가정이 필요하다.

2장은 패스워드 인증의 역사와 패스워드 키 교환인증 프로토콜, EKE2나 PAKS] 관한 설명을 하고 3 장에서는 EKE2나 PAK에 행해지는 내부자 공격을하기위한 사전 작업에 대해서 알아보고 4장에서는구체적인 공격방법을 소개한다. 마지막으로 이러한 공격에 대한 보안 방법과 이상적 모델에서 공격자의 행동 능력을 정의할 때는 매우 조심해야함을 지적한다.

Ⅱ. 패스워드 인증

2.1 패스워드 키 교환 인증 프로토콜들

패스워드 기반 인증법은 패스워드가 갖는 적은 정보량에도 불구하고 너무나 쉬운 사용상의 이점 때문에 사용자 인증에 매우 많은 관심을 받는 방법이다. 주어진 환경에 따라 목적을 달성하기 위해서 여러 프로토콜들이 개발되었는데 이중에서 EKE가 패스워드 키교환 인증 프로토콜들 중에 중요한 역할을 했다. EKE에 이어서 많은 패스워드 키교환 인증 프로토콜들이 안전성의 요구에 따라 개발되었다. 그러나 많은 패스워드 프로토콜은 패스워드를 보호하기 위해서 특별한 방법들을 사용하여서 공식적인 안전성을 증명하지 못하였고 동시에 그러한 프로토콜에 대한 안전성 주장을 그대로 믿을 수도 없다. OKE®가 증명이 가능하게 되었고 그를 이어 SNAPI, EKE2, PAK등도 가능하게 되었다. 최근에 SRP, SPEKE, PAK, AMP등이 IEEE Pl363 공개키 표준 그룹에서 패스워드 기반 인증된 키교환 프로토콜의 표준화 후보들로선택되어졌다. 이 분야의 증명가능한 접근을 위해서 EKE, PAK등에 관한 공식적인 모델을 통한 안전성 증명을 다시 살펴보는 것이 필요하다고 생각된다.

2.2 EKE2와 PAK 프로토콜

간단히 EKE2와 PAK 프로토콜을 살펴보도록 한다. *(160비트)는 해쉬 함수와 비밀키의 안전성 파라미터라고 하고 6(1024 비트)는 군의 비트 크기라고생각하자. 이때 Qx이다. {* 0, 1} 는 임의의 길이의 유한비트 열이라고 하고 {0, 1}"은 길이가 "인 비트 열이라고 하자. 그리고 q를 크기가 %이고 는 크기가 I 인 소수들로 />="+]. 이라고 하자. 이때, 과 q는 서로 소이다. g를 위수가 g인 의 부분군의 생성자라고 흐}자.

H, H2a, H2b, H3를 {* 0, 1} 에서 {* 0, 1} 로 가는 해쉬함수들이라고 하고 H1 은{* 0, 1} 에서 (0, 1}\ {n>c + x) 로 가는 해쉬 함수라 흐E자. 여기서 H, H2a, H2b, H3, H]들은 서로 독립인 암호학적 해쉬 함수로 간주할 수 있다. 지금부터는 특별한 언급이 없는 한 이러한 기호를 위의 정의대로 따를 것이다.

여기서 ?r는 사용자 원선과 서버 재현간의 패스워드이고(A와 B는 원선과 서버의 아이디를 뜻한다) 공유한 세션키는 H(sk||0)이고 암호화 함수, E는 이상적인 오라클로 간주한다. 지금까지 이러한 함수가구체적으로 어떤 것인지는 아직 알려져 있지 않다.

여기서 공유된 세션키는 K이다., "과#는《에 있는 위수가 g인 원소들이다. 만약 테스트가 실패하면재현에 의해서 프로토콜은 중지될 것이다.

(그림 1) EKE2 프로토콜 흐름

(그림 2) PAK 프로토콜 흐름

Ⅲ. EKE2와 PAK에 대한 내부자 공격의 사전 작업(공격)

s를 클라이언트-서버 시스템이라고 흐卜자. 이 시스템은 서버가 사용자를 단지 패스워드만으로 인증해주는 시스템을 뜻한다. 이 시스템 s에서 이브는 합법적으로 자신의 아이디, IDe와 이에 대한 패스워드 打를 가지고 있다. 서버의 아이디는 IDs라 흐!자 이러한 이브가 시스템 S를 공격할 때 이브를 내부 공격자라고 한다.

EKE2와 PAK에 대한 공격을 하기 위해서 이브는 먼저 서버의 일회성 비밀키의 정보를 알아낼 필요가 있다. 그 이유는 다음 장에서 구체적으로 설명하겠지만 간단히 설명하면 서버가 다른 클라이언트와 통신을 하고 있을 때 그 클라이언트의 패스워드를 알아내기 위해서는 서버의 난수를 알아야 하고 서버가 LCG 를 이용하여 난수를 생성한다고 하면 그때의 난수를 찾아내기 위해서 초기 값이 필요하므로 그에 대한 준비 작업을 뜻한다. 이를 위해서 시스템 파라미터에 약간의 제한이 필요한데 />—1을 나누는 약수 冲 梔보다 훨씬 작은 약수 7■'을 갖는다고 해야 한다., '이 万보다 훨씬 작다는 이야기는 다소 불분명해 보인다. 여기서는 /보다 작은 임의의 알려지지 않은 % 에 대하여 H*) '(/z 가 주어졌을 때 무작정 X를 찾는것이 (exhausted search) 계산상으로 가능한 정도의 크기를 의미한다. 가 주어졌을 때 X를 찾는 방법。' exhausted search이외에 어떤 것이 있는지 아직잘 모르겠으나 만약 그러한 것이 발견된다면 우리의공그은 더욱 강력해 질 것이다.

[그림 3]과 [그림 4]는 EKE2와 PAK]] 대한 내부자 공격의 사전단계를 보여준다.

〔그림 3) EKE2 공격

〔그림 4) PAK 공격

이브는 위수가 /인 Z:에 있는 원소人를 선택해서 妒대신 Zz를 서버에 보낸다. 여기서 이브는 서버와아무런 의심도 받지 않은 채 프로토콜을 완전히 실행할 수 있다. 이때 九의 위수가 方'로 작기 때문에 서버의 비밀키에 대한 정보를 일부 찾을 수 있다. 자세히 언급하면 이브는 서버에게 仇= /;礼硏(7。£, 刀序 ?r)(또는 EKE2 경우는 〃2 = 丑狗|旦3))을 보낸다. me 위수가 g가 아니지만 서버는 전혀 그것을 눈치 채지 못한다. 이브는 서버로부터 두 개의 값을 얻게 되는데 妒와 岁에 대한 해쉬 값이다. y를 서버의일회성 비밀키라 하자. 이브는 y에 대한 일부 값, 즉, jwymodr'를 얻게 된다. 이브가 원하는 만큼의프로토콜을 시행하여 y들에 대한 일부 값들을 알아낸다. 이러한 사전 작업을 통하여 서버가 사용하는일회성 비밀키의 값을 알아내려는 것이 목적이다.

이러한 공격형태는 프로토콜이 가지고 있는 이산대수문제를 해결하는데 다소 쉽게 하고 있다. 다시말하면, 成를 얻은 이브는 라고 할 때 蛆7;" = (g')"의 이산대수문제(DLP)를 해결하므로 써 일회성 비밀키 y를 찾을 수 있다. 이는 원래의 EKE2와 PAID} |g| 정도의 이산대수문제를 푸는 것에서 Ml 시/1정도 크기의 이산대수문제를 푸는 것으로 줄어들었다.이却은 如정도의 비트 크기를 뜻한다.) EKE2 나 PAK 프로토콜에 대한 공격은 보통 생성자 g에대 한이산대수문제를 풀거나 온라인 상의 추측을 통하 여이루어지는데 우리의 공격 방법은 이러한 어려을움다소 쉽게 해주는 효과가 있다.

이제 지금까지 언급한 내용을 정리로 요약하려고 한다.

정의 1

합리적인 시간 안에 t크기만큼의 공간에서 일일이찾아보는(exhausted search) 것이 가능할 때 이러한 양의 정수 /를 탐색 범위 (exhausted bound) 라고 하자.

정리 1

r의 약수 /이 탐색 범위 (exMusted bound) 라고 가정하자. EKE2와 PAKS] y에 관한 일부정보를 /크기의 후보들에 대한 이산대수문제를 풀어내므로 알아낼 수 있다.

증명: 위에서 이미 언급되었다.

위에 언급된 공격 법은 작은 부분 군 공격(small subgroup confinement) 방법과 같음을 알 수 있을 것이다. 작은 부분 군 공격의 예로 단순화시킨 Diffie-Hellman 실행에 대한 man-in-the-middle 작은 부분 군 공격이 있다. 우리의 공격 법은 단지 작은 부분 군 공격 방법만을 이용한 것이 아니고 '사전 작업(공격)'이란 어휘에서 알 수 있듯이 우리의 공격 중 한과 정에서 사용하는 기법임을 밝혀두고자 한다. 구태여 우리가 사용한 작은 부분 군 공격 방법과 man-in-the middle 공격에서 사용한 작은 부분 군 공격 방법의 차이점을 언급한다면 우리는 완전히 비밀키를 찾아내는 것이 아니고 단지 일회성 비밀키의 일부를 찾아낸다는 것이다.

Ⅳ. EKE2와 PAK 프로토콜 공격

이 절에서는 EKE2와 PAK 프로토콜에 대한 내부자 공격을 자세하게 설명하려고 한다.

먼저 다음과 같은 실질적인 가정을 하자.

1) 탐색 범위인, 의 약수 /이 존재한다.

2) 클라이언트-서버 시스템 S는 일차 합동 유사 난수 생성자(linear congruential pseudo-random number generatorQCG)'母를 난수 생성자로 사용한다.

3) 이브는 시스템의 사용자로 자신의 아이디, 食, 와 유효한 자신의 패스워드, a., 를 갖고 있다.

실제에 있어서 LCG, 또는 Truncated LCG와 같은난수 발생기를 쓰는데 이는 다음 번 난수에 대한 예즉이 가능한 단점이 있음에도 불구하고 빨라서 효율성이 높기 때문이다. 여기서 예측이 가능하다는 것은유사 난수 발생기가 주어진 초기값에 따라 수열을생성했을 때 단지 추측하는 것보다는 훨씬 높은 확률로 다음 난수를 예측할 수 있음을 뜻한다. Bellare[91 등은 암호 기법에 LCG등을 사용할 때는 매우조심해야 한다는 것을 경고했다. 그러나 여기서 우리가 지적하고 싶은 것은 그들은 LCG에 의한 수열에대해서 전체 혹은 일부의 정보를 안 것이 아니다. 예를 들어, LCG를 사용하는 DSS四에서 그들은 공격자가 유사 난수 발생기에 의해서 생성된 수열에 관한어떠한 정보도 없이 공격하는 것이다. 따라서 이러한 LCG 사용상의 주의는 우리가 하려는 공격과는 관계가 없음을 지적하려 한다.

4.1 공격법

공격의 방법을 대략적으로 설명하면 다음과 같다.

- 첫단계: 온라인 상에서 서버와 합법적인 절차를 통해 LCG에 의해서 생성된 y들에 관한 부분정보를 원하는 만큼 얻는다.

- 둘째 단계: 첫 단계로부터 이브는 y들 중의 하나의 값 y0, 을 찾는다.

-셋째 단계 : 이브는 서버와 다른 사용자간의 통신을 온라인 상에서 모니터한다.

- 넷째 단겨】 : 서버로부터의 마지막 메시지를 가로챈후에 이브는 패스워드 공간과 초기값, %에 따른 LCG의 결과 값을 이용하여 오프라인을 통하여 사용자의 유효한 패스워드를 찾아낸다.

각 단계를 좀더 구체적으로 살펴보면 다음과 같다.

단계 1: 합법적으로 이브는 7■'이 탐색 범위(exhausted bound)이기 때문에 상식적인 시간 안에 §를계산해 낼 수 있다. 이때 이러한 과정을 반복함으로써 그녀가 원하는 만큼의 成들을 얻을 수 있다. 특히 이러한 y들에 관한 일부 정보들은 LCG에 의해서 연속적으로 생성된 것들일 수가 있다.

단계 2: LCG는 다음과 같이 난수를 생성한다. zi+i=azi + b modM 이때, a, b, 그리고 Me 고정된 값이다. 이브는 임의의 난수 y에 관한 부분정보를 얻을 수 있다. 여기서 Me q로 간주하고 {여러번의 공격을통하여 얻ey들의 값} = 3"라 흐卜자. 각 所에 관한 값들은 다음 과정에 의해서 찾을 수 있다.

I. 부분정보 云, ..., 元를 사용하여 a, b와 M을 찾아낸다. 叫

n. 부분정보 云, …, 五와 a, b와 M으로부터 모든 叫 들을 찾을 수 있다.四

I과 II에서 LLL알고리즘을 사용하는데 이는 다항식 시간 안에 구할 수 있다. I에서는 두 단계로 나누어 a와 b그리고 M을 구하는데 첫 번째 단계는 a를법M에 대해서 해를 갖는 다항식을 생성한다. 두 번째 단계로는 이러한 다항식들의 수열을 가지고 M의배수를 찾아내는 알고리즘을 이용한다. 이것은 heuristic하지만 수열의 다항식의 숫자가 늘어날수록 m에빨리 접근되어 진다. 이렇게 M을 찾은 후에는 a를찾는다. I에서는 (n + l)x(n + l)크기의 행렬에 LLL 알고리즘을 적용하는데 이때 naV 21ogM이고 구성성분의 크기는 B( logBa 寸 卫号^)보다 크지 않다. II에서는 kxk 크기의 행렬에 LLL 알고리즘을 적용하 는데 이때 kR 申津 이고 B=(k —l)logM이다

단계 3: 합법적인 사용자 원선이가 서버와 PAK 등과 같은 프로토콜을 이용하여 키를 교환하고 있고 같은 시간에 이브가 이들의 통신을 보고 있다. 이때 이브는 를 얻게 된다.

단계 4: {찌, ."를 패스워드 집합이라고 하자. 이브는 패스워드 %를 추측하고 %를 초기값으로 한 LCG에 의해서 생성된 난수 y, 를 구한다(* 厶■쓰~~7产를 HeA, lus, 7r[)계산한 후 »가 H2a(A, I* D 0, “, 侦 中 A%——T)*) 과 같은 지를 비교한다. 이브는 이러한 과정을 가능한 공간 {执引如疋/에서 참이 나올 때까지 반복한다. 주어진 공간은 사전적 공격이 가능하다. 이러한과정은 EKE2에서도 똑같이 확인할 수 있다.

참조. 시스템 S는 EKE2나 PAK 프로토콜에 대해서 위와 같은 공격이 이루어졌는지도 알지 못한다. 왜냐하면 공격자가 유효한 패스워드를 가지고 합법적인 사용자간의 공개된 정보만을 가지고 공격하기 때문이다.

Ⅴ.결론

본 논문에서는 EKE2와 PAK 프로토콜이 위와 같은 공격에 취약할 수 있음을 보였다. 이러한 취약점을 보완하기 위해서 몇 가지 방법들을 제안한다. 첫 번째 방법은 프로토콜을 보완하는 것으로 프로토콜에 전달되어 온 메시지로부터 군에 속하는지를 확인하는 과정을 삽입한다. 예를 들어 PAK의 경우 m으로부터 命을 이용하여 /z를 얻은 후 이것이 생성자 g에 의해서 만들어진 군에 속하는지 여부를 확인한다. 이것이 너무 작은 부분 군에 속한다면 공격이 행해지고 있음을 감지할 수 있다. 두 번째 방법으로는 키 생성 과정에서 ^ 二以気马의 가장 작은 인수가 4와 크기가 거의 같은 그러한 소수 力를 선택한다. 또는 안전 소수(safe prime, p=2q+l)를 선택한다. 이러한 경우에는 작은 부분 군 공격(small subgroup confinement)을 막을 수 있다. EKE2와 PAK 프로토콜에 관해서 이러한 키 생성과정에서 소수에 관하여 제한을 두는 것은 이번이 처음인 것으로 알고 있다. 또 다른 방법으로는 난수 발생자로 LCG가 아닌 다른 것을 사용하는 것이다. 그러므로 써 난수를 예측하기 어렵게 한다면 안전할 수 있을 것이다.

최근에 키 교환 또는 분배 프로토콜에서 주요 관심은 증명이 가능한 안전성을 보여주는 것이다. 증명이 가능한 프로토콜이 아니면 사람들은 그러한 프로토콜을 사용하는 데에 주저하는 듯하다. 위의 두 프로토콜은 이러한 흐름에 부합하여 이상적인 모델을 통하여 안전성을 증명하였다(Bellare尸 Boyko151). 그들은 그들의 가정들 하에서 안전하다고 주장하였으나 새로운 공격자의 능력에 따라 취약함을 보였다. 따라서 이상적인 모델을 통해서 증명함에 있어서도 공격자의 행동을 정의하는 데에 좀더 주의해야 할 것이다.

본 연구는 2002년 강남대학교 교내연구비에 의해서 수행되었습니다

References

  1. STOC A Modular approach to the design and analysis of anthentication and key exchange protocols M.Bellare;R.Canetti;H.Krawczyk
  2. CRYPTO'93, Lecture Notes in Computer Science v.773 Entity authentication and key distribution M.Bellare;P.Rogaway
  3. IBM Research Report RZ3120 On formal models for secure key exchange V.Shoup
  4. EUROCRYPT'2000, Lecture Notes in Computer Science Authenticated key exchange secure against dictionary attacks M.Bellare;D.Pointcheaval;P.Rogaway
  5. EUROCRYPT'2000, Lecture Notes in Computer Science v.1807 Provably secure password-authenticated key exchange V.Boyko.P.MacKenzie;S.Patal https://doi.org/10.1007/3-540-45539-6_12
  6. Public-key cryptography and password protocols v.3 S.Halevi;H.Krawczyk
  7. The Workshop on Security Protocols Open key exchange: How to defeat dictionary attacks without encrypting public keys S.Lucks
  8. Seminumerical Algorithms(second edition) v.2 the art of computer programming D.E.Knuth
  9. Pseudo-Random Number Generation within Cryptographic Algorithms: the DSS Case, Advances v.1294 M.Bellare;S.Goldwasser;D.Micciancio;B.Kaliski(ed.)
  10. FIPS 186-2 revised version 2002
  11. Journal of Cryptology v.11 no.3 Lattice Reduction: A Toolbox for the Cryptanalyst A,Joux;J.Stem https://doi.org/10.1007/s001459900042
  12. SIAM Journal on Computing v.17 no.2 Reconstructing truncated integer variables satisfying linear congruences Alan M.Frieze;Johan Hastad;Ravi Kannan;Jeffrey C.Lagarias;Adi Shamir https://doi.org/10.1137/0217016
  13. ACM Conference on Computer and Communications Security Augmented encrypted key exchange: a password-based protocol secure against dictionary attacks and password-file compromise S.Bellovin;M.Merritt
  14. Proceedings of IEEE Security and Privacy Encrypted key exchange: Paaword based protocol secure against dictionary attacks S.Bellovin;M.Merritt
  15. Protecting poorly chosen cations v.11 no.5 L.Gong;M.Lomas;R.Needham;J.Saltzer
  16. IEEE P1363.2 Standard Specifications for Public Key Cryptography: Password-based Techniques
  17. ACM Computer Communications Review v.26 no.5 Strong Password-only authenticated key exchange D.Jablon https://doi.org/10.1145/242896.242897
  18. Network and Distributed System Security Symposium Authenticationand key agreement via memorable passwords T.Kwon
  19. Mathn. Ann v.261 Factoring polyomial with integer coefficients A.K.Lenstra;H.W.Lenstra;L.Lovasz
  20. RSA Conference, Cryp-tographer's Track P.Mackenzie More Efficient Password-Anthenticated Key Exchange
  21. The PAK suites: Protocols for Password-Authenticated Key Exchange P.MacKenzie
  22. Asiacrypt Password-authenticated key exchange based on RSA P.MacKenzie;S.Patel;R.Swaminathan
  23. Net work and Distributed System Security Symposium Secure remote password protocol T.Wu