Skip to main content
QUICK REVIEW

[논문 리뷰] Robust and Efficient Elimination of Cache and Timing Side Channels

Benjamin Braun, Suman Jana|arXiv (Cornell University)|2015. 05. 31.
Security and Verification in Computing참고 문헌 44인용 수 21
한 줄 요약

이 논문은 프로그래머 애너테이션을 사용해 민감한 함수를 격리하고, 안전한 시간 팯딩을 적용하며, 공유된 하드웨어 상태를 게으르게 정리함으로써 시간 및 캐시 사이드채널 누출을 제거하는 저비용의 다중 언어 방어 기법을 제시한다. 이는 SSL/TLS 서버에서 성능 오버헤드가 5% 미만이 되도록 하면서도 C, C++, Java 프로그램에서 로컬 및 원격 공격 모두에 대응할 수 있다.

ABSTRACT

Timing and cache side channels provide powerful attacks against many sensitive operations including cryptographic implementations. Existing defenses cannot protect against all classes of such attacks without incurring prohibitive performance overhead. A popular strategy for defending against all classes of these attacks is to modify the implementation so that the timing and cache access patterns of every hardware instruction is independent of the secret inputs. However, this solution is architecture-specific, brittle, and difficult to get right. In this paper, we propose and evaluate a robust low-overhead technique for mitigating timing and cache channels. Our solution requires only minimal source code changes and works across multiple languages/platforms. We report the experimental results of applying our solution to protect several C, C++, and Java programs. Our results demonstrate that our solution successfully eliminates the timing and cache side-channel leaks while incurring significantly lower performance overhead than existing approaches.

연구 동기 및 목표

  • 낮은 성능 비용으로 로컬 및 원격 시간 및 캐시 사이드채널 공격에 대응할 수 있는 소프트웨어 보호 기법을 개발하는 것.
  • 저수준 어셈블리 또는 맞춤형 하드웨어 없이 프로그래밍 언어 및 하드웨어 아키텍처 간 이식 가능성을 확보하는 방어 기법을 개발하는 것.
  • 기존의 정적 코드 변환 또는 공격적인 캐시 플러시 기법과 비교해 성능 오버헤드를 줄이는 것.
  • 자바와 같은 언어의 런타임 최적화나 다양한 프로세서의 시간 특성 변화가 존재하더라도 보안을 유지할 수 있도록 하는 것.
  • 최소한의 소스 코드 변경과 운영체제 수준의 지원만으로도 실용적인 애플리케이션 수준의 솔루션을 제공하는 것.

제안 방법

  • 기밀 데이터를 처리하는 함수를 식별하고 격리하기 위해 프로그래머가 정의한 애너테이션을 사용하여 보호 범위를 제한하는 것.
  • 기밀에 의존하는 시간 변동과 기밀에 의존하지 않는 시간 변동을 분리하고, 패딩을 기밀에 의존하는 측면에만 적용하여 누출을 방지하는 것.
  • 기존 운영체제 스케줄러와 하드웨어 기능(예: 메모리 계층 구조)을 활용하여 보호된 함수의 실행을 신뢰할 수 없는 프로세스로부터 격리하는 것.
  • 지연 자체에서 시간 누출이 발생하지 않도록 하는, 굵은 단위의 프리미티브를 사용한 안전한 지연 루프 메커니즘 설계.
  • 공유된 하드웨어 자원(예: 캐시, 분기 예측기)을 민감한 함수 호출 후 즉시 정리하는 대신, 신뢰할 수 없는 프로세스로 전환할 때만 정리하는 게으른 상태 정리 전략 구현.
  • 시스템 수준에서 격리와 시간 독립성을 보장하기 위해 방어 기법을 리눅스 커널에 통합하는 것.

실험 결과

연구 질문

  • RQ1낮은 성능 오버헤드로 로컬 및 원격 시간 및 캐시 사이드채널 공격을 모두 방어할 수 있는 기법을 구축할 수 있는가?
  • RQ2패딩 메커니즘 자체에서 새로운 사이드채널이 발생하지 않도록 시간 패딩을 안전하게 적용할 수 있는가?
  • RQ3저수준 또는 아키텍처에 특화된 변경 없이도 여러 프로그래밍 언어와 하드웨어 플랫폼 간 이식 가능한 솔루션을 설계할 수 있는가?
  • RQ4공유된 하드웨어 자원으로부터 강력한 격리 상태를 유지하면서 민감한 함수를 보호할 경우 성능 비용은 얼마나 되는가?
  • RQ5기존 운영체제 및 하드웨어 기능을 어떻게 활용하여 맞춤형 또는 침입적인 수정을 최소화할 수 있는가?

주요 결과

  • 제안된 방어 기법은 모든 알려진 시간 및 캐시 사이드채널 공격에 대응하기 위해 전체 상태 기계를 보호할 때 SSL/TLS 서버에서 성능 오버헤드가 5% 미만으로 줄어든다.
  • 이 솔루션은 C, C++, Java 프로그램에서 시간 및 캐시 사이드채널 누출을 성공적으로 제거하며, 소스 코드 변경이 최소한이다.
  • 게으른 상태 정리 전략은 민감한 함수 호출 후 즉각적인 상태 정리보다 성능 오버헤드를 크게 줄인다.
  • 안전한 지연 루프 메커니즘은 지연 프리미티브 자체에서 누출을 방지하며, 이는 단순한 구현에서 흔한 취약점이다.
  • 이 방어 기법은 여러 아키텍처에서 효과적이며, JVM의 런타임 최적화 환경에서도 작동하지만, 이전의 접근 방식은 이러한 환경에서 실패한다.
  • 이 방법은 아키텍처적 차이에 강건하며, 다양한 프로세서 모델이나 스케줄링 동작 방식 변화에도 깨지 않는다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.