소스 레벨 증명 기반 코드 플랫폼 Lissom
초록
Lissom은 소스 코드 단계에서 증명(Proof)과 인증서를 생성하는 Proof‑Carrying Code(PCC) 프레임워크이다. 기존 컴파일러 출력에 의존하던 방식을 탈피해, LISS라는 교육용 언어와 Coq 기반 증명 시스템을 활용한다. 학생들이 형식 검증 도구를 실제 모바일 코드 보안에 적용해 보는 실험적 플랫폼으로 설계되었으며, 현재는 주석 언어 설계, WHY 도구 연동, 증명 자동화 등 여러 모듈을 단계적으로 구현하고 있다.
상세 분석
Lissom 프로젝트는 PCC의 전통적 아키텍처가 컴파일러 최적화 단계 이후에 인증서를 생성하는 한계를 지적하고, 소스 레벨에서 증명을 수행함으로써 두 가지 핵심 원칙을 제시한다. 첫째, “소스 레벨 PCC가 정답”이라는 주장이다. 프로그래머는 일반적으로 타깃 아키텍처의 저수준 세부사항을 알지 못하고, 알고리즘 자체는 고수준 언어에 표현된다. 따라서 보안 정책을 소스 코드에 직접 주석으로 명시하고, 그 주석을 기반으로 형식 검증을 수행하면 정책 위반을 사전에 차단할 수 있다. 둘째, “가능한 한 기존 도구 재사용”이라는 원칙이다. LISS(Language for Integers Sets and Sequences)는 교육용이면서도 집합, 벡터 등 실용적인 타입을 제공하는 비트코인 언어이며, 이를 통해 WHY와 Coq 같은 검증 도구를 그대로 활용한다.
아키텍처는 크게 네 부분으로 나뉜다. (1) 소스 언어와 컴파일러: LISS는 주석(annotation) 시스템을 추가해야 하며, 컴파일러는 소스 코드와 동시에 증명 목표를 생성한다. 여기서 가장 어려운 점은 구조적 증명을 기계어 수준으로 매핑하는 것으로, 기존 연구
댓글 및 학술 토론
Loading comments...
의견 남기기