← 최신 논문
💻 computer science

Recovering a Full AES-128 Key Across Tenant Boundaries via DDR4 Row-Buffer Timing on Cloud FPGAs

이 논문은 권한이 전혀 없는 공유 클라우드 FPGA 상의 코테넌트(co-tenant)가 DDR4 로우 버퍼(row-buffer) 타이밍 부채널을 악용하여 피해자로부터 완전한 AES-128 마스터 키를 복구할 수 있음을 입증하며, 이는 역공학을 통한 뱅크 매핑과 여러 암호화 과정에 걸친 통계적 집합을 통해 "뱅크당 하나의 슬롯(one-slot-per-bank)" 제한을 극복한 결과이다.

원저자: Vineet Chadalavada, Fareena Saqib

게시일 2026-09-07
📖 5 분 읽기🧠 심층 분석

원저자: Vineet Chadalavada, Fareena Saqib

원본 논문은 CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

현대 디지털 세상에서 우리는 종종 우리의 개인 데이터가 소프트웨어와 디지털 벽의 층에 의해 다른 이들의 훔쳐보는 눈으로부터 격리되어 안전한 금고 안에 잠겨 있다고 상상하곤 합니다. 이것이 클라우드 컴퓨팅의 약속입니다. 즉, 서로 다른 사용자들이 서로의 작업 내용을 전혀 보지 못한 채 동일한 강력한 하드웨어를 공유할 수 있다는 것입니다. 그러나 컴퓨터가 정보를 저장하는 물리적 실체는 다른 이야기를 들려줍니다. 컴퓨터가 계산을 수행할 때, 마치 사전에서 정의를 찾기 위해 단어를 검색하는 것처럼 큰 목록에서 값을 찾아봐야 할 때가 많습니다. 이를 빠르게 수행하기 위해 컴퓨터는 특정 메모리 구역, 즉 로우 버퍼(row buffer)를 열어 해당 목록을 준비해 둡니다. 만약 컴퓨터가 동일한 구역 내의 다른 항목을 찾아야 한다면, 현재의 목록을 닫고 새로운 목록을 열어야 하며, 이 과정은 아주 미세하게 더 많은 시간을 소요합니다. 이 시간 차이는 극히 작지만, 흔적을 남깁니다. 젖은 모래 위의 발자국이 누군가 걸어간 곳을 드러내는 것처럼, 메모리에 접근하는 데 걸리는 시간은 어떤 데이터가 사용되었는지를 드러낼 수 있습니다. 수십 년 동안 보안 전문가들은 이러한 미세한 타이밍 단서가 단일 컴퓨터에서 비밀을 훔치는 데 사용될 수 있다는 것을 알고 있었지만, 이 기술이 공유 클라우드 서버에서 서로 다른 사용자들을 구분 짓는 보이지 않는 경계를 넘어 작동할 수 있는지에 대해서는 의문이 남아 있었습니다.

노스캐롤라이나 대학교 샬럿 캠퍼스의 연구진은 메모리 접근 타이밍만을 이용하여 공유 클라우드 서버의 이웃으로부터 완전한 비밀 키를 훔치는 것이 실제로 가능하다는 것을 입증했습니다. 그들은 복잡한 작업을 가속화하기 위해 사용되는 재구성 가능한 칩인 필드 프로그래머블 게이트 어레이(FPGA)라는 특정 유형의 클라우드 하드웨어에 집중했습니다. 전형적인 클라우드 설정에서는 비용 절감을 위해 여러 사용자가 동일한 물리적 카드에 배치됩니다. 소프트웨어는 사용자 A가 사용자 B의 파일을 직접 읽을 수 없도록 보장하지만, 두 사용자 모두 메인 프로세서 외부의 동일한 물리적 메모리 칩을 공유합니다. 연구진은 특별한 권한도 없고, 피해자의 데이터에 접근할 수도 없으며, 비밀 키에 대한 지식도 없는 사용자가 어떻게 이웃이 사용하는 전체 암호화 키를 복구할 수 있는지를 보여주었습니다. 그들은 이웃이 동시에 암호화를 수행하는 동안 자신의 컴퓨터가 메모리로부터 읽는 데 걸리는 시간을 정밀하게 측정함으로써 이를 달성했습니다.

이 과제는 단순히 이웃의 활동을 도청하는 것보다 훨씬 더 어려웠습니다. 표준 컴퓨터 캐시에서는 모든 데이터 조각이 고유한 발자국을 남기기 때문에 공격자가 비밀 키의 16개 부분을 한 번에 볼 수 있습니다. 그러나 클라우드 서버에 사용되는 메모리 칩은 다르게 동작합니다. 이들은 각 메모리 구역이 마지막으로 열었던 단 하나의 항목만을 기억할 수 있는 구조적 제한을 가지고 있습니다. 피해자가 메시지를 암호화할 때, 그들은 16개의 서로 다른 값을 조회합니다. 메모리 구역은 한 번에 하나의 열린 항목만 유지할 수 있기 때문에, 첫 15개의 조회 값은 즉시 16번째 값에 의해 덮어씌워집니다. 공격자가 들으려고 시도할 때쯤이면 첫 15개 부분의 증거는 사라지고 마지막 조각만이 가시적으로 남게 됩니다. 이는 표준 해킹 기법을 무용지물로 만드는 장벽이 되었는데, 공격자가 16바이트 키 중 단 하나의 바이트만을 볼 수 있게 하여 암호를 깨기에 불충분했기 때문입니다.

이를 극복하기 위해 연구진은 메모리 칩이 각각 자체적인 메모리 버퍼를 가진 16개의 독립적인 구역을 포함하고 있다는 사실을 이용한 영리한 전략을 고안했습니다. 16개의 부분을 하나의 구역에서 모두 들으려고 시도하는 대신, 그들은 비밀 데이터를 재배치하여 16개의 키 부분이 각각 서로 다른 메모리 구역에 존재하도록 만들었습니다. 이렇게 하면 피해자가 16개의 값을 조회할 때 16개의 구역을 동시에 열게 되며, 어느 것도 서로를 덮어쓰지 않게 됩니다. 공격자는 그런 다음 어떤 구역이 여전히 열려 있는지 빠르게 확인할 수 있는 맞춤형 도구를 구축했습니다. 다양한 테스트 메시지를 반복하는 과정을 통해, 공격자는 충분한 단서를 모아 전체 비밀 키를 재구성할 수 있었습니다. 연구진은 데이터 센터에서 흔히 사용되는 하드웨어인 Xilinx Alveo U250 카드를 사용하여 이 방법을 테스트했습니다. 그들은 피해자의 암호화 프로그램과 함께 자신의 프로그램을 실행함으로써, 피해자가 10라운드 전체 암호화 과정을 수행하는 동안에도 모든 19개의 키에 대해 전체 마스터 키를 복구할 수 있음을 발견했습니다.

이 공격의 성공은 두 가지 주요 발견에 달려 있었습니다. 첫째, 연구진은 메모리 컨트롤러가 특정 데이터에 대해 어떤 메모리 구역을 사용할지 결정하는 방식을 정확히 파악해야 했습니다. 이 매핑은 명확하지 않으며 하드웨어 유형마다 다릅니다. 연구팀은 서로 다른 주소에 접근하는 데 걸리는 시간을 측정하여 이 지도를 역공학적으로 분석함으로써, 외부에서 내부로 메모리 레이아웃을 효과적으로 매핑했습니다. 둘째, 그들은 자신들이 감지한 신호가 실제 신호인지 아니면 단순한 노이즈인지 증명해야 했습니다. 성공적인 메모리 접근과 실패한 접근 사이의 시간 차이는 매우 작아서 약 4 클록 사이클, 즉 약 32나노초에 불론했습니다. 이 미세한 신호에도 불구하고, 연구진은 결과값을 여러 번 평균함으로써 패턴이 명확해진다는 것을 보여주었습니다. 가장 현실적인 테스트 환경, 즉 공격자와 피해자가 아무런 협력 없이 완전히 별개의 프로그램을 실행하는 상황에서도, 공격자는 검증된 표준 암호화 알고리즘으로 데이터를 암호화하는 피해자로부터 전체 키를 성공적으로 복구했습니다.

이 연구가 현재의 모든 클라우드 컴퓨팅이 안전하지 않다는 것을 의미하는 것은 아니지만, 공유 하드웨어가 관리되는 방식의 특정 취약점을 드러냅니다. 연구진은 현재 대부분의 상업용 클라우드 인스턴스는 단일 사용자에게 전용으로 제공되어 이러한 유형의 공격을 방지한다고 언급했습니다. 그러나 산업이 비용 절감을 위해 더 효율적인 공유 하드웨어로 이동함에 따라 위험은 증가합니다. 이 연구는 소프트웨어를 분리하는 논리적 격리만으로는 물리적 자원을 보호하기에 충분하지 않다는 점을 강조합니다. 메모리 칩 자체는 무엇이 액세스되었는지에 대한 기록을 보유하고 있으며, 그 기록은 이웃에 의해 읽힐 수 있습니다. 연구진은 비밀 데이터를 칩 내부의 빠르고 사적인 메모리에 보관하거나, 데이터가 저장되는 위치를 무작위화하여 타이밍 단서가 무의미하게 만드는 등의 해결책을 제시합니다. 또한 클라우드 제공업체가 사용자가 다른 사용자를 엿보려고 시도하는지 감지하기 위해 메모리 접근 패턴을 모니터링할 수 있다고 제안합니다.

이 연구의 영향은 단 하나의 암호화 유형에 국end되지 않습니다. 키를 훔치는 데 사용된 방법은 메모리가 작동하는 근본적인 방식에 의존하므로, 유사한 룩업 테이블을 사용하는 다른 비밀 유지 알고리즘에도 잠재적으로 적용될 수 있습니다. 연구진은 자신들의 발견이 컴퓨터 시뮬레이션이 아닌 실제 하드웨어 실험에 기반하고 있음을 강조하며, 이는 결과의 높은 신뢰성을 부여한다고 밝혔습니다. 그들은 50개의 서로 다른 무작위 키와 19개의 서로 다른 암호화 시나리오를 대상으로 공격을 테스트했으며, 매번 성공했습니다. 초기 설정이 완료된 후 키를 복구하는 전체 과정은 단 몇 초밖에 걸리지 않았으며, 이는 어떤 미래의 클라우드 환경에서도 실질적인 위협이 될 수 있음을 의미합니다.

궁극적으로 이 연구는 컴퓨터 하드웨어의 물리적 세계에는 소프트웨어가 항상 극복할 수 없는 자체적인 규칙이 있다는 경고 역할을 합니다. 두 사람이 방을 공유할 때 서로를 볼 수는 없어도 서로의 발소리를 들을 수 있는 것처럼, 클라우드 서버를 공유하는 두 사용자는 서로의 메모리 접근 타이밍을 들을 수 있습니다. 연구진은 충분한 인내심과 적절한 도구가 있다면, 이러한 희미한 메아리가 비밀의 선명한 그림으로 증폭될 수 있음을 보여주었습니다. 클라우드 제공업체가 효율성을 높이기 위해 더 적은 수의 칩에 더 많은 사용자를 배치함에 따라, 이러한 물리적 사이드 채널을 이해하는 것은 진정으로 안전한 시스템을 설계하는 데 필수적일 것입니다. 해결책은 더 높은 디지털 벽을 쌓는 데 있는 것이 아니라, 그 아래에 있는 메모리의 물리적 동작을 이해하고 한 사용자의 행동 기록을 다른 사용자가 읽을 수 없도록 보장하는 데 있습니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →