Ruah개인정보처리방침
Ruah(구 Finger Chat)는 Boram Capital이 운영합니다. 문의: boramcapital@gmail.com. English below.
수집하는 개인정보: 없음
Ruah에는 계정, 회원가입, 로그인, 비밀번호가 없습니다. 이름, 휴대폰 번호, 이메일, 연락처, 위치, 광고 식별자, 기기 고유 식별자, 푸시 토큰, 충돌 보고 데이터를 수집하지 않습니다. 이용자가 주고받는 메시지·사진·동영상은 아래와 같이 기기에서 종단간 암호화되며, 운영자는 그 내용을 열어볼 수 없습니다. 개인정보 수집 동의 절차도 없습니다.
기기 내 번역 (Google ML Kit)
iOS·Android 앱의 메시지 번역은 Google ML Kit으로 단말기 안에서 처리되며, 메시지 내용은 기기 밖으로 나가지 않습니다. 다만 ML Kit은 번역 언어 모델을 내려받고, 진단·사용 분석 목적으로 기기 정보(제조사·모델·OS 버전), 앱 정보(앱 식별자·버전), 사람이나 기기를 식별하려는 목적이 아닌 설치별 식별자, 성능 지표, 오류 코드, 설정한 번역 언어를 HTTPS로 Google에 보냅니다. 이 정보는 이용자와 연결되지 않고, 광고·추적에 쓰이지 않으며, 제3자에게 판매·공유되지 않습니다. 웹 버전에는 번역 기능과 ML Kit이 없습니다.
앱 업데이트 (Expo)
iOS·Android 앱은 실행할 때 Expo(EAS Update)에 새 화면 업데이트가 있는지 HTTPS로 확인하고, 있으면 내려받습니다. 이때 운영체제 종류, 앱 런타임 버전, 업데이트 채널, 앱 설치 시 만들어지는 임의의 설치별 식별자가 전송됩니다. 이 식별자는 이름·전화번호·광고 식별자와 무관하고 이용자와 연결되지 않으며, 광고·추적에 쓰이지 않습니다. 메시지와 키는 이 요청에 포함되지 않습니다. 웹 버전은 이 확인을 하지 않습니다.
참여자 기기에 보관되는 정보
닉네임, 방 제목, 메시지, 사진·동영상은 보내기 전에 단말기에서 AES-256-GCM으로 암호화됩니다. iOS·Android 앱(2.1.0부터)은 주고받은 메시지, 사진·동영상과 그 미리보기를 각 참여자 기기 안의 앱 전용 저장공간에 암호화된 상태로 보관합니다. 이 암호화에 쓰는 방별 키와 방마다 새로 만드는 P-256 키, 방 세션은 기기의 보안 저장소(iOS 키체인·Android 키스토어 기반, 이 기기 전용)에만 있으며 서버로 보내지 않습니다. 방장이 방을 삭제하거나 아래 30일 규칙으로 방이 소각되어 그 신호가 기기에 도착하거나(방장에게 내보내진 경우 포함), 이용자가 직접 방을 나가면 그 방의 메시지·사진·동영상·키가 모두 파쇄되며 복구할 수 없습니다. 앱을 삭제하면 기기에 저장된 대화와 사진·동영상도 지워집니다. Android 기기 백업에는 포함되지 않으며, iOS 백업에 들어가더라도 키가 기기를 떠나지 않으므로 열 수 없는 암호문뿐입니다. 웹 버전은 기기에 아무것도 보관하지 않으며 탭을 닫으면 사라집니다.
사진·동영상
사진·동영상은 운영체제의 사진 선택 화면으로 이용자가 고른 항목만 앱에 전달됩니다. Ruah는 사진 보관함 전체, 카메라, 마이크 권한을 요청하지 않습니다. 사진은 보내기 전에 최대 2048px JPEG로 다시 만들어 위치 등 촬영 정보(EXIF)가 빠집니다. 동영상은 고른 파일 그대로 보내므로 파일 안의 정보는 받는 사람에게 전달됩니다(서버는 읽을 수 없음). 파일마다 새 256비트 키로 암호화하며, 그 키는 종단간 암호화된 메시지 안에만 담겨 서버로는 가지 않습니다. 한 파일은 최대 100MB입니다.
릴레이 서버와 72시간 규칙
릴레이는 실시간 전달을 위해 암호문을 중계할 뿐 키가 없어 내용을 읽을 수 없습니다. 받는 사람이 잠시 오프라인이면, 그 사람에게 갈 암호화된 메시지는 릴레이 메모리에, 암호화된 사진·동영상은 릴레이 디스크에 보관했다가 받는 기기가 수신을 확인(ACK)하는 즉시 파기합니다. 확인이 없더라도 최대 72시간이 지나면 파기합니다. 방이 삭제되면 그 방의 대기 메시지는 즉시 파기되고, 대기 중인 암호화 사진·동영상은 72시간 규칙에 따라 파기됩니다.
방장을 포함한 참여자 누구도 30일 동안 접속하지 않은 방은 72시간 규칙과 별도로 릴레이에서 자동 소각됩니다. 그 방의 좌석·세션·대기 메시지·초대 코드와 서버 디스크의 암호화 사진·동영상이 즉시 파기되고, 그 뒤 접속하는 기기에서는 그 방의 대화와 키가 파쇄됩니다. 운영자가 서비스 운영상 방을 종료하는 경우에도 같은 방식으로 파기됩니다.
서버를 다시 시작해도 방이 끊기지 않도록, 릴레이는 사람을 식별하지 않는 전달용 정보만 서버 디스크(운영자 전용 폴더)에 보관합니다: 불투명한 방 ID와 세션 ID, 세션 토큰의 해시(토큰 자체는 저장하지 않음), 각 기기의 공개키, 암호화된 짧은 초대 코드, 대기 중인 암호화 파일의 방·받는 세션 ID·크기·시각, 30일 규칙에 쓰는 방의 마지막 접속 시각. 이 정보는 방이 삭제·소각되거나 파일이 파기되면 함께 사라집니다. 메시지 내용과 키는 여기에 저장하지 않습니다. 데이터베이스에는 불투명한 방/제어 해시, 일회용 티켓 해시와 상태(발급·사용·회수·만료), 해당 시각만 남깁니다. 티켓은 발급 후 24시간이 지나면 만료됩니다. 웹 서버는 접속 기록(IP 포함)을 남기지 않으며 릴레이로 IP 주소를 전달하지 않습니다.
연락처와 초대
초대를 문자로 보낼 때 이용자가 직접 고른 연락처의 이름과 전화번호만 운영체제의 연락처 선택 화면을 통해 앱에 전달됩니다. Ruah는 주소록 접근 권한을 요청하지 않고, 전화번호를 저장하거나 서버로 보내지 않으며, 문자 앱이나 공유 화면을 여는 데에만 사용합니다. 초대 링크의 일회용 티켓은 주소의 # 뒤에 있어 웹 서버로 전송되지 않습니다.
제공자
Hetzner(서버 호스팅, 위 72시간 암호문 보관 포함), Supabase(위 운영 기록을 담는 데이터베이스), Apple·Google(앱 배포), Google(앱 내 번역 기능의 ML Kit 진단 정보 처리), Expo(앱 업데이트 배포). 인터넷 통신 특성상 통신·클라우드 제공자는 각자의 약관에 따라 일시적인 네트워크 정보를 처리할 수 있으며, 서비스 전환 이전의 과거 제공자 백업은 해당 제공자의 보존 정책에 따라 만료됩니다.
이용자의 권리
Ruah는 이용자를 식별할 수 있는 정보를 보관하지 않으므로 열람·삭제할 계정 정보가 없습니다. 대화와 사진·동영상은 각 참여자 기기에만 있으며, 방장이 방을 삭제하거나, 30일 동안 아무도 접속하지 않아 방이 소각되거나, 이용자가 방을 나가면 그 기기에서 파쇄됩니다. 서버의 암호문은 수신 확인 즉시, 늦어도 72시간 안에 파기됩니다. ML Kit 진단 정보는 Google이 자체 보존 정책에 따라 처리하며 Ruah는 이를 열람하거나 이용자와 연결할 수 없습니다. 문의는 boramcapital@gmail.com으로 보내 주세요.
Privacy policy
Ruah (formerly Finger Chat) is operated by Boram Capital. Contact: boramcapital@gmail.com.
Personal data we collect: none
Ruah has no accounts, registration, login or passwords. We do not collect names, phone numbers, email addresses, contacts, location, advertising identifiers, device identifiers, push tokens or crash data. The messages, photos and videos you exchange are end-to-end encrypted on your device as described below, and the operator cannot open them. There is no consent form because we collect no personal data.
On-device translation (Google ML Kit)
Message translation in the iOS and Android apps runs on your device with Google ML Kit; message text never leaves the device. ML Kit does download language models and, for diagnostics and usage analytics, sends Google device information (manufacturer, model, OS version), app information (app identifier and version), per-installation identifiers that are not intended to identify a person or device, performance metrics, error codes and the configured translation languages over HTTPS. This information is not linked to you, is not used for advertising or tracking, and is not sold or shared with third parties. The web version has no translation and no ML Kit.
App updates (Expo)
When the iOS or Android app starts, it asks Expo (EAS Update) over HTTPS whether a new interface update is available and downloads it if so. The request carries the platform, the app runtime version, the update channel and a random per-installation identifier created when the app is installed. That identifier is unrelated to your name, phone number or advertising identifiers, is not linked to you and is not used for advertising or tracking. Messages and keys are never part of this request. The web version does not perform this check.
Kept on participants' devices
Your nickname, room title, messages, photos and videos are encrypted on your device with AES-256-GCM before they are sent. From version 2.1.0, the iOS and Android apps keep the messages, photos, videos and their previews you send and receive, encrypted, in app-private storage on each participant's device. The per-room key for that storage, each room's freshly generated P-256 key and the room session live only in the device's secure storage (backed by the iOS Keychain or Android Keystore, this device only) and are never sent to any server. When the host's room deletion, or the end of a room under the 30-day rule below, reaches your device (including when the host removes you), or when you leave the room yourself, that room's messages, photos, videos and keys are all shredded and cannot be recovered. Uninstalling the app also removes the conversations, photos and videos stored on the device. They are excluded from Android device backups; an iOS backup can only contain ciphertext, because the key never leaves the device. The web version keeps nothing on the device and disappears when you close the tab.
Photos and videos
Only the items you pick in the operating system's photo picker are handed to the app. Ruah does not request access to your whole photo library, the camera or the microphone. Photos are re-encoded to JPEG (at most 2048 px) before sending, which removes location and other capture data (EXIF). Videos are sent as the file you picked, so information inside that file reaches the recipients (the server cannot read it). Each file is encrypted with a fresh 256-bit key that travels only inside an end-to-end encrypted message and never reaches the server. A file can be at most 100 MB.
Relay server and the 72-hour rule
The relay forwards ciphertext for live delivery and has no keys, so it cannot read content. When a recipient is briefly offline, encrypted messages for that person are held in relay memory and encrypted photos and videos on the relay's disk, and each is destroyed as soon as the recipient's device confirms receipt (ACK). Without a confirmation they are destroyed after 72 hours at most. When a room is deleted, its waiting messages are destroyed immediately and its waiting encrypted photos and videos under the 72-hour rule.
A room that no participant, the host included, has connected to for 30 days is destroyed on the relay automatically, separately from the 72-hour rule. Its seats, sessions, waiting messages, invite codes and the encrypted photos and videos on the server's disk are destroyed at once, and any device that connects afterwards shreds that room's conversations and keys. The same applies when the operator ends a room for service operation.
So that rooms survive a server restart, the relay keeps only delivery data that does not identify anyone on the server's disk (an operator-only folder): opaque room and session IDs, hashes of session tokens (never the tokens), each device's public key, encrypted short invite codes, for waiting encrypted files the room, recipient session IDs, size and time, and each room's last connection time for the 30-day rule. These are removed when the room is deleted or destroyed, or the file is destroyed. Message content and keys are never stored there. The database keeps only an opaque room/control hash, one-time ticket hashes with status (issued, redeemed, revoked, expired) and their timestamps. Tickets expire 24 hours after issue. The web server keeps no access logs (including IP addresses) and does not forward IP addresses to the relay.
Contacts and invitations
When you invite someone by SMS, only the name and phone numbers of the one contact you pick are passed to the app by the operating system's contact picker. Ruah does not request address-book permission, does not store phone numbers or send them to any server, and uses them only to open your messaging app or share sheet. The one-time ticket in an invite link sits after the # in the address, so it is never sent to the web server.
Providers
Hetzner (server hosting, including the 72-hour ciphertext hold above), Supabase (database holding the operational records above), Apple and Google (app distribution), Google (ML Kit diagnostics for in-app translation), Expo (app update delivery). As with any internet service, network and cloud providers may process transient network metadata under their own terms. Legacy provider backups from before the service change expire under those providers' retention schedules.
Your rights
Ruah keeps no information that identifies you, so there is no account data to access or delete. Conversations, photos and videos exist only on participants' devices and are shredded there when the host deletes the room, the room is destroyed after 30 days without any connection, or you leave it. Ciphertext on the server is destroyed on receipt confirmation and within 72 hours at the latest. ML Kit diagnostics are handled by Google under its own retention policy; Ruah cannot access them or link them to you. Questions: boramcapital@gmail.com.