기본 콘텐츠로 건너뛰기

White-box-Cryptography

화이트박스 암호 기술 본 내용은 ETRI의 화이트박스 암호 및 응용 기술 동향 분석 문서를 참고하여 작성한 글입니다. 등장 배경 지금까지 암호 알고리즘은 동작하는 단말과 단말의 신뢰를 토대로 제 3자가 해독할 수 없게 하는 것을 목표로 만들어졌다. 그러나 사용자가 사용하는 단말에 심어진 악성 프로그램이나, 공격자가 공격을 위해 암호화 통신에 참여할 수 있으므로 통신하는 양쪽을 신뢰할 수 없는 것이 현실이다. 이에 TPM, 스마트카드와 같은 하드웨어를 활용한 대안이 제시되고 있으나 비용증가 및 설치의 어려움의 문제를 안고 있다. 이를 해결하고자 등장한 화이트 박스 암호 기술은 소프트웨어만으로 암호 키를 안전하게 보관할 수 있고, 신뢰할 수 없는 단말에서 암호화 알고리즘이 실행되더라도 암호 키가 드러나지 않도록하는 기술이다. 암호 기술 AES 화이트박스 암호를 활용하여 기본 원리와 동작 메커니즘을 알아보자. 화이트 박스 암호 원리 암호 키가 신뢰할 수 있는 장치에서 관리된다고 가정했던 기존의 암호 메커니즘과 달리 화이트박스 암호 메커니즘에서는 끝단의 장치를 신뢰하지 않고 암호 키를 암호 알고리즘에 섞어 암호 키를 쉽게 볼 수 없게 하였다. 즉, 화이트박스 암호는 알고리즘을 큰 룩업테이블로 만들고 그 안에 암호 키를 암호 알고리즘과 뒤섞인 상태로 숨겨둠으로써 내부의 동작을 분석하더라도 암호 키를 쉽게 유추하지 못하도록 하는 기법이다. 암호 알고리즘을 하나의 큰 룩업테이블로 만들면 크기가 지나치게 커지므로, 분리하되 중간 값이 노출되지 안도록 인코딩과 디코딩을 수행한다. 인코딩 과정( )과 디코딩 과정( )이 별도의 테이블에서 계산되므로 중간 값이 노출되지 않고 원래 암호화 동작( )만 수행하는 결과와 동일하다. 안전성( ) 과정이 추가되기 때문에 동일한 암호 키를 사용하더라도 AES를 이용한 암복호화 결과와 화이트박스로 구현된 AES를 이용한 암복호화 결과는 차이가 있다. 룩업테이블 순람표(順覽表

BEAST Attack

BEAST Attack 이 TLS 1.0에서 TLS 1.1로 업그레이드되는 과정 중 중요한 변화로 초기화 벡터(IV)가 CBC 모드에서 계산되는 방식을 꼽을 수 있다. 초기화 벡터(IV)는 무엇일까. TLS는 공개 채널을 통한 암호화 키의 안전한 교환을 위한 사양으로 키 교환이 끝나면(대칭 암호화를 대신하여) 전송된 데이터의 보안을 유지한다. 대칭 암호화 알고리즘은 이제 한물간 방식이라고 평가되지만, 초기화 백터(IV)의 중요성을 이해하는 데 좋은 사례이다. 대칭 암호화 알고리즘의 대표적인 DES 알고리즘을 간단히 알아보면 블록 암호화 알고리즘으로 고정된 크기의 데이터 블록에서 동작한다는 특징이 있다. 암호화 키(8 바이트)와 함께 8 바이트의 평문을 입력 받아 8 바이트의 암호문을 출력한다. 이 암호문을 공개적으로 전송하여도 암호화 키를 모른다면 원본 문자열로 복구할 수 없으므로 안심할 수 있다. 이와 같이 모든 블록 암호는 정확하게 블록 크기에서 동작한다. 만약 데이터가 부족한 경우 쓰레기 데이터를 채워 넣어서 블록의 크기를 맞춰준다. 블록 암호의 한 가지 문제점은 결정적이라는 것이다. 예를 들어 8 바이트 문자열 sendhelp 와 8 바이트 키 password 가 주어지면 모든 DES 구현체들은 8 바이트 암호문 df a1 16 88 92 5c ad 78 를 생성한다. 이는 모든 블록 암호화 알고리즘의 자연스러운 특징으로 복호화를 위해서 이러한 예측이 가능해야하며 다른 키를 사용한다면 전혀 다른 암호문을 생성한다는 사실을 확인할 수 있다. 동일한 키를 사용하여 동일한 8 바이트 데이터를 암호화하면 출력된 암호문이 동일하다는 점을 공격자는 어떻게 악용할 수 있을까. 생각보다 컴퓨터 통신은 상당히 반복적인 경향이 있다. HTML 문서를 떠올려보자. 얼마나 많은 반복적인 8 바이트 시퀀스들이 있는지 (Ex. <div><div> ) 하나의 가설을 세워보자. 댄은 밥이 자신의 아내 킴벌리와 바람을 피우고 있다고 의심한다