교과서적인 RSA와 심각하게 허술한 보안 상태인 QQ 브라우저

얼마전에 텐센트가 중국 기업 최초로 시총 5천억달러를 돌파했다는 뉴스[1]를 봤는데, 바이두, 알리바바와 함께 천하삼분지계를 노리는 세 회사 중에서 텐센트가 제일 잘 나가는 모양이다.

해커뉴스[2]에서 텐센트의 QQ 브라우저가 얼마나 보안에 취약한지에 대해 설명하는 arxiv의 글[3]을 봤는데, 와 진짜 대단하네-_- 텐센트가 중국 정부의 검열에 엄청난 기여를 하고 있는 것 같다. ㅎㅎ 시총 5천억달러의 위업이 무색해지는 순간이다.

내용[3]을 보니 QQ브라우저는 텐센트 서비스로 로그인 하는 순간에 IMEI, IMSI, 와이파이 맥주소, 와이파이 SSID, 안드로이드 ID, 방문한 모든 페이지의 URL 등등의 개인정보를 전송한다고 한다-_-

QQ 브라우저는 PRNG 알고리즘으로 AES를 쓴다고 하는데, 그냥 쓰는게 아니라 89999999이하의 난수를 생성하는 nextInt(89999999) 함수 앞에 문자열 10000000을 붙여 사용하여 엔트로피를 줄여 쓴다(즉, 원래 경우의 수인 2128보다 작게 줄여 쓴다)고 한다. 경우의 수가 작으면 그만큼 뚫기도 쉬워진다.

이 뿐만 아니라, QQ 브라우저가 쓰는 RSA 알고리즘은 겨우 128비트(!) 밖에 안 되는데, 합성수 245406417573740884710047745869965023463 을 쓰고 있다고 한다. 내가 가지고 있는 maple의 ifactor 함수[4]로 시험삼아 돌려보니 1초만에

245406417573740884710047745869965023463 = 14119218591450688427 * 17381019776996486069

이라고 바로 인수분해 된다-_- 1024비트 합성수도 불안하다고 난리치는 세상에 128비트라니… ㅋ

게다가 QQ 브라우저의 RSA 알고리즘은 완전히 교과서 그대로인 RSA (즉, textbook RSA)라서 padding이나 일체의 보완책이 없기 때문에 매우 뚫기 쉽다고 한다. RSA를 교과서 내용 그대로만 쓰는 경우에는 매우 취약하다는 건 처음 알았네-_-

비대칭 암호의 경우, 공격자가 암호장비와 복호장비가 별도로 확보되는 상황이 있는데, 암호장비에 적절한 평문을 넣어 공격하는 방법이 Chosen-plaintext attack이고, 복호장비에 적절한 암호문을 넣어 공격하는 방법이 Chosen-ciphertext attack(CCA)이다. 이 때, 적절한 암호문을 융통성있게 잘 넣어 보는 공격법이 Adaptive chosen-ciphertext attack이라고 하는데, 업계에서는 CCA2라는 약자로 부르는 것 같다. 이런 건 처음 알았음. ㅎㅎ

저자는 글[3]에서 CCA2를 이용하면 교과서적인 RSA가 얼마나 뚫기 쉬운지 이야기하고 있는데, 그 밖에도 알려진 다양한 공격법으로 뚫리는지에 대한 이야기를 하고 있다. 음… ㅋ

 


[1] 연합뉴스 텐센트, 中 IT기업 최초로 시가총액 5천억弗 돌파 2017/11/21 09:51
[2] Breaking Textbook RSA Used to Protect the Privacy of Millions of Users (hacker news)
[3] Jeffrey Knockel, Thomas Ristenpart, Jedidiah Crandall, “When Textbook RSA is Used to Protect the Privacy of Hundreds of Millions of Users”, arXiv:1802.03367 [cs.CR]
[4] ifactors (maplesoft.com)