들여다보기: 아키텍처 개요

Dropbox는 확장성 있고 안전한 인프라스트럭처 전반에 걸쳐 안전한 데이터 전송, 암호화, 네트워크 구성, 애플리케이션 수준의 제어 환경 등 여러 계층의 보호 기능이 분산되어 있습니다.

파일 인프라스트럭처

Dropbox 사용자는 데스크톱, 웹사이트, 모바일 클라이언트, Dropbox와 연결된 타사 애플리케이션 등의 다양한 인터페이스를 통해 언제든지 파일과 폴더에 액세스할 수 있습니다. 각 인터페이스는 액세스가 간단하면서도 데이터를 처리하고 보호하는 보안 설정과 기능을 갖추고 있습니다. 모든 클라이언트는 보안 서버와 연결되어 파일로의 액세스를 제공하고, 다른 사람들과의 파일 공유를 지원합니다. 또한, 클라이언트는 파일이 추가되거나, 변경되거나, 삭제됐을 때 계정에 연결된 장치를 업데이트합니다.

Dropbox 분산 파일 인프라스트럭처

Dropbox 파일 인프라스트럭처의 구성 요소

메타데이터 서버

메타데이터로 불리는 사용자 데이터에 관한 특정한 기본 정보는 Dropbox의 자체 스토리지 서비스에 보관되며, 사용자 계정에 있는 데이터의 인덱스 역할을 합니다. 메타데이터에는 이메일 주소, 이름, 장치 이름 등의 기본 계정 정보와 사용자 정보가 포함됩니다. 변경내용 기록, 복구, 동기화와 같은 기능을 지원하는 파일 이름, 파일 유형 등의 파일 기본 정보도 메타데이터에 포함됩니다.

메타데이터 데이터베이스

파일 메타데이터는 MySQL 기반 데이터베이스 서비스에 저장되며, 필요 시 샤딩과 복제를 거쳐 성능과 고가용성 요건을 충족합니다.

블록 서버

Dropbox는 기존의 암호화 방식보다 한층 강화된 고유의 보안 메커니즘으로 사용자 데이터를 보호합니다. 블록 서버는 Dropbox 애플리케이션에 있는 파일을 블록으로 나눠 각 블록을 강력한 암호로 암호화하고, 수정된 버전 간 내용이 변경된 블록만 동기화합니다. 파일이 새롭게 생성되거나 기존 파일에 변경이 감지되면 Dropbox 애플리케이션이 블록 서버에 변경 사항을 통지하고, 새롭게 생성되거나 변경된 파일 블록은 처리를 거쳐 블록 스토리지 서버로 전송됩니다. 블록 서버는 파일과 미리보기를 사용자에게 전송하는 역할도 합니다.

블록 스토리지 서버

파일의 실제 콘텐츠는 암호화된 블록으로 블록 스토리지 서버에 저장됩니다. 파일의 실제 콘텐츠는 암호화된 블록으로 블록 스토리지 서버에 저장됩니다. Dropbox 클라이언트는 파일 콘텐츠를 전송하기 전에 파일을 블록으로 나눠 저장에 대비합니다. 블록 스토리지 서버는 내용 주소화 기억 장치(CAS) 시스템의 역할을 하며 해시값을 토대로 암호화된 파일 블록을 불러옵니다.

미리보기 서버

미리보기 서버는 파일의 미리보기를 생성하는 역할을 합니다. 미리보기는 파일이 사용자의 장치에 빠르게 표시될 수 있도록 파일을 다른 형식으로 변환한 것을 말합니다. 미리보기 서버는 블록 스토리지 서버에서 파일 블록을 불러와 미리보기를 생성합니다. 파일 미리보기 요청이 전송되면 미리보기 서버는 미리보기 스토리지 서버에서 캐시로 저장된 미리보기를 불러와 이를 블록 서버로 전송합니다. 최종적으로 미리보기는 블록 서버에서 사용자에게 전송됩니다.

미리보기 스토리지 서버

캐시로 저장된 미리보기는 암호화된 형태로 미리보기 스토리지 서버에 저장됩니다.

알림 서비스

알림 서비스는 Dropbox 계정의 변경 사항을 모니터링하는 별도의 서비스로, 이 단계에서는 어떤 파일 데이터나 메타데이터도 저장되거나 전송되지 않습니다. 각 클라이언트는 알림 서비스에 롱 폴링 방식의 연결을 설정한 후 대기합니다. Dropbox 파일에 변경 사항이 생기면 알림 서비스는 롱 폴링 연결을 종료해 관련 클라이언트로 변경 사항이 감지됐다는 신호를 보냅니다. 연결 종료는 클라이언트가 메타데이터 서버에 안전하게 연결되어야 파일의 변경 사항을 동기화할 수 있다는 것을 의미합니다.

Dropbox Paper 인프라스트럭처

Dropbox 사용자는 웹/모바일 클라이언트나 Dropbox Paper 애플리케이션에 연결된 타사 애플리케이션을 통해 언제든지 Paper 문서에 액세스할 수 있습니다. 모든 클라이언트는 보안 서버와 연결되어 파일로의 액세스를 제공하고, 다른 사람들과의 파일 공유를 지원합니다. 또한, 클라이언트는 파일이 추가되거나, 변경되거나, 삭제됐을 때 계정에 연결된 장치를 업데이트합니다.

Dropbox Paper 분산 파일 인프라스트럭처

Dropbox Paper 인프라스트럭처의 구성 요소

Paper 애플리케이션 서버

Paper 애플리케이션 서버는 사용자 요청을 처리하고, 수정된 Paper 문서의 변경 사항을 사용자에게 전송하며, 알림 서비스를 실행하는 역할을 합니다. Paper 애플리케이션 서버가 수정된 내용을 Paper 데이터베이스로 전송하면 변경 사항은 영구 저장소에 보관됩니다. Paper 애플리케이션 서버와 Paper 데이터베이스 간의 통신은 강력한 암호로 암호화됩니다.

Paper 데이터베이스

Paper 문서의 실제 콘텐츠와 Paper 문서에 관한 특정한 메타데이터는 Paper 데이터베이스의 영구 저장소에서 암호화됩니다. 여기에는 Paper 댓글, 할 일 등 문서에 담긴 콘텐츠뿐 아니라 제목, 공유 자격과 권한, 프로젝트와 폴더 연계, 기타 정보 등 Paper 문서에 관한 정보도 포함됩니다. Paper 데이터베이스는 필요 시 샤딩과 복제를 거쳐 성능과 고가용성 요건을 충족합니다.

Paper 이미지 스토리지 서버

Paper 문서에 업로드된 이미지는 Paper 이미지 스토리지 서버에 저장되고 유휴 상태에서 암호화됩니다. Paper 애플리케이션과 Paper 이미지 스토리지 서버 간의 이미지 데이터 전송은 암호화된 세션에서 이뤄집니다.

미리보기 서버

미리보기 서버는 Paper 문서에 업로드된 이미지와 문서에 삽입된 하이퍼링크의 미리보기를 생성합니다. Paper 문서에 업로드된 이미지의 경우, 미리보기 서버는 암호화된 경로를 통해 Paper 이미지 스토리지 서버에 저장된 이미지 데이터를 불러옵니다. Paper 문서에 삽입된 하이퍼링크의 경우, 미리보기 서버는 소스 링크가 지정한 암호화 방식을 사용해 이미지 데이터를 불러와 미리보기를 생성합니다. 최종적으로 미리보기는 블록 서버에서 사용자에게 전송됩니다.

미리보기 스토리지 서버

Paper는 Dropbox 인프라스트럭처 도표에 설명된 미리보기 스토리지 서버를 사용해 캐시로 저장된 이미지 미리보기를 보관합니다. 캐시로 저장된 미리보기 모음은 암호화된 형태로 미리보기 스토리지 서버에 저장됩니다.

Dropbox는 내부 보안팀과 외부 보안 전문업체를 통해 위험 요소와 취약점을 파악하고 이를 보완해 나가며 서비스를 보호합니다. 이들은 정기적으로 애플리케이션, 네트워크, 기타 보안에 관한 테스트와 감사를 시행해 Dropbox의 백엔드 네트워크를 안전하게 유지합니다. 또한, Dropbox는 책임 공개 정책을 통해 보안상의 취약점 발견과 신고를 장려하고 있습니다.

데이터 센터

Dropbox의 기업 시스템과 운영 시스템은 미국 내 외부 위탁 서비스업체의 데이터 센터와 관리 서비스 공급업체에 위치해 있습니다. Dropbox 인프라스트럭처의 물리적, 환경적, 운영적 보안은 이러한 외부 서비스 공급업체에서 관리하며, 외부 데이터 센터에 위치한 Dropbox 인프라스트럭처의 논리적 보안, 네트워크 보안, 애플리케이션 보안은 Dropbox가 관리합니다.

암호화

유휴 상태의 Dropbox 파일과 Dropbox Paper 문서는 256bit 고급 암호 표준(AES) 방식으로 암호화됩니다. Dropbox 앱(현재 기준으로 데스크톱, 모바일, API, 웹사이트)과 서버 간에 전송되는 데이터의 경우, Dropbox는 보안 소켓 계층(SSL)/전송 계층 보안(TSL) 데이터 전송 방식을 사용해 128bit 이상의 고급 암호 표준(AES) 암호화 방식으로 보호된 보안 터널을 생성합니다. 이와 비슷하게, Paper 클라이언트(모바일, API, 웹)와 호스팅된 서비스 간에 전송되는 데이터는 SSL/TLS를 통해 암호화됩니다.

인증서 피닝

Dropbox는 HTTP 공개 키 피닝을 지원하는 최신 브라우저와 Dropbox의 데스크톱/모바일 클라이언트 시나리오 대부분에 인증서 피닝을 실행합니다. 인증서 피닝은 연결된 서비스가 진짜인지 사칭인지를 확인하는 추가적인 검사입니다. Dropbox는 이 기술을 사용해 사용자 활동을 염탐하려는 전문적인 해커들의 공격을 방지합니다.

완전 순방향 비밀성

Dropbox는 강력한 암호화 방식과 완전 순방향 비밀성을 통해 Dropbox가 제어하는 엔드포인트(데스크톱과 모바일)와 최신 브라우저를 보호합니다. 완전 순방향 비밀성은 비공개 SSL 키를 사용해 이전 인터넷 트래픽 암호를 해독할 수 없게 하는 보안 방식으로, 각 세션을 이전의 모든 세션과 단절해 Dropbox 암호화 통신의 보안을 한층 더 강화합니다. 또한, Dropbox는 웹에서 모든 인증 쿠키를 안전한 것으로 표시하고, HSTS(HTTP Strict Transport Security)를 활성화합니다.

키 관리

Dropbox의 키 관리 인프라스트럭처는 키로의 직접적인 액세스를 최소한으로 제한해 운영상·기술상·절차상 보안을 유지하도록 설계되었습니다. 분산 처리를 위해 암호화 키의 생성, 교환, 저장 과정은 여러 곳에 분산됩니다.

Dropbox는 복잡성을 줄이고, 고급 제품 기능을 지원하고, 암호를 철저히 통제하기 위해 사용자를 대신해 파일 암호화를 관리합니다. 파일 암호화 키는 운영 시스템 인프라스트럭처 보안 제어 환경과 보안 정책을 통해 생성되고, 저장되고, 보호됩니다. 운영 시스템은 쌍으로 짝지어진 고유의 SSH 키로만 액세스할 수 있고, SSH 키의 보호는 보안 정책과 절차로 규정되어 있습니다. 보안 공개 키 교환 프로세스는 내부 시스템에서 관리되며, 비공개 키는 안전하게 저장됩니다.

Dropbox Business 보안 백서에서 Dropbox의 제어 기능과 가시성 기능을 더 자세하게 확인할 수 있습니다.