IT

왜 1억대의 삼성 단말기에 보안상의 결함이 존재했는가?

오델리아 2022. 2. 25. 22:11

이미 출하가 끝난 삼성제 스마트폰의 다수에, 암호화 키의 추출을 가능하게 하는 설계상의 결함이 있었던 것으로 밝혀지고 있다. 이것에 대해서, 해외 미디어 인 The Register가 언급했는데...

안드로이드 스마트폰은 거의 모든 제품이 Arm 호환되는 실리콘을 사용하고 있으며, Arm의 Trust Zone 기술이 지원하는 Trusted Execution Environment(TEE)에 의존하는 형태로 매우 기밀성 높은 보안 기능을 일반 애플리케이션으로부터 분리하여 보호한다.

 


각 스마트폰의 TEE는 자체 OS인 Trust Zone OS(TZOS)를 실행하고 있다는 점에서는 공통적이지만, TZOS 내에 암호화 기능을 구현하는 것은 각 벤더에 달려 있다.

삼성의 경우, Trust Zone에서 실행되고 있는 Keymaster TA라 불리는 신뢰가 끝난 애플리케이션을 개입시켜, 암호화 키 관리를 제공하는 Keymaster Hardware Abstraction Layer(HAL)를 실장해, 안전한 환경에서 키의 생성, 암호화, 인증, 서명의 작성등의 암호화를 실행하고 있다고 한다.


Keymaster TA는, 암호화 키를 BLOB로 저장한다. 키는 블록 암호의 AES-GCM을 통해 암호화 되어, Android 환경의 파일 시스템에 저장할 수 있지만, 이론적으로는 TEE내에서만 판독이 가능해야 한다.

삼성의 보안상의 결함이란, 이 BLOB에 관련되는 것이다. 삼성제 단말을 조사한 이스라엘 텔 아비브 대학의 Alon Shakevsky 씨 등에 의하면, Galaxy S8, S9, S10, S20, 및 S21에서, Keymaster 앱을 리버시 엔지니어링 해, 초기화 벡터의 코드 재활용 공격을 실시하는 것으로, 하드웨어로 보호된 BLOB로부터 키를 빼내는 것이 가능했다고 한다.

 


초기화 벡터는 매회 하나의 번호라고 상정되고 있기 때문에, 같은 보통 텍스트가 암호화되어 있는 경우라도, AES-GCM 암호화 조작을 실시하면 다른 결과가 생성된다. 그러나 "솔트"라 불리는 초기화 벡터와 암호화 키가 같은 상태일 경우에는 같은 출력이 생성된다는 것이 밝혀져 있어, 이런 점에서 암호화가 적절하게 이루어지지 않는다고 되어 있다.

Shakevsky 씨 등이 이 취약성을 발견한 2021년 당시, 1억 대의 삼성 단말기가 위협을 받고 있었던 것으로 추정되고 있다. 다만, 삼성은 2021년 5월에 조사를 개시해, 동년 8월에 수정 패치를 릴리스했다.

Shakevsky 씨 등은 AES-GCM 이외의 암호화 스킴 또는 AES-GCM-SIV와 같은 초기화 벡터의 재이용 공격에 견딜 수 있는 버전을 실장해야 한다고 주장하고 있으며, 조사 결과를 담은 논문을 오는 2022년 4월의 암호화 연구 심포지엄 "Real World Crypto Symposium" 등에서 발표할 예정이다.