Ⅰ .서론
암호프로토콜(cryptographic protocol) 이란 암호 기술을 이용하여 정해진 정보보호 목적을 달성하기 위한 규약을 일컫는다. 비형식적인 방법(informal method) 으로 부주의하게 설계 및 검증된 암호프로토콜은 시스템의 안전성에 대한 공격을 허용하는 중대한 결함이나 오류를 포함하기 쉽다. 이러한 암호 프로토콜의 결함이나 오류를 모두 발견해내는 것은 쉬운 작업이 아니며, 기존의 잘 알려진 소프트웨어 공학 도구들을 적용하는 경우에도 암호프로토콜에서 사용된 암호기술의 특성과 특수한 요구사항으로 인하여 검증에는 어려움이 있다. 따라서 암호프로토콜의 체계적인 설계와 검증을 위한 형식방법(formal method)이 필요하다京叫 형식방법의 연구는 주로 검증 단계의 형식 방법이 활발히 연구되었는데 그 이유는 명세나 설계단계에서 암호프로콜의 결점을 발견하기는 더욱 어렵기 때문이다'". 알려진 형식검증 방법에서 Syverson 둥에 의해 제안된 SVO로직은 이미 구문 구조와 의미 구조의 안정성에 대한 증명이 이루어져서 건전한 로직으로 알려져 있지만, SVO로직을 통한 추론 경로는 다양해 질 수 있고 최적의 경로를 얻어내기 위해서는 적절한 공리 스키마 대입이 필요하다. 따라서, SVO로직을 이용한 수동적 논리성 검증은 검증 자의 전문적 수준에 의해 그 효율성과 정확성이 크게 좌우된다.
본 논문에서는 기존의 형식 방법 중 하나인 SVO 로직에 대한 자동화 검증 방법을 제안한다. 먼저 II 장에서는 기존 연구에 대해서 살펴본 후, 본 연구의 방향을 기술한다. III장에서는 SVO 로직의 자동화의 문제점을 도출한후, 이에 대한 해결 방안으로 개선된 ASVO 로직과 자동화 방안을 제안한다. IV장에서는구현된 Isabelle/ASVO 도구를 이용한 실험 내용을 기술한다. 그리고 V장에서 결론을 맺는다.
Ⅱ . 암호프로토콜 자동 검증 기술
2.1 암호프로토콜의 안전성 검증 방법
암호프로토콜의 안전성 검증을 위한 방법은 확률적 안전성 분석과 논리적 안전성 분석으로 크게 나누어 볼 수 있다. 먼저 확률적 안전성 분석 방법은랜덤 오라클 모델과 같은 수학 모델을 통하여, 일련의 심볼로 표현된 프로토콜 메시지를 비트열로 해석하여 안전성을 확률적으로 분석하는 방법이다. 예를 들어 Bellane-Rogaway 모델, BCK 모델 BJM 모델 Shoup 모델 등이 이 범주에 속한다‘지". 하지만 이와 같은방법은 자동화하기가 어렵다. 논리적 안전성 분석 방법은 형식 논리(formal logic) 또는 상태 탐색(state explo ration) 방법 등의 잘 알려진 형식 방법을 이용하며, 프로토콜의 메시지를 추상적 심볼로 해석하여, 안전성을 논리적으로 분석하는 방법이다. 여기서 안전성을 논리적으로 분석한다는 것은, 암호프로토콜이 목적한 바를, 예를 들면 인증이나 키분배 등과 같이 안전성에 관련된 사항을, 논리 언어를 통하여 정형적으로기술하고 프로토콜이 주어진 가정하에서 이것을 논리적으로 정확하게 이루는지를 분석하는 것을 말한다.
암호프로토콜의 논리적 안전성 검증 방법은 공격 구성 (attack construction) 방법과 추론 구성 (inference construction) 방법으로 크게 나누어 볼 수 있다'‘七 우선 공격 구성 방법은 프로토콜을 싱태 기계(state machine) 들의 상호 작용으로 간주하고 모든 가능한 상태들에 대한 탐색을 통해서 불안전한 상태에 도달하는 구체적인 공격 경로를 찾도록 하는 방법을 일컫는다. 예를 들면, 범용 도구 CSP/FDR, Mur。등을 이용하는 방법과, Interrogator, NRL 프로토콜 분석기, Athena 둥 전용 모델 검사기(model checker)< 구현하는 방법 등이 여기에 속한다卩2典0母 추론 구성 방법은 주로 확장 로직, 즉 일종의 modal 로직을 바탕으로 지식 (knowledge) 또는 신뢰(belief) 분석을 통해서, 논리적 안전성에 관련된 목적을 정확하게 이루는지 구체적인 추론을 하도록 한다. 최초의 전용 논리 도구인 BAN 로직을 필두로 GNY 로직, AT 로직, vO 로직, SVO 로직 둥의 신뢰 기반 로직과, CKT5, KPL 등의 지식 기반 로직이 잘 알려져 있다顽。, 哗
확률적 안전성 분석 방법을 통해서 얻을 수 있는 결과가 확률적으로 어떤 안전성 관련 성질을 만족한다는 증명이라면, 논리적 안전성 검증 방법을 통해서얻을 수 있는 결과는 구체적인 공격 경로 혹은 논리적 추론 경로에 대한 구체적인 증명이다. 특히 확률적 안전성 분석 방법은 자동화가 불가능한 반면, 논리적 안전성 분석 방법은 자동화를 고려할 수 있다. 이와 같은 면에서 확률적 안전성 검증과 함께, 논리적 안전성에 대한 검증은 다른 한편의 유용한 방법이라고 할 수 있다.
2.2 암호프로토콜의 안전성 자동 검증 방법
논리적 안전성 분석의 자동화 방법은 논리적 안전성검증 방법에 따라 두 가지로 나누어 볼 수 있다. 먼저공격 구성 방법의 자동화는 모델 검사(model checking) 방법을 통하여 자동화하게 되는데, 이것은 시스템의유한 모델을 구성하여, 해당 모델에서 원하는 특성이성립하는지에 대하여 상태 탐색을 하는 것을 말한다. 하지만 이와 같은 방법은 쉽게 자동화해볼 수 있는반면, 범용적 활용을 위해서는 시스템에 대한 전문적인 수정(modihcation)과 추론 기법의 병용을 요할 뿐만 아니라, 상태 폭증(state explosion) 발생으로 인하여 무한 루프에 빠지거나 오류를 발생시키기 쉽다는단점이 있다.
한편 추론 구성 방법의 자동화는 자동 정리 증명 (theorem proving) 방법을 통해서 자동화하게 되는더】, 추론을 얻어내기 위한 각 단계를 자동화1)하여 보다 쉽고 정확하게 추론을 얻어내도록 하는 것을 말한다. 이를 위해서는 Prolog와 같은 함수적 언어(functional language)로 구현하거나, 범용 정리 증명기를 이용하여 구현해야 한다. 이와 같이 반자동화를 통하여 구체적인 추론을 보다 쉽게 얻어낼 수 있지만, 총체적 자동화와는 상당한 거리가 있다.
2.3 연구의 방향
2.3.1 연구 목표
본 연구에서는 암호프로토콜의 대표적 유형에 해당하는, 인증 및 키분배 프로토콜의 논리적 추론을 위한 형식 논리의 자동화 도구를 개발하고자 한다. 이를 위하여 비록 자동 검증에 대해서는 취약하지만, 구문 구조와 의미 구조에 대해서는 안정적인 SVO 로직을 바탕으로 자동 검증 방법을 개발하도록 한다. 구현을 위해서는 자동 정리 증명기인 Isabelle/Isar 시스템을 사용하도록 한다끼
먼저 SVO 로직 자동화의 문제점을 기술하고, SVO 로직이 만족하는 추론 기능을 바탕으로 자동 검증을위한 ASVO(Autoniation-considered SVO) 로직2)을 설계한다. ASVO 로직은 SVO 로직의 단순한 공리 스키마를 최대한 유지하도록 하며, 구문적 의미적 안정성을 유지하도록 한다. 또한 잘 알려진 인증 프로토콜인 NSSK(Needham-Schroeder Shared Key) 프로토콜을통해서 ASVO 로직의 추론 구성 예를 소개한다.
2.3.2 관련 연구
직접 함수적 언어만을 사용하여 구현한 예로는, 1995년 Mathuria, Safavi-Naini, Nickolas 등에 의해서 제안된 GNY 로직 자동 검증 도구가 있다间 이들은 주어진 프로토콜로부터 항상 유한한 개수의 논리식이 유도되도록 GNY 로직의 몇 가지 추론 규칙을 수정하였다. 하지만 결과적으로 Prolog로 구현된 소프트웨어의 정확성에 의존해야 하는 단점이 있다.
19%년 Bmackin에 의해서 제안된 자동 검증 도구는 HOL 정리 증명기를 통해서 구현되었다湖. HOL에서는정리를 Standard ML 컴파일러의 유형 검사(type checking) 를 통해서 확인하며, 정리의 정확성에 대한 증명을표준 HOL 정리 증명 도구를 이용한 소프트웨어로수행할 수 있다. Brackin은 HOL을 통한 자동화를 위해서 GNY 로직을 수정한 BGNY 로직을 정의하였으며, 자동 검증 도구를 AAPA(Automatic Authentication Protocol Analyzer)라고 명명하였다闵 하지만 SVO 로직과 비교할 때 GNY 로직에 바탕을 둔 AAPA는, 로직 의미구조의 안정성에 대해서 상대적으로 취약하다. Brackin 은 AAPA를 통해서 Clark과 Jacob이 분류한 프로토콜군의 일부에 대한 검증을 수행하였다5이.
2000년 Dekker에 의해서 제안된 자동 검증 도구인 C3PO는 Isabelle 정리 증명기를 통해서 구현되었다回. Isabelle/Pure를 통한 자동화를 위해서 SVO 로직을 수정한 SVD 로직을 제안하였으며, 이에 대한 자동화 도구를 C3PO라고 명명하였다. SVD 로직은 SVO 로직에 근간을 두고 있지만, 자동화를 위해서 단순한 SVO 로직의 공리들을 70여개에 이르는 규칙들의 집합으로 단편화하였다. 특히 해당 자동화 도구가 직접 다양한 프로토콜을 자동 분석하고 문제점을 발견한 사례에 대해서는 보고된 바 없다”'.
Ⅲ. 자동화를 위한 ASVO 로직
3.1 SVO 로직
3.1.1 SVO 로직 소개
1994년 Syverson과 van Oorschot가 제안한 SVO 로직은, modal 로직에 근간한 기존의 BAN 로직, GNY 로직, AT 로직, 그리고 vO 로직을 통합하여 보다 효과적이고 강력한 로직의 완성을 추구한 것이다"'끼. 즉, 기존 신뢰 기반 로직(doxastic logic) 들의 장점만을 취합하였으며, 20개 정도의 간략한 공리 스키마로재구성하였다. 또한 AT 로직을 따라서 의미 구조에대한 안정성 증명도 수행하였다.신뢰기반으로 확장된형식 논리서, SVO 로직은 다음과 같은 두 가지 추론규칙을 갖는다.
#
여기서 MP는 predicate 로직에서 가장 일반적인 규칙 중 하나인, modus ponens에 해당하며, Nec은 gen eralization 규칙에 해당하는 necessitation을 의미한다. =n는 ir軍ication을 의미하며, °와。는 논리식, 즉 fcmula 를, 그리 고 卜는 theorem을 의 미 한다. SVO 로직은 수동적 추론에는 활용 가능하지만, 직접적인 자동화는 매우 어렵다. SVO 로직의 다양한 표기법과 자세한 사항에 대해서는 관련 논문을 참고하기 바란다. 한편 SVO 로직을 이용한 수동적 추론, 즉 프로토콜 검증 단계를 살펴보면 [표 1]과 같다.
(표 1) SVO 로직 수행 단계
3.1.2 SVO 로직 자동화의 문제점
SVO 로직을 자동화하는데 있어서 문제가 되는 사항들이 어떤 것인지 살펴보도록 흐}.자. [표 1]과 같은 SVO 로직의 검증 단계 중에서 특히 프로토콜에 대한 CA와 IA를 설정하는 과정은 검증자의 노력에 매우 의존적이다. 예를 들어서 NSSK 프로토콜 검증의일부를 살펴보면 주체 4가 상대방 S로부터 받은 메시지 {、, 3, 代仙, 0必, 4}丄}“에 대해서 다음과 같이 CA를 정의한다.
#
여기서 * 표시로 변환되는 부분은 해당 주체가 이해하지 못하는 값에 대한 표현이다. 하지만 우리는추론에 대한 자동화를 고려할 때 SVO 로직의 몇 가지 문제점을 지적할 수 있다.
첫째, 프로토콜에 대한 CA를 규정하는 단계는 주체가 인식할 수 있는 메시지와 그렇지 못한 메시지를 수동적으로 구분해야한다는 면에서 자동화가 불가능하도록 만든다. 예를 들면, 위의 메시지를 P15의 메시지 로 변환하는 과정은, 프로토콜을 명확히 이해한 검증자에 의해서 직접 이루어져야 한다. 또한 프로토콜 증명 과정에서 이와 같은 메시지를 복원하는 작업 역시 수동적인 작업에 해당한다. 또한 이와 같은 작업을, 후향 증명 (backward proof)으로는 이룰 수 없다.
둘째, 프로토콜에 대한 IA를 규정하는 단계는 BAN 로직이나 GNY 로직의 프로토콜 이상화(idealhatiai) 단계에 해당하며, 역시 자동화가 불가능하도록 만든다. 예를 들면, P19의 메시지 {心, 3, 厶<也3, 斤8时2(知* ), 2} 心, 의 경우, K仙에 대한 해석에 해당하는 와 ftesh(K&9를 일방적으로 삽입하는 과정은, 역시 프로토콜을 명확히 이해한 검증자에 의해서 이루어져야 한다. 또한 역시 이와 같은 작업을, 후향 증명으로는 이룰 수 없다.
셋째, 추론 도중에 강제적으로 해석되어야하는 모호한 부분들이 존재한다. 예를 들면, SVO 로직의 수신 공리 (receiving axioms)에서와 같이 from Q라고 하는 상태 삽입은 역시 프로토콜을 명확히 이해한 검증자에 의해서 이루어져야한다.
넷째, formula나 함수의 메타 표기(meta notaton)에대한 구체적인 표현이 필요하다. 예를 들면, F(X)와같은 메타 함수에 대한 구체적인 정의와 이에 대한확장이 필요하다.
다섯째, 추론 경로에 따라서 무한 순환을 발생시킬 수 있다. 따라서 무한 순환을 일으키지 않도록 주의가 필요하다.
마지막으로, Isabelle/Isar와 같이 HOL(Higher Order Logic)을 기반으로 논리를 구현하는 경우 유형 충돌을 명확히 피하도록 해야한다. 특히 term과 formula의 유형 구분으로 인하여, 연산자 정의에 어려움이 있다. 예를 들면, formula에 대한 연결(conjunction)과 term에 대한 쌍(pair血g)을 구성하기 위한 명확한 연산 정의가 필요하다.
본 연구에서는 이와 같은 사항들을 고려하여, 비록 SVO 로직에 바탕을 두지만, 많은 부분을 개선한 ASVO 로직을 설계하였다.
3.2 ASVO 로직
3.2.1 ASVO 로직 구성
ASVCKAutomaticn-considered SVO) 로직은 Isabelle/Isar 로 구현된 Isabelle/ASVO 시스템을 통해서 암호 프로토콜의 인증 및 키 분배에 관한 반자동 검증을 지원하며, 또한 SVO 로직의 단순 명료성을 바탕으로 설계된 만큼 전문가에 의한 수동 증명도 가능하다. Isabelle/ASVO 시스템을 통한 증명 과정은 후향 증명으로 이루어진다四. ASVO 로직은 다음과 같이 명확한 가정으로부터 일정의 프로토콜 목표를 유도할 수있는지, 논리적으로 검증하기 위한 도구이다.
#
ASVO 로직을 통하여 프로토콜을 검증하는 절차는 다음과 같다.
① 프로토콜을 기술한다.
② 프로토콜이 달성하고자 하는 목표를 기술한다. ③ 프로토콜의 초기 상태 가정(ISA: initial state assump- tion)을 기술한다. 이것은 프로토콜의 초기 설정과 관련된 주체의 신뢰를 명시한다.
④ 프로토콜의 수신 메시지 가정(RMA: received me ssage assumption)을 기술한다. 이것은 프로토콜의정확한 메시지 수신에 대한 주체의 신뢰를 명시한다.
⑤ 로직을 이용하여 프로토콜 참여 주체가 갖는 신뢰를 도출한다.
즉, ASVO 로직의 검증 절차는 [표 1]에서 살펴보았던 SVO 로직의 절차에 비해서 간소화되었음을 알 수 있다. 비록 검증 절차가 간소화되었지만, 역시 매우 숙련된 경우를 제외하고는 순수하게 수동으로만 검증할 경우 오류를 포함하기 쉽다. 따라서 IsabeU^ASVO 도구를 이용하여 반자동 검증을 할 경우 보다 명확한 검증 결과를 쉽게 산출할 수 있다. 한편 ASVO 로직의 공리 스키마는 [표 2]와 같이 구성된다. 기존의 SVO 로직보다는 구체화된 공리 스키마를 갖지만, 의미구조적으로 안정성을 유지한다.
(표 2) ASVO 로직 공리 스키마
본 논문에서는 ASVO 로직의 특징과, NSSK 프로토콜 검증을 위한 공리 스키마만을 부분적으로 소개하며, 구체적인 ASVO에 대한 자세한 내용은 별도의 논문에서 다루기로 한다.
3.2.2 ASVO 로직외 특징
ASVO 로직은 SVO 로직의 자동화를 위하여 변형된 로직으로서 다음과 같은 특징을 갖는다.
1) SVO 로직의 단순한 구문 구조와 함께, 의미적 기본 구조를 최대한 유지하였다.
2) SVO 로직에서 CA와 IA 규정 단계를 제거하였으며, 그대신 이와 같은 부분을 논리적으로 해석할수 있는 공리 스키마들을 정의하였다.
3) 각 formula의 연결과 term에 대한 쌍 구성을 위한연산자를 정의하였다.
4) 메타 표기로 인한 모호성 제거를 위해서, 함수의 명확한 정의나 규칙을 포함하도록 하였다.
5) 무한 순환 발생을 피하기 위하여 predicate에 대한구문 및 의미적인 선형 구조를 구성하였다.
6) GOdel의 두 번째 공리에 바탕을 두고, 후향 증명을 하도록 하였다. 따라서 P believes 爭=今 p believes 。와 같은 추론 증명을 위해서 P beUeves ( 咛 에 대한 추론을 할 수 있다.
3.2.3 NSSK 프로토콜 검증을 위한 공리
ASVO 로직에서 NSSK 프로토콜의 자동 증명을 위해서 직접적으로 필요한 부분 공리만 [표 3]에 나열하였다. 이와 같은 표기법은 사용자가 쉽게 이해하고 알아볼 수 있도록 SVO 로직을 바탕으로 구성되었으며, Isabelle/ASVO 시스템에서는 Isabelle/Isar 언어로 변환되어야한다.
(표 3) ASVO 로직의 부분 공리 칩합
3.3 Isabelle/ASVO 시스템
3.3.1 Isab에이ASVO 시스템 개요
정리 증명기인 Isabelle 시스템은 표준 ML 언어로 구현되어, 연역 시스템을 구성하기 위한 일반적인 기반을제공한다. 특히 Isabelle 시스템은 HOL내의 인터렉티브한 정리 증명에 중점을 두고 있다. 과거에는 일반사용자도 ML 함수들, 예를 들어 goal 명령어, tactic, tactical 둥을 직접 다루어야 했으나, 오늘날에는 Isar (Intellisable semi-automated reasoning)?}- 시스템에 포함되어 theory와 증명 단계에 맞추어진 해석 언어 환경을 제공한다列.
본 논문에서는 ASVO 로직의 구현을 위해서 Isabell리 Isar 시스템을 사용하였다. 따라서 먼저 ASVO 로직을 Isar 언어로 번역하였으며, Isabelle 환경에서 구현 및검증하였다. 구현된 ASVO 로직을 isatooli- 이용하여 Isabelle 시스템에 build하였으며, 이와 같이 완성된시스템을 Isabelle/ASVO라고 한다. 사용자는 Isabelle이설치된 환경에서, 쉽게 ASVO 로직을 이용한 검중을수행할 수 있다. Isabelle/ASVO 도구는 ASVO 로직을이용한 후향 증명을 수행하게되며, 이와 같이 얻은최종 결과를 통해서 ASVO 로직의 증명 과정을 산출할 수 있다. 특히 isatool document를 이용하여 생성된 theory들을 다양한 유형의 문서로 제작할 수 있다.
3.3.2 기본 데이터 유형
I迥belle/ASVO에서, ASVO로직은 유형 키 (key, pk), 주체(principal) 등의 항(term)을 기본적인 구성 요소로 가지며, 이러한 항들로 이루어진 메시지(msg)와 논리식(formula)으로 로직을 표현한다. ASVO 로직의 기본적인 데이터 유형과 공리들은 모두 ASvo.thy 파일에 저장된다.
(1) 키 표현 방식
키는 대칭키 표현을 위한 key 유형과, 공개키 표현을 위한 pk 유형으로 나누어서 구현하였다.
1) key type
키는 Isabelle내에 이미 정의되어져 있는 유형인 'nat, (natural number)을 이용하여 표현한다. 키워드 types를 이용하여 key라는 새로운 유형을 선언하였는데, 이것은 단순히 ASvo.thy 파일 내에서 'nat, typw을 key라는 이름으로 사용하여 theory의 가독성 (readability)을높이도록 한 것이다.
2) pk type
키의 소유자와 종류를 나타내는 PK(P, K) 구문은 Isabelle의 datatype올 이용하여 'pk, 라는 새로운 유형으로 정의하여 표현한다. [표 4]를 참고하라.
[표 4〕ASVO 로직의 공개키 유형
(2) 주체
주체를 의미하는 유형 'principal^ datatype을 이용하여 사용자 A와 B 그리고 키를 관리하는 둥의 역할올 하는 Servei를 표현하는 constructoi들과 type, pk‘에서 키의 종류를 나타내기 위해서 추가된 constmctor인 a, b로 이루어져 있다. 추가된 a와 b라는 constructor는 principal A, B와 다른 사용자를 뜻하는 것이 아니며 a와 A, b와 B 각각은 서로 동일한 사용자를 의미한다. 하지만 소문자 a, b는 Diffie-Hellman과 같은 키교환 프로토콜의 Diffie-Hellman 공개키와, 합의 키를표시할 때 사용되며, 대문자 A, B는 기타 프로토콜의 대칭키를 표시할 때 사용한다. 예를 들어, 주체에기반한 키의 표기는 아래와 같이 한다.
#
3.3.3 메시지와 논리식 유형
(1) 메시지 선언 및 정의
메시지(msg)는 키, 주체, 논스 등의 기본적인 항(此皿) 들로 구성된다. 메시지 역시 Isabelle의 datatype을 이용하여 정의한다. 이렇게 정의되는 메시지의 종류는 Principal, Number, Nonce, Key, H(해쉬함수), Crypt, MPair(메시지 페어링), FO(Diffie-Hellman 변환 함수), F(일반함수) 등의 구성원을 통하여 결정된다.
(2) 논리식 선언 및 정의
논리식(formula)은 참 또는 거짓의 진리값을 갖는구문을 의미하며, modal 연산자와 ASVO 로직의 각종 predicate으로 구성된다. 논리식 유형은 Isabelle의 datatype을 통해서 다음과 같이 구현되었다.
[표 5]에서는 구체적인 논리적 구성 예를 보여준다.
(표 5) Isabelle/ASVO 의 논리식 구성 예제
(3) 주요 변환
Isabelle/ASVO에서는 유형간 충돌을 방지하고, higer order 공리들의 사용을 위하여 다음과 같이 변환 함수들을 정의한다.
1) Trueprop
Trueprop은 입력 유형이 Tormula, 이고 출력으로서 Isabelle 시스템내에 이미 정의되어져 있는 유형인 'prop (proposition), 을 return하는 함수이다. 이 함수는 Isabelle/ ASVO 내에 새롭게 정의된 'formula, 가 T/F값을 갖는하나의 명제로서 인식이 가능하도록 한다 또한, Truqxq) 이라는 함수는 Isabelle에서 implicit coersion이 일어나므로 다른 일반적인 함수들과 다르게 직접적인 함수호출 없이도 'formula'에서 'pro叩'으로 타입 변화가 자동으로 된다.
2) trans
함수 trans는 유형이 formula인 입력을 받아 그것을 message 유형으로 변환시켜주는 역할을 한다. 이 함수를 통해서 ASvo 메시지(message)의 "성질 3) @가 논리식이면, °는 메시지이다”를 표현할 수 있다. 이러한 trans함수는 아래와 같이 사용한다.
#
즉, higher order 표현을 구현할 수 있도록 한다.
3.3.4 연산자와 공리 집합
(1) 연산자 선언과 정의
Isabelk/ASVO에서는 논리식 연산자로서「(negation), A(and), |(or), -^implication)3) 등이 새로운 유형인 formula에 적용될 수 있도록 새로 정의하였다.
#
연산자를 선언할 때에는 함수를 선언할 때와 마찬가지로 Isabelle 의 consts를 사용하는데, syntax를 사용하여 선언할 수도 있다. 한편, 연산자에 대한 정의는 Isabelle 시스템의 translations# 사용하거나, constdek 를 이용하여 선언과 정의를 동시에 할 수 있다. 따라서 다음과 같이 메시지 연결자를 정의하였다.
#
위의 코드에서 ①은 (| |}의 연산자에 대한 right associativity를 정의하고 있으며, ②은 메시지 연결을위한 MPair를 앞으로 {| |}으로 대체하여 사용하겠다는 것을 의미한다.
(2) Isabelle/ASVO 공리 집합
Isabelle/ASVO의 공리 집합은 ASVO 로직의 공리 스키마를, Isabelle/ASVO의 기본 정의와 선언을 바탕으로 구현한 것이다. 따라서 구현에 의존적인 공리인스턴스들이 발생할 수 있는데, 이와 같이 Isabelle/ 屜문법에 이용하여 그대로 구현할 수 없었던 공리들에 한해서는 “Axi#”과 같은 형태로 구현 인스턴스로 명명하였다. 예를 들면, '{| Xl, ..., Xn 와 같은 메시지 구조에서 'Xi'를 선택하는 공리의 경우, Isabelle 에서는 메시지를 이루는 항의 개수가 정확하게 정의되지 않는 XI, ....Xn |}, 과 같은 형태의 구현은 불가능하므로, 메시지의 항의 개수를 필요에 맞게 정하여 구현을 하였다. 하지만 이와 같은 구현 인스턴스는 필요 이상으로 발생하지는 않았으며, ASVO 로직의 모든 공리가 정확히 구현되었다.
Ⅳ. Isabelle/ASVO를 이용한 검증
4.1 NSSK 프로토콜 검증 준비
NSSK 프로토콜은 Needham과 Schroeder에 의해서제안된 프로토콜로서, 30여년동안 암호 프로토콜 연구의 초석이 되어왔다. 그러한 가장 큰 이유는 최초의 본격적인 인증 프로토콜로 탄생하여, 약 10여년간안전한 프로코콜로 여겨져 오며 Kerberos 등의 시스템에 웅용되었지만, 그 후 BAN 로직의 등장과 더불어 프로토콜의 근본적인 오류가 발견되면서 이에 대한 많은 연구를 야기시켰기 때문이다. NSSK 프로토콜을 일반적인 프로토콜 표기법을 사용하여 나타내면 다음과 같다.
#
즉, NSSK 프로토콜의 목표는 명확히 키분배와 인중에 관한 것이다.
4.1.1 프로토콜 목표
NSSK 프로토콜은 인증과 키 분배를 위해서 설계된 프로토콜로서, ASVO 로직을 통한 검증에서는 다음과 같은 프로토콜 목표를 정의할 수 있다.
#
즉, 참여 주체 4와 B는 각각 세션키 X必의 유효성(공유/신규성)에 대해서 신뢰해야하며, 서로 상대방이 같은 키에 대해서 언급을 하는 사실을 신뢰해야하는 것을 의미한다.
4.1.2 프로토콜 초기 가정
ASVO 로직을 통해서 검증하기 위해서는, 이미 언급한 바와 같이 프로토콜 가정인 ISA와 RMA를 정의해야 한다. 이것은 각각 초기 설정에 대한 주체의 신뢰와, 프로토콜 메시지 수신에 대한 주체의 신뢰에 대해서 정의하는 것이다. 이 단계는 검증자가 프로토콜에 대한 간단한 이해를 하는 단계라고 할 수 있다. 먼저 각 주체 A 와 B는 TTP 에 해당하는 S 와 각자 안전한 키를 공유하고 있음을 신뢰하여야 한다.
#
또한 S가 TTP로서 가질 수 있는 관할 권한에 대해서 신뢰하여야 한다. 즉, NSSK는 양자간의 키 분배를 관할하는 TTP를 가정한 프로토콜이다. 결과적으로 B가 갖는 신규성에 대한 가정은 생략하였다. 하지만 프로토콜의 초기 검증에서는 이와 같은 것들도규정할 필요가 있다.
#
각 주체는 자신이 만든 논스 값에 대한 신규성 그리고 소유에 대한 신뢰를 하며, 상대방의 아이디를 식별할 수 있다. 이에 대한 가정 역시 실제 증명에 사용되는 것들만 요약하였다.
#
하지만 이미 알려진 바와 같이 NSSK 프로토콜은논리적인 취약점을 가지고 있는 프로토콜이며, ASVO 로직 분석을 통해서 이와 같은 취약점을 명확히 발견하고 수정할 수 있었다.
아래에 *표로 표시한 ISA들, 즉 P91, P92, P93은 NSSK 프로토콜이 앞에서 정의한 목표를 ASVO 로직을 통해서 이루기 위해서 추가적으로 필요했던4) 가정들이며, 결과적으로 이와 같은 가정들은 각각 NSSK 프로토콜의 논리적 문제점을 제공하게 된다.
#
말하자면, P91 에서는 주체 A가 상대방 B의 논스값 M/게 대해서 일방적으로 이해할 수 있어야 한다는 것을 의미하며, P92와 P93에서는 주체 A와 B가 각각 상대방의 논스 값이나, TTP가 생성해준 세션 키에 대해서 신규성을 일방적으로 신뢰해야만 한다는 것을 의미한다. 하지만 이와 같은 초기 가정은, 프로토콜의 기본적인 명세에 대해서 위배되는 것이며 따라서 프로토콜을 이와 같은 가정이 필요하지 않도록 수정해야 한다. 이것은 ASVO 로직을 통해서 수정된 NSSK7 프로토콜에서 찾아볼 수 있다.
한편, ISA를 기술한 후, 수신 메시지에 대한 주체의 신뢰 명세인 RMA를 다음과 같이 기술해야한다. 앞에서 설명한 바와 같이 ASVO 로직의 RMA 기술은 근본적으로 SVO 로직의 RMA 기술과 다르다. ASVO 로직의 RMA는 단지 각 주체가 프로토콜에 의해서 받기로 약속된 메시지 구조를 기술하고, 이와 같은 전체 메시지 구조에 대한 해당 주체의 신뢰를 나타내는 것이다. 따라서 그 단계가 매우 단순하다. 다만, P15와 같이 challenge-response에 대한 함수 표기는 RMA 단계에서 고려되어야 한다.
#
이와 같은 초기 명세를 마친 후, 각 목표에 대한 theorem을 기술한다. 그리고 해당 theorem에 대해서 ASVO 로직을 이용한 증명올 하게된다.
4.2 NSSK 프로토콜 검증
프로토콜의 분석 실행 과정은 명백하다. 먼저 프로토콜 목표에 대한 theorem을 정리하여야 한다. 그리고 이이서 각 theorem을 증명하기 위한 ASVO 로직의 공리 적용올 하여야한다. 이와 같은 과정은 반자동 검증 도구인 Isabelle/ASVO를 통해서 유도되는 subgoal들의 형태에 따라서 단계적으로 이룰 수 있다. 물론 최초의 가정은 RM伙에서 비롯되며, 이와관계가 있는 ISA들도 여기에 포함된다. 해당 목표에대한 증명이 진행됨에 따라서, 선행 목표에서 비롯되어 증명된 theoiem이나 lemmm들 역시 후행 목표의가정으로 포함될 수 있다. 다만 주의하여야 할 것은, 각 가정들의 modal 연산자의 주체가 해당 목표의 그것과 반드시 동일하여야 하다는 것이다. 이것은 ASVO 로직올 통한 자동 증명이 GSdel의 두 번째 공리에바탕을 둔 증명이기 때문이다. 즉, ASVO 로직에서는 A2 공리와 Nec을 이용한 증명 과정을 허용한다
4.2.1 NSSK-G1 에 대한 증명
NSS&G1 은 각각 주체 A가 키에 대해서 얻을 수 있는 두가지 성질, 즉 대칭키의 유효성과 신규성에 대한 증명이다. 따라서 두가지 theorem을 정의하고 이에 대해서 증명할 수 있다. 먼저 G1 에 대한 theorem 올 정의하고 이에 대한 증명 과정을 요약한다. 표기 一는(Al, A2, Nec, MP) 중에서 적절한 것을 사용하거나 그대로 다음 단계로 전이하는 것을 의미한다.
#
증명 과정을 요약하였지만, A21 공리 적용을 통해서 다음과 같은 중간 논리식을 얻을 수 있었다.
#
이것은 G2에 대한 증명에 활용된다.
#
이와 같이 NSSK 프로토콜의 목표 이과 G2는 무난하게 증명되므로, 이에 대해서는 NSSK 프로토콜이 취약점을 갖지 않는다는 사실을 확인할 수 있다.
4.2.2 NSSK-G3에 대한 증명
NSSK-G3은 각각 주체 B가 키에 대해서 얻을 수있는 두가지 성질, 즉 대칭키의 유효성과 신규성에대한 증명이다. 따라서 역시 두가지 theorem에 대해서증명해야한다. 다음과 같이 NSSK-G1 과 유사한 유형의 theorem을 정의하고 증명을 한다. [표 3]의 출력결과는 다음의 theorem 증명 과정의 한 부분의 출력결과를 캡쳐한 것이다.
표3 Isabelle/ASVO를 이용한 증명 사례 출력
#
Isabelle/ASVO의 subgoal 출력인 ASvo.Trueprop(Fresh {|Key(Principal A)(Principal B), Principal 시})가 의미하는 바는, 3가 메시지 { Kab, 4}에 대한 신규성을확인할 수 있어야한다는 것이다. 따라서, 우리는 이와같은 subgoal을 해결하기 위해서 다음과 같이 subgoal 자체를 가정으로서 준비해야하며, 결과적으로 새로운 theorem 정의와 증명이 필요하다.
#
즉, 주체 Rm K仙의 신규성을 항상 확인할 수 있어야 한다는 조건이다. 하지만 이것은 증명을 완수하는 데는 필요하지만, 프로토콜에서 기본적으로 설정할 수 없는 가정이다. 결과적으로 이로 인하여 프로토콜이 안전하지 않게 된다.
#
이후 B에 관한 증명인, G4와 G6은 G3의 증명을통해서만 증명 가능하다. 하지만 결과적으로 P93의제거를 위해서 프로토콜의 수정이 필요하다. 본 논문에서는 이와 같은 관점에서 보완된 프로토콜인 NSSK7 프로토콜을 구성하였다.
4.2.3 NSSK-G50II 대한 증명
NSSK-G5는 주체 A가 상대방 B의 키 인증 사실을 확인하는데 대한 증명이다. 하지만 G3과 유사하게 해당 theorem을 증명할 수 없었으며, 결국 다음과 같이 P91 을 포함한 theorem에 대해서 증명해야했다. P91) A believes A understands NB
이것은 증명 과정에서 사실상 A5 공리를 적용하기 위해서 요구되었다. 아래의 NSSK-G5 theorem^- P91 을 포함하여 재증명된 결과이다. P91 로 인하여 A5 공리가 적용됨을 확인할 수 있다.
#
즉, NSSIGG3에서와 유사하게 P91 로 인하여 안전성에 대한 문제점이 있음을 확인할 수 있다. NSSK7 프로토콜에서는 역시 이와 같은 문제점도 수정하였다.
4.3 NSSK 프로토콜의 문제점
결과적으로 NSSK 프로토콜은 목표 중에서 NSSK-G1 과 NSSK-G2에 대해서는 기본적인 가정만으로 증명이 가능하지만, NSSK-G3과 NSSK-G5는 증명을 위해서 각각 P93과 P91 이라는 비정상적인 가정을 필요로하였다. 또한 NSSK-G4와 NSSKG6은 NSSK-G3의 증명 결과를 필요로 하므로 역시 P93을 필요로 하였다. 따라서 NSSK 프로토콜의 문제점을 우리는 P91 과 P93이라는 요구사항에서 발견할 수 있다.
4.3.1 NSSK 프로토콜에 대한 Denning-Sacco 공격
증명을 위해서 旳3이 필요하였는데 이것은, 8가 K化에 대한 신규성을 확인할 수 없었으며, 이와 같은 문제는 수정되어야한다는 것을 의미한다. 실제로 NSSK 프로토콜은 Dennig-Sacco 공격에 노출되는 프로토콜로서 그 취약성이 이미 밝혀진바 있다. 이것은 ASVO 로직의 분석 결과와 일치하는데, 즉 주체 B가 K仙의 신규성을 확인할 수 없다는 사실에서 기인한다. 예를 들면 아래와 같이 이전 세션의 키 Kq를취득한 공격자 E는 4를 가장하여 3와 프로토콜을수행할 수 있다.
#
이때 키 K仙의 신규성을 확인할 수 없는 주체 B 는 q와의 정상적인 프로토콜 수행으로 오인하게 된다. 하지만 , 실제로 A는 본 프로토콜에 참여하지 않았다.
4.3.2 NSSK 프로토콜에 대한 Dumb Authentication 공격
또한 NSSK-G5의 증명을 위해서 P91 이 필요하였다. 즉, 厶는 B로부터 수신한 메시지를 인식할 수 없었으며, 이와 같은 문제는 수정되어야한다는 것을 의미한다. 예를 들면, 다음과 같은 새로운 형태의 간단한 공격이 가능하다. 이것을 우리는 Dumb Authentication 공격이라고 부르기로 하자.
#
즉, B를 가장한 공격자 E는 A와의 메시지 교환을통해서, A가 마치 B와 프로토콜을 정상적으로 마친것으로 오해하도록 할 수 있다. 하지만 실제로 B는본 프로토콜에 전혀 참여하지 않았다.
4.4 NSSK7 프로토콜 설계
NSSK7 프로토콜은 ASVO 로직을 통해서 발견된 NSSK 프로토콜의 문제점을 보완 수정한 프로토콜이다. 즉, NSSK 프로토콜이 ASVO 로직을 이용한 증명 올 위해서 NSSK-P91 이나 NSSK-P93과 같은 비정상적인 가정을 필요로 했던 반면, NSSK7 프로토콜은 이와 같은 가정을 요구하지 않도록 보완한 것이다. 이것은 기존의 보완된 NSSK 프로토콜과 그 형태가 유사하지만, 명확히 ASVO 로직의 분석 결과를 따른다. ASVO 로직 분석을 바탕으로 수정한 NSSK7 프로토콜에 대해서 살펴본다.
4.4.1 NSSK7 프로토콜 도출
(1) NSSK-P91 에 대한 보완
NSSK-P엇의 문제점은 NSSK 프로토콜의 다음과같은 단계에서 A가 3의 메시지를 인식할 수 있도록해야한다는 것이다.
#
따라서, 메시지에 A가 기본적으로 식별할 수 있는 정보를 포함하도록 하며, 그 예로서 주체의 식별자를 포함하도록 한다. 따라서 다음과 같이 해당 메시지가 수정되며, 정상적인 가정을 추가하도록 한다.
#
즉, 厶는 복호화된 메시지를 이해할 수 있으며, 이것은 A5와 같은 이해와 수신에 관련된 공리를 통해서 증명 가능하다는 것을 의미한다.
(2) NSSK-P93에 대한 보완
NSSK-P93의 문제점은 NSSK 프로토콜의 다음과 같은 단계에서 B가 세션키 Xab의 신규성을 확인하는 방법이 필요하다는 것이다.
#
따라서, 주체 3가 생성한 논스 값이 해당 메시지에 포함되도록 프로토콜을 수정하여야 한다• 따라서 새 로운 논스 값을 S에게 전달하고 받도록 하기 위하여 다음과 같은 단계 추가가 필요하다.
#
NSSK7 프로토콜은 ASVO 로직을 통하여 기존의 NSSK 프로토콜에서 발생하는 논리적인 문제점을 해결한 프로토콜이다. 위의 [그림 1]은 NSSK7-G3에 대해서, NSSK-P93과 같이 ISA로서는 불가능한 가정을 포함하지 않았음에도 무난히 증명되어5), G3에 대한 추론 구성을 성공하는 Isabel蚓ASVO의 화면을 보여주고 있다. NSSK7- G5 역시 NSSK-P91과 같은 가정 없이 증명되었다.
(그림 1) NSSK7 프로토콜의 G3 증명 예
이와 같이 구성된 NSSK7 프로토콜은 이미 언급한 바와 같이 GNY 로직을 통해서 재구성된 NSSK 프로 토콜과 여러 가지로 가장 유사하다'气 그 이유는 BAN 로직이나 SVO 로직으로는 분석할 수 없었던 NSSK 프로토콜의 dumb authentication 취약성을 분석하는 면이 GNY의 recognizability 분석과 유사하기 때문이다.
Ⅴ. 결론 및 향후 연구
본 논문에서는 암호프로토콜 논리성 자동 검증을 위한 방법으로서, SVO 로직의 자동화 방법을 제안하 였다. 이를 위하여 먼저 SVO 로직 자동화의 문제점 을 분석하였으며, 자동화를 고려한 ASVO 로직을 설 계하였다. 또한 Isabelle 시스템상에서 자동 검증 도 구인 Isabelle/ASVO를 구현하였다. 현재 본 논문에서 소개한 Isabelle/ASVO를 이용하여 NSSK와 NSSK7 프 루 투콜 이외에도 NSPK(Needham-Schroeder Public Key) 프로토콜에 대한 검증도 하였으며, 역시 발견된 취약 성을 수정한 프로토콜 NSPK2와 NSPK3, 그리고 키 교환 프로토콜인 Diffie-Hellman 및 STS(Statiai-to-Station) 프로토콜에 대해서도 검증하였다. 한편 ASVO 로직 에 대한 자세한 사항은 별도의 논문을 통해서 다루 도록 한다.
본 연구는 한국정보보호진홍원에서 지원하는 위탁과제로 수행하였습니다.(과제번호 2OO2-S-O73)
References
- Proc. of the Tenth Annual ACM Symposium on Principles of Distributed Computing A semantics for a logic of authentication M Abadi;M. Tuttle
- Advances in Cryptology - CRYPTO 93 Entity authentication and key distribution M. Bellare;P. Rogaway
- Proc. of the IEEE Computer Security Foundation Workshop A HOL extension of GNY for automatically analyzing cryptographic protocols S. Brackin
- Proc. of the ISOC Network and Distributed System Security An interface specification language for automatically analyzing cryptographic protocols S. Brackin
- Proc. of the IEEE Computer Security Foundation Workshop Evaluating and improving protocol analysis by automatic proof S. Brackin
- Technical Report SRC RR 39, Digital Equipment Corporation, Systems Research Center A logic of authentication M. Burrows;M. Abadi;R. Needham
- EPFL SSC Technical Report No. SSC/1999/038 Formal methods in the design of cryptographic protocols L. Buttyan
- A survey of authentication protocol literature(version 1.0) J. Clark;J. Jacob
- Proc. of the IEEE Computer Security Foundation Workshop C3PO: a tool for automatic sound cryptographic protocol analysis A. Dekker
- Proc. of the IEEE Symposium on Research in Security and Privacy Reasoning about belief in cryptographic protocols L. Gong;R. Needham;R. Yahalom
- Computer Communications v.22 no.8 Security protocols over open networks and distributed systems: formal methods for their analysis, design, and verification S. Gritzalis;D. Spinellis;P. Georgiadis
- IEEE Journal on Selected Areas in Communications v.7 no.4 Analyzing encryption protocols using formal verification techniques R. Kemmerer
- Australian Computer Science Communications v.17 no.1 On the automation of GNY logic A. Mathuria;R. Safavi-Naini;P. Nickolas
- Advances in Cryptography - Asiacrypt 94 Formal verification of cryptographic protocols: A survey C. Meadows
- Proc. of the IEEE Symposium on Security and Privacy Automated analysis of cryptographic protocols using MurΦ J. Mitchell;M. Mitchell;U. Stern
- Proc. of the IEEE Computer Security Foundation Workshop Modelling and verifying key-exchange protocols using CSP & FDR A. Roscoe
- On Formal Models for Secure Key Exchange V. Shoup
- Journal of Computer Security v.9 no.1 Athena: a novel approach to efficient automatic security protocol analysis D. Song;S. Berezin;A. Perrig
- Proc. of the IEEE Symposium on Research in Security and Privacy On unifying some cryptographic protocol logics P. Syverson;P. van Oorschot
- NRL Publication 5540-227 A unified cryptographic protocol logic P. Syverson;P. van Oorschot
- Lecture Notes in Computer Science v.2171 The logic of authentication protocols P. Syverson;Iliano Cervesato
- Proc. of the ACM Conference on Computer Communications Security Extending cryptographic logics of belief to key agreement protocols P. van Oorschot
- Lecture Notes in Computer Science v.2283 Isabelle/HOL T. Nipkow;L. Paulson;M. Wenzel