Realm Blog

Realm + ZeroKit으로 쉽게 종단 간 암호화하기

Realm은 데이터를 쉽게 다루면서 앱에 생명을 불어넣을 수 있는 기능을 제공함으로써 훌륭한 앱을 만드는 데 도움이 되고자 노력하고 있습니다. 에러가 나기 쉬운 네트워크와 시리얼라이제이션 코드를 작성하고 유지하지 않고도, Realm 모바일 플랫폼을 사용하면 자동으로 실시간 데이터 동기화와 공유, 서버사이드 데이터 기능 등을 쉽게 적용할 수 있습니다. 또한 사용 중일 때는 HTTPS/TLS, 사용 중이 아닐 때는 AES-256 암호화를 제공하며 유연한 접근 제어 기능을 제공하므로 보안을 적용할 수 있습니다. 따라서 정말 사용자에게 유용한 기능을 개발하는 데 집중할 수 있습니다.

하지만 앱이나 유스 케이스에 따라서 더 높은 레벨의 데이터 보안이 필요한 경우도 있습니다. 이런 요구를 위해 Tresorit의 Realm 모바일 플랫폼과 통합한 새로운 ZeroKit SDK을 사용한 종단 간 암호화 기능을 소개합니다. 이제 헬스케어, 정부 기관, 금용 기관 등에서 요구하는 매우 민감한 데이터를 처리할 수 있는 레벨의 실시간 리액티브 앱을 쉽게 구축할 수 있습니다.

종단 간(엔드 투 엔드) 암호화의 이해

종단 간 암호화는 기기 간에 전송되는 데이터를 보호하기 위한 방법입니다. 전송 전에 원본 기기의 데이터를 암호화하면 중간 공격자는 전송 경로 자체가 암호화되지 않은 상황에서 이를 가로채더라도 데이터를 디코딩할 수 없습니다. 오직 암호 키를 공유하는 클라이언트만 정보에 접근할 수 있죠. 인터넷 서비스 제공 업체를 포함해서 잠재적으로 트래픽을 가로챌 수 있는 다른 소스 누구라도 해당 데이터에 포함된 정보를 볼 수 없습니다. 이는 Signal, Threema, iMessage, FaceTime 등 암호화된 채팅 애플리케이션이 표준으로 사용하는 방식입니다.

문제는 종단 간 암호화를 하려면 매우 광범위한 프로세스 집합을 구현해야 하므로 개발 시간이 많이 필요하다는 점입니다. 또한, 제대로 구현해서 테스트하지 않으면 공격자가 악용할 수 있는 결함을 남길 수도 있습니다. 종단 간 암호화를 해도 해독이 아예 불가능한 것은 아니며 단지 어려울 뿐이므로, 올바르게 종단 간 암호화를 처리해야 합니다.

Tresorit + Realm으로 쉽게 해결하기

Tresorit은 Realm 모바일 플랫폼을 위한 ZeroKit SDK 통합으로 정말 단순하고 안전하며 확장 가능한 방식으로 Realm과 통합했습니다. 클라우드 보안 서비스 구축에 대한 깊이 있는 지식을 바탕으로 ZeroKit은 모든 개발팀이 종단 간 암호화에 접근할 수 있도록 합니다.

종단 간 암호화 기능을 갖춘 안전한 사용자 인증 서비스를 제공하는 SDK가 ZeroKit의 핵심입니다. 이를 사용해서 단일 사용자 계정과 접근 권한을 받은 다른 계정을 사용해서 기기 간에 암호화된 데이터를 공유할 수 있습니다.

ZeroKit은 사용자 계정 시스템을 사용해서 클라이언트 기기 간에 암호화 키를 공유하는 원리로 동작합니다. 새 사용자가 다른 사용자의 암호화된 데이터를 볼 수 있도록 초대받으면 데이터 해독을 위한 암호화 키가 공유됩니다. 필요하다면 데이터에 다시 접근할 수 없도록 키를 취소할 수도 있습니다.

처음부터 백엔드를 다시 작성하지 않아도 Realm에 ZeroKit을 문제없이 통합할 수 있습니다. Tresorit은 양 측의 장점을 모두 모아서 ZeroKit으로 Realm 모바일 플랫폼의 동기화 기능과 함께 종단 간 암호화를 수행하는 방법을 설정하고 데이터를 실시간으로 종단 간 암호화합니다.

동작 방식

사실 동작 방식은 상당히 간단합니다. ZeroKit은 서드 파티 서비스가 동기화 세션을 인증할 수 있는 Realm 모바일 플랫폼의 기능을 사용해서 Realm과 통합됩니다. 사용자가 Realm에 로그인하면 ZeroKit 자격 증명을 통해 Realm 모바일 플랫폼의 고유한 사용자로 식별됩니다. 로그인하면 해당 기기의 사용자 로그인 세션 전체에서 해당 계정의 암호화 키를 사용할 수 있습니다.


Realm Team

Realm의 미션은 더 나은 앱을 빠르게 개발할 수 있도록 돕는 것입니다. 이를 위해 저희는 개발자들이 실시간 협업, 가상 현실, 라이브 데이터 동기화, 오프라인 경험, 메시징 등 정교하고 강력한 기능을 쉽게 개발할 수 있도록 하는 개발 도구와 플랫폼을 제공하고 있습니다.

저희는 모바일 인터넷이 수많은 사용자와 보다 많은 디바이스가 속한 개방형 네트워크와 이들 간의 실시간 상호 작용으로 진화할 것이라고 믿으며, 개발자가 이같은 방향으로 발전할 수 있도록 돕기 위해 저희 제품들을 개발하고 있습니다.

이런 개발 뉴스를 더 만나보세요