암호화는 인증, 데이터 기밀성, 데이터 무결성, 부인 방지와 같은 기술과 관련된 일반적인 보안 프로세스를 말합니다. 암호화의 전반적인 목적은 해커, 사이버 공격자, 기타 악의적인 가해자로부터 중요한 정보를 숨기고 의도한 당사자만 이용할 수 있도록 하는 것입니다. 암호화 환경의 진화에 따라 암호 분석 기술과 공격 메서드도 크게 발전했습니다.
전용 하드웨어에 의존하지 않고 최고의 보안을 달성하기 위해 2002년에 화이트박스 암호화라는 개념이 탄생했습니다. 이 블로그에서는 화이트박스 암호화의 종류, 작동 방식, 애플리케이션 등을 비롯하여 화이트박스 암호화에 대해 자세히 알아보겠습니다.
화이트박스 암호화
화이트박스 암호화는 소프트웨어 구현에서 비밀 키가 노출되지 않도록 보호하는 것을 목적으로 하는 강력한 솔루션입니다. 기본적으로 다양한 유형의 취약점으로부터 암호화 알고리즘를 사용하는 소프트웨어 개발을 보호하는 방법입니다. 암호화와 난독화 방법을 결합하여 애플리케이션 코드 내에 비밀 키를 내장합니다.
화이트박스 암호화의 주요 목적은 코드와 키를 고유한 방식으로 결합하여 해커/공격자가 구분할 수 없도록 만들어 결과적으로 만들어진 프로그램을 안전하지 않은 환경에서 안전하게 실행하는 것입니다.
화이트박스 암호화는 다양한 기기의 보안 위험을 최소화하는 과정에서 앱 개발자에게 특히 중요합니다. 예를 들어, 결제가 진행되는 다양한 소비자 기기를 보호해야 범죄자가 기밀 정보에 접근할 수 없습니다. 화이트박스 암호화는 기본적으로 키가 데이터와 코드로 무작위로 저장되기 때문에 이러한 노출을 방지하기 위해 설계되었습니다.
Kerckhoffs의 암호화 원리
암호화의 핵심 설계 원리 중 하나는 Kerckhoffs의 원리입니다. 간단히 말하면 이 원리는 키를 제외한 시스템의 다양한 측면을 누구나 이용할 수 있더라도 암호 시스템을 완벽하게 보호해야 한다는 것입니다.
화이트박스 암호화의 개념은 Kerchhoff의 암호화 원리와 플랫폼의 개방성 모두를 충족시키는 것을 목표로 합니다. 즉, 해커는 사용되는 알고리즘, 구현, 메모리, 보호 기술에 완벽하게 액세스할 수 있으며, 보안은 랜덤 데이터와 비밀 키의 기밀성에 의존합니다.
화이트박스 암호화 작동 방식
화이트박스 암호화는 키와 앱 코드를 원활하게 혼합하고 민감한 암호화 작업을 보호하기 위해 주로 몇 가지 수학적 기술을 사용하여 작동합니다. 이렇게 하면 해커가 앱에서 이러한 키를 찾거나 추출하는 것을 방지할 수 있습니다.
또한 각 화이트박스 암호화 구현은 고유하게 작동하며 대부분의 경우 작성자에게 기밀로 제공됩니다. 다양한 화이트박스 구현에는 런타임 코드 수정, 정적 분석에 대한 보호 등과 같은 다양한 기술이 포함될 수 있습니다.
화이트박스 암호화가 인기를 끄는 단순한 이유는 공격자/해커가 화이트박스를 사용하여 프로그램을 보호하는 동안 실행 가능한 이진, 실행 메모리, CPU의 호출 인터셉트 등 세 가지 측면에 모두 액세스할 수 있다고 가정하기 때문입니다.
다음은 이러한 인스턴스에서 키를 숨기기 위해 수행하는 몇 가지 단계입니다.
- 부분 평가: 작동 중에는 키에 따라 변경됩니다. 예를 들어 블록 암호의 대체 단계에서는 룩업 테이블이 키에 종속되도록 변경됩니다.
- 표 형식화: 다른 모든 작업도 룩업 테이블을 사용하도록 변환됩니다. 이는 주로 룩업 테이블이 모든 기능을 설명할 수 있기 때문에 가능합니다.
- 무작위화 및 비선형화: 인코딩 된 룩업 테이블 체인은 원래 체인과 동일한 기능으로 작성되지만 키는 숨겨집니다. 이 체인을 사용하여 난독화 된 알고리즘이 개발되었습니다.
전반적으로 화이트박스 암호화는 알고리즘의 실행 흐름과 내부 데이터를 모두 가리고 혼합하여 해커나 공격자가 암호화 키를 분리하고 식별하기가 매우 어렵습니다. 이렇게 하면 애플리케이션에서 키를 찾거나 압축을 풀 수 없습니다.
화이트박스와 코드 난독화의 차이점
화이트박스 암호화는 소프트웨어 구현을 보호하는 것이 주요 목적이기 때문에 코드 난독화와 종종 연결됩니다. 간단히 말해 화이트박스 암호화는 난독화 방식을 구현하지만 코드 난독화와 동의어는 아닙니다. 코드 난독화는 분석이 매우 어려워지는 방식으로 코드를 변환하는 과정을 말합니다.
반대로 화이트박스 암호화는 특히 암호화 알고리즘 소프트웨어의 구현을 보호하기 위한 다양한 데이터 변환 방법을 사용합니다. 따라서 비밀 암호 키는 항상 안전하게 가려져 있습니다.
화이트박스 암호화의 응용 분야
대부분의 경우, 화이트박스 암호화는 개발자가 보안 하드웨어 요소에 의존하지 않고 최고 수준의 보안을 달성해야 할 때 스마트폰, PC, 태블릿과 같은 개방형 장치에서 실행되는 다양한 앱의 암호화 구현을 보호하기 위해 배치됩니다.
여러 소프트웨어 애플리케이션이 개인 데이터와 민감한 데이터를 저장하고 처리하기 때문에 화이트박스 암호화의 이점을 크게 활용할 수 있습니다. 일부 분야에서는 사실상 보안 정책의 중요한 구성 요소이기도 합니다. 특정 응용 분야의 몇 가지 예는 다음과 같습니다.
비접촉식 NFC 결제
오늘날 다양한 모바일 결제 앱은 근거리 무선 통신(NFC) 기술을 사용하여 일반 휴대폰을 비접촉식 결제 단말기로 바꿔 놓고 있습니다. 이는 특히 리소스가 제한된 기업이 전문 POS(Point-of-Sale) 시스템에 투자하는 데 도움이 될 수 있습니다. 그러나 여기서 가장 중요한 문제 중 하나는 보안입니다.
PCI SSC(Payment Card Industry Security Standards Council)는 이러한 응용 분야에서 암호화 키에 대한 매우 유연한 데이터 보호를 보장하는 최적의 방법으로 화이트박스 암호화를 선정했습니다. 이 암호화의 가장 큰 장점은 실행되는 장치와 무관하게 작동한다는 점입니다.
의료 분야
대부분의 의료기기 데이터는 압축 암호를 사용하여 암호화되고 전송됩니다. 이와는 별도로 본 의료 데이터는 무결성을 보장하기 위해 서명될 수 있습니다. 일반적으로 키는 의료기기의 경계 내부와 클라우드 서버 모두에서 안전합니다. 스마트폰이나 데스크톱 PC에서 작동하는 앱이나 프로그램은 보안 측면에서 가장 취약한 링크입니다.
이 경우 화이트박스 암호화는 암호 해독 키와 서명 키를 모두 보호하여 공격자에 의해 도난 또는 변조되지 않도록 의료 데이터/기록의 안전을 보장합니다.
OTT 플랫폼
OTT(Over-The-Top) 서비스의 급부상으로 인해 해커로부터 비디오 자료를 보호하는 동시에 접근 용이성과 유료 시청 경험을 보장해야 하는 담당자에게 문제가 되고 있습니다. 화이트박스 암호화는 이 문제를 해결하며 OTT 서비스 제공자가 콘텐츠를 제공하는 데 사용하는 앱과 셋톱 박스 모두에 적용됩니다.
모바일 앱에서 화이트박스 암호화의 응용
화이트박스 암호화는 강력한 보호 기능을 제공하기 위해 이미 존재하는 다양한 암호화 기술을 보완하는 탁월한 솔루션이며 주로 앱에 저장된 암호화/암호 해독 키를 보호하도록 설계되었습니다. 모든 기능을 갖춘 화이트박스 암호화 제품군은 모바일, 데스크톱, 서버 앱에 보호를 추가하는 데 중요한 역할을 할 수 있습니다. 중요한 모든 정보를 수명 주기 내내 앱에서 암호화하는 것이 데이터를 안전하게 보호하는 핵심 방법입니다. 전송 중인 데이터를 보호하기 위해 상당한 노력을 기울이더라도 앱에는 여전히 취약점이 남아 있습니다.
마무리하며
화이트박스 암호화는 다양한 종류의 앱 취약점에 대한 보호를 위한 훌륭한 솔루션을 제공합니다. 아직 개선의 여지가 많지만, 현재로선 해커로부터 다양한 애플리케이션을 보호하는 데 큰 잠재력을 보이고 있습니다.
화이트박스 암호화는 앱의 절대적인 보안 수준을 달성하는 것을 목표로 합니다. 현재 이 기술은 애플리케이션을 보호하고 기밀 및 기타 중요한 데이터를 악의적인 공격으로부터 보호할 수 있는 것으로 입증되었습니다.