Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

네트워크 보안에서 RC4란? 개념부터 동작 원리, 보안 취약점까지

네트워크 보안에서 RC4란 무엇일까?

RC4(Rivest Cipher 4)는 1987년 암호학자 론 리베스트(Ron Rivest)가 RSA Security를 위해 개발한 스트림 암호(stream cipher)입니다. 'ARC4' 또는 'ARCFOUR'(Alleged RC4, 추정 RC4)라고도 불리며, 컴퓨터 암호학 교과서라면 어디에서나 찾아볼 수 있는 대표적인 암호 알고리즘입니다.

RC4는 구조가 단순하면서도 처리 속도가 빨라 한때 소프트웨어 기반 암호화에 가장 널리 사용된 스트림 암호 중 하나였습니다. 하지만 최근 수년간 여러 보안 취약점이 발견되면서 현재는 안전하지 않은 알고리즘으로 분류되고 있습니다.

RC4의 동작 원리

RC4는 의사 난수(pseudo-random) 방식으로 임의의 비트 스트림, 즉 출력 스트림을 생성합니다. 다른 스트림 암호와 마찬가지로 이 키스트림을 평문과 XOR(배타적 논리합) 연산하여 암호문을 만듭니다.

암호화 과정은 크게 두 단계로 이루어집니다.

  • 키 스케줄링 알고리즘(KSA): 초기 키를 준비하는 단계로, 키 길이는 일반적으로 40~256비트 사이에서 가변적으로 선택할 수 있습니다.
  • 의사 난수 생성 알고리즘(PRGA): 키를 기반으로 의사 난수 바이트열을 생성하고, 이를 데이터 바이트와 XOR 연산해 암호문을 만듭니다.

연산이 바이트 단위로 이루어지며, 출력 1바이트를 생성하는 데 8~16회 정도의 연산만 필요하기 때문에 매우 빠른 속도를 자랑합니다.

RC4의 주요 특징

  • 키 길이를 40~256비트 범위에서 자유롭게 선택 가능 (일반적으로 64비트 또는 128비트 사용)
  • 소프트웨어로 쉽게 구현할 수 있는 단순한 구조
  • 바이트 지향(byte-oriented) 연산 방식
  • 빠른 암복호화 속도

RC4는 어디에 사용되었나?

RC4는 실제 환경에서 가장 널리 쓰인 암호 시스템 중 하나로, 1980년대 도입 이후 수많은 소프트웨어와 표준 프로토콜에 채택되었습니다.

  • SSL/TLS: 1995년부터 SSL에서 사용되었으며, 이후 TLS에서도 오랫동안 지원되었습니다. 웹사이트와 주고받는 메시지를 암호화하는 데 활용되었습니다.
  • WEP(Wired Equivalent Privacy): IEEE 802.11 무선 LAN 표준에 포함된 무선 보안 프로토콜로, RC4를 핵심 암호로 사용합니다.
  • WPA: 2003년 등장한 WPA의 초기 버전(TKIP) 역시 RC4 기반으로 설계되었습니다.
  • Microsoft Office 등 일반 응용 프로그램의 문서 암호화
  • 무선 공유기의 WEP 또는 WPA 기반 암호화 설정

WEP과 RC4의 관계

WEP은 RC4 스트림 암호를 사용하는 대표적인 사례입니다. 스트림 암호는 짧은 키로 무한에 가까운 의사 난수 키스트림을 생성하고, 이를 평문과 XOR하여 암호문을 만듭니다. 그런데 바로 이 운영 방식 때문에 WEP은 여러 종류의 공격에 취약해졌고, 결국 무선 보안 표준에서 제외되었습니다.

RC4는 왜 위험한가?

RC4의 근본적인 문제는 출력 바이트의 편향(bias)입니다. RC4가 생성하는 의사 난수 바이트들은 완전히 무작위처럼 보이지 않고 통계적 편향을 포함하고 있습니다. 이러한 편향의 존재는 오랫동안 알려져 있었지만, 실제 공격으로 이어질 정도로 심각하다고 여겨지지는 않았습니다.

그러나 2011년 BEAST 공격이 공개되면서 상황이 달라졌습니다. TLS 1.0 환경에서 RC4를 우회적인 완화책으로 사용하던 시기도 있었지만, 이후 RC4 자체의 취약점이 본격적으로 악용 가능한 수준까지 밝혀지면서 입지를 잃었습니다. XOR 연산 기반의 구조 특성상 공격자가 일부 평문 바이트를 알 수 있다면 암호문만으로 원문의 일부를 추정할 수도 있습니다.

결국 RC4는 현재 극히 일부 응용 프로그램에서만 사용되며, 짧은 데이터 스트림에는 아예 부적합하다고 평가되어 사실상 도태된 알고리즘입니다.

DES와 RC4의 차이점

  • DES: 대표적인 블록 암호(block cipher)로, 3DES의 기반이 되었습니다. 많은 대칭 블록 암호의 원리가 되는 파이스텔(Feistel) 구조를 따릅니다.
  • RC4: 널리 사용된 스트림 암호(stream cipher)로, 데이터를 고정된 블록이 아닌 연속적인 흐름 단위로 암호화합니다.

즉, 두 알고리즘은 같은 대칭키 암호 계열에 속하지만 데이터를 처리하는 단위와 방식이 근본적으로 다릅니다.

마무리: RC4, 그리고 현재의 교훈

RC4는 단순함과 속도 덕분에 수십 년간 SSL, TLS, WEP 등 인터넷과 무선 통신 보안의 중심에 있었던 알고리즘입니다. 그러나 출력값의 통계적 편향이라는 구조적 약점이 드러나면서 더 이상 안전하게 사용할 수 없게 되었습니다.

RC4의 사례는 과거에 검증된 암호 기술이라 할지라도 연구가 진전되면 언제든 무너질 수 있음을 보여줍니다. 오늘날 보안 시스템을 설계할 때는 AES-GCM과 같이 현재까지 검증된 강력한 암호 방식을 사용하고, RC4 같은 레거시 알고리즘은 반드시 제거하는 것이 권장됩니다.