원격 데스크톱 프로토콜
1. 개요
1. 개요
원격 데스크톱 프로토콜(RDP)은 마이크로소프트가 개발한 사유 프로토콜이다. 이 프로토콜의 주요 용도는 네트워크를 통해 한 컴퓨터가 다른 컴퓨터의 그래픽 사용자 인터페이스(GUI)를 원격으로 제어하고 표시할 수 있게 하는 것이다. 사용자는 마치 원격 컴퓨터 앞에 직접 앉아 있는 것처럼 해당 시스템의 데스크톱 환경, 응용 프로그램, 파일 등에 접근하고 조작할 수 있다.
RDP는 ITU-T T.128 애플리케이션 공유 프로토콜을 기반으로 확장되어 만들어졌다. 기본적으로 TCP 포트 3389를 사용하여 통신한다. 이 프로토콜은 주로 마이크로소프트 윈도우 운영 체제 제품군의 원격 관리 및 접근을 위해 설계되었으며, 윈도우 서버의 원격 데스크톱 서비스(과거의 터미널 서비스)와 윈도우 클라이언트의 원격 데스크톱 연결 기능의 핵심 기술로 활용된다.
클라이언트 측면에서는 윈도우 모바일을 포함한 대부분의 윈도우 버전에 기본적으로 포함되어 있다. 또한 리눅스, 유닉스, 맥 오에스 텐(macOS) 등 다양한 운영 체제를 위한 타사 RDP 클라이언트 소프트웨어도 존재하여, 플랫폼 간 원격 접속이 가능하다.
이 프로토콜은 화면 데이터 전송, 키보드와 마우스 입력 전달, 오디오 리다이렉션, 프린터 및 클립보드 공유 등 다양한 기능을 제공한다. 이를 통해 사용자는 물리적으로 떨어진 위치에서도 사무실 컴퓨터나 서버에 접속하여 업무를 수행할 수 있으며, IT 관리자는 다수의 서버를 중앙에서 효율적으로 관리할 수 있다.
2. 버전 역사
2. 버전 역사
2.1. 초기 버전 (4.0 ~ 5.2)
2.1. 초기 버전 (4.0 ~ 5.2)
원격 데스크톱 프로토콜의 첫 번째 버전인 버전 4.0은 마이크로소프트가 ITU-T T.128 애플리케이션 공유 프로토콜을 기반으로 개발하였다. 이 프로토콜은 "터미널 서비스"라는 이름으로 윈도우 NT 4.0 서버, 터미널 서버 에디션에 처음 도입되었다. 이는 다른 컴퓨터의 그래픽 사용자 인터페이스에 접속할 수 있는 기반을 마련한 중요한 출발점이었다.
버전 5.0은 윈도우 2000 서버에 포함되어 출시되었다. 이 버전에서는 로컬 프린터로의 인쇄 기능 지원이 추가되었으며, 네트워크 대역폭 사용 효율을 개선하는 데 주력하였다. 이후 버전 5.1은 윈도우 XP 프로페셔널에 도입되어 24비트 색상 지원과 원격 세션에서의 사운드 재생 기능을 제공하기 시작했다.
버전 5.2는 윈도우 서버 2003에 포함되었다. 이 버전은 서버의 콘솔 모드에 직접 연결하는 기능, 세션 디렉터리 지원, 그리고 로컬 리소스 매핑 기능을 도입하였다. 또한 보안 강화를 위해 서버 인증과 터미널 서버 통신 암호화를 목적으로 트랜스포트 레이어 시큐리티 1.0을 최초로 지원하기 시작했다.
2.2. 주요 개선 버전 (6.0 ~ 7.0)
2.2. 주요 개선 버전 (6.0 ~ 7.0)
원격 데스크톱 프로토콜 버전 6.0은 마이크로소프트의 윈도우 비스타 운영 체제와 함께 도입되었다. 이 버전은 기존의 전체 데스크톱 세션 연결 외에 '원격 프로그램' 기능을 추가하여, 사용자가 특정 응용 프로그램만을 원격으로 실행하고 로컬 컴퓨터의 창처럼 사용할 수 있게 했다. 또한 윈도우 프레젠테이션 파운데이션 응용 프로그램의 원격 실행을 지원하고, 다중 모니터 환경과 대형 데스크톱 해상도를 활용할 수 있게 개선했다. 보안 측면에서는 트랜스포트 레이어 시큐리티 1.0 연결을 기본적으로 지원하여 통신 암호화를 강화했다.
버전 6.1은 2008년 초에 공개되어 윈도우 서버 2008과 윈도우 비스타 서비스 팩 1에 포함되었다. 윈도우 XP 서비스 팩 3 사용자에게는 클라이언트 기능만 제공되었다. 이 버전은 주로 성능과 안정성 향상에 중점을 두었다.
2009년 중반에 공개된 버전 7.0은 윈도우 7과 윈도우 서버 2008 R2의 핵심 요소로 자리 잡았다. 이 시점부터 공식 명칭이 '터미널 서비스'에서 '원격 데스크톱 서비스'로 변경되었다. RDP 7.0은 사용자 경험을 크게 향상시킨 여러 기능을 도입했는데, 윈도우 미디어 플레이어의 멀티미디어 콘텐츠 리다이렉션, 양방향 오디오 지원, 진정한 의미의 다중 모니터 지원(각 모니터를 독립적으로 활용), 그리고 윈도우 에어로 글래스 효과의 원격 렌더링을 포함한다. 또한 '원격 데스크톱 쉬운 인쇄' 기능으로 프린터 드라이버 호환성 문제를 크게 줄였다.
RDP 7.0 클라이언트는 윈도우 XP 서비스 팩 3과 윈도우 비스타 서비스 팩 1 이상 버전에도 별도로 설치하여 사용할 수 있게 했다. 그러나 이 고급 클라이언트는 윈도우 서버 2003이나 윈도우 XP x64 에디션에서는 작동하지 않으며, 윈도우 2000 서버를 실행하는 서버에 연결하는 것도 지원하지 않는다. 에어로 글래스, 양방향 오디오 등의 고급 기능 대부분은 윈도우 7 엔터프라이즈 또는 얼티밋 에디션에서만 완전히 활용 가능했다.
3. 기능
3. 기능
원격 데스크톱 프로토콜의 핵심 기능은 사용자가 네트워크를 통해 원격 컴퓨터의 그래픽 사용자 인터페이스를 마치 로컬에서 사용하는 것처럼 제어하고 상호작용할 수 있게 하는 것이다. 이를 위해 화면 전송, 입력 장치 리다이렉션, 다양한 로컬 자원 공유 기능을 제공한다. 기본적으로 높은 색상 깊이(최대 32비트)의 원격 화면 표시를 지원하며, RC4 암호화 알고리즘을 통한 128비트 암호화와 트랜스포트 레이어 시큐리티를 활용한 보안 통신을 기본으로 한다.
주요 기능으로는 로컬 자원을 원격 세션 내에서 사용할 수 있게 하는 다양한 리다이렉션이 있다. 오디오 리다이렉션은 원격 컴퓨터에서 재생되는 사운드를 로컬 스피커로 출력하게 한다. 파일 시스템 리다이렉션과 프린터 리다이렉션을 통해 로컬의 파일과 프린터를 원격 데스크톱 환경에서 직접 접근하고 사용할 수 있다. 또한 클립보드 공유 기능을 통해 텍스트나 이미지를 로컬과 원격 시스템 사이에 쉽게 복사하여 붙여넣을 수 있다.
버전 6.0부터 도입된 중요한 기능으로는 원격 프로그램이 있다. 이 기능은 전체 원격 데스크톱 화면을 공유하는 대신, 특정 응용 프로그램만을 마치 로컬 컴퓨터에서 실행되는 것처럼 별도의 창으로 제공한다. 이를 통해 사용자는 원격 응용 프로그램과 로컬 응용 프로그램을 창 단위로 혼합하여 사용하는 통합된 환경을 경험할 수 있다. 또한 다중 모니터 지원이 강화되어 원격 시스템의 여러 디스플레이 구성을 로컬에서 그대로 활용할 수 있게 되었다.
고급 기능에는 터미널 서비스 게이트웨이를 통한 보안된 인터넷 접속, 윈도우 프레젠테이션 파운데이션 응용 프로그램의 원격 실행 지원, 그리고 장치 리다이렉션 프레임워크의 확장을 들 수 있다. 이 확장된 프레임워크는 스마트카드, USB 장치, 스캐너 등 보다 다양한 주변기기를 원격 세션에서 사용할 수 있는 기반을 제공한다. 이러한 기능들은 주로 윈도우 서버의 원격 데스크톱 서비스 역할과 함께 관리 및 구성된다.
4. 보안 및 취약점
4. 보안 및 취약점
원격 데스크톱 프로토콜은 기본적으로 RC4 암호화 알고리즘을 사용한 128비트 암호화를 제공하며, 이후 버전에서는 트랜스포트 레이어 시큐리티를 지원하여 통신 보안을 강화했다. 그러나 마이크로소프트의 사유 프로토콜이라는 특성상, 구현 상의 결함이나 설정 오류로 인해 여러 보안 취약점이 지속적으로 발견되고 보고되어 왔다. 특히 기본 TCP 포트인 3389번 포트를 통한 공격이 빈번히 시도된다.
주요 취약점으로는 자격 증명을 탈취하거나 서버에 대한 무단 접근을 허용하는 원격 코드 실행 취약점이 다수 존재한다. 이러한 취약점들은 블루킵과 같은 악성 소프트웨어가 시스템에 침투하는 경로로 악용되기도 했다. 마이크로소프트는 정기적인 보안 업데이트를 통해 이러한 취약점에 대한 패치를 배포하고 있다.
보안을 강화하기 위한 조치로는 기본 포트 변경, 네트워크 레벨 인증 활성화, 강력한 암호화 수준 설정, 그리고 방화벽 규칙을 통한 접근 제한 등이 권장된다. 또한 가상 사설망을 통해 RDP 세션을 터널링하는 방법도 외부 공격으로부터 보호하는 효과적인 방법 중 하나이다.
5. 클라이언트 및 서버 지원
5. 클라이언트 및 서버 지원
원격 데스크톱 프로토콜의 클라이언트와 서버 지원은 주로 마이크로소프트의 윈도우 운영 체제 생태계를 중심으로 이루어진다. 기본적으로 윈도우 서버 제품군은 원격 데스크톱 서버 역할을 수행하며, 윈도우 프로페셔널 이상의 클라이언트 버전에는 원격 데스크톱 연결 클라이언트가 내장되어 있다. 예를 들어, 윈도우 서버 2008부터는 서비스 명칭이 터미널 서비스에서 원격 데스크톱 서비스로 변경되었고, 윈도우 10 및 윈도우 11에서는 향상된 기능을 제공하는 최신 버전의 클라이언트를 포함하고 있다.
마이크로소프트 플랫폼 외에도 다양한 오픈 소스 및 타사 클라이언트 구현체가 존재한다. 리눅스, 유닉스, 맥OS 사용자들은 rdesktop, FreeRDP와 같은 소프트웨어를 통해 윈도우 서버에 접속할 수 있다. 또한 안드로이드와 iOS를 위한 모바일 클라이언트 앱도 공식 및 비공식적으로 제공되어, 스마트폰이나 태블릿에서도 원격 데스크톱 세션을 이용할 수 있게 한다.
서버 측면에서, 순수한 RDP 서버 구현은 마이크로소프트의 독점 기술이지만, 리눅스 환경에서는 xrdp와 같은 서버 소프트웨어를 통해 RDP 클라이언트의 연결을 받아 X 윈도 시스템 세션을 제공하는 방식으로 호환성 서비스를 구현하기도 한다. 이는 마이크로소프트 생태계 외부에서도 프로토콜의 광범위한 활용 가능성을 보여준다.
