개인정보처리방침
Nexa Beep(이하 “소프트웨어”)는 SosomLab(이하 “회사”)가 배포하는 Windows·macOS·Linux용 로컬 네트워크 메신저입니다. 이 개인정보처리방침은 소프트웨어가 어떤 데이터를 다루고, 어디에 저장하며, 네트워크로 무엇이 나가고, 회사가 운영하는 릴레이 서버가 무엇을 보는지를 설명합니다.
1. 요약
- 소프트웨어의 기본 동작은 같은 로컬 네트워크(LAN) 안의 기기끼리 직접 통신하는 것입니다. 이 동작에는 회사의 서버가 관여하지 않으며, 회사는 소프트웨어로부터 어떤 데이터도 수신하지 않습니다.
- 소프트웨어에는 분석·텔레메트리·광고·추적 기능이 일절 없습니다. 계정 가입도 없습니다.
- 모든 대화와 파일은 두 기기 사이에서 종단 간 암호화(Noise_XX) 되어 전달됩니다. 어떤 경로를 거치든 내용을 읽을 수 있는 것은 두 단말뿐입니다.
- 이용자가 릴레이 서버 기능을 직접 켠 경우에만(제4항) 회사가 운영하는 서버
beepd.sosomlab.com과 통신합니다. 이 서버는 대화 내용을 읽을 수 없고, 어떤 데이터도 디스크에 저장하지 않습니다. - 기기에 저장되는 대화 기록·수신 파일·연락처 정보는 전부 암호화되어 저장되며, 이용자가 직접 삭제할 수 있습니다.
2. 기기에 저장되는 데이터
소프트웨어는 실행 파일 옆 data/ 폴더(포터블) 또는 운영체제의 사용자 설정 폴더(설치형)에만 파일을 만듭니다. 어느 쪽도 쓸 수 없으면 홈 폴더의 .nexa-beep를 씁니다.
| 항목 | 내용 | 저장 방식 |
|---|---|---|
| 설정 | 테마·언어·정렬·필터·창 크기·알림·전송·서버 주소 등 이용자가 고른 옵션 | 평문 (settings.cfg — 민감한 값 없음) |
| 신원 키 | 기기의 X25519 키 쌍. 이 키의 공개키 지문이 소프트웨어에서 이용자를 가리키는 유일한 식별자입니다 | 평문 (identity.key — 다른 파일을 암호화하는 원료이므로 자신을 감쌀 수 없음 · Unix 0600) |
| 신뢰 핀 | 이용자가 만난 상대의 공개키와 신뢰 상태(핀 고정·지문 대조됨·차단) | 암호화 (trust.seg) |
| 대화 기록 | 1:1·그룹 대화의 메시지와 전송 완료 기록 | 암호화 (세그먼트 파일) |
| 격리된 수신 파일 | 승인 전 상태의 수신 파일(.beepq 봉인) | 암호화 |
| 프로필 연락처 | 이용자가 프로필에 입력한 이메일·전화번호 | 암호화 (profile.sec) |
| 프로필 이미지 캐시 | 내 아바타와 상대가 보내 준 아바타 | 암호화 |
| 오프라인 큐 | 상대가 꺼져 있을 때 보관해 둔 발신 메시지 | 암호화 |
| 상태 로그 (선택 · 기본 꺼짐) | 상태바에 표시된 문구를 날짜별 파일로 | 평문 (켠 경우에만 · 내용은 상태 문구뿐) |
암호화는 ChaCha20-Poly1305 봉투(NBSE)로 이뤄지며, 키는 이용자 기기의 신원 키에서 파생됩니다. 따라서 identity.key가 유출되면 같은 기기의 암호화 파일도 열릴 수 있습니다 — 키 파일의 보관과 백업은 이용자의 책임이며, 소프트웨어는 이를 설정 화면에 고지합니다.
이 파일들은 이용자가 릴레이 서버를 켜더라도 기기 밖으로 나가지 않습니다. data/ 폴더(또는 사용자 설정 폴더)를 삭제하면 전부 영구히 제거됩니다. 대화 하나를 삭제하면 그 대화의 데이터 키를 폐기하므로(크립토 셰레딩) 남은 바이트는 복호화할 수 없게 됩니다. 다만 SSD 웨어 레벨링이나 이용자가 만든 백업 사본에 옛 데이터가 남을 수 있으며, 소프트웨어는 물리적 삭제를 보장하지 않습니다.
소프트웨어는 시스템 시작 시 자동 실행을 위해 운영체제의 사용자 수준 등록(Windows HKCU\…\Run · macOS LaunchAgent · Linux XDG autostart)을 추가합니다. 이는 기본 켜짐이며 설정에서 끌 수 있습니다. 그 외에 레지스트리나 시스템 영역에 기록하지 않습니다.
3. 로컬 네트워크(LAN)로 나가는 데이터
3-1. 발견 패킷
소프트웨어는 같은 네트워크의 다른 이용자를 찾기 위해 UDP 멀티캐스트·브로드캐스트(기본 포트 47100)로 발견 패킷을 주기적으로 보냅니다. 이 패킷은 암호화되지 않으며 다음만 담습니다.
- 기기 공개키(지문)
- 표시 이름 — 기본값은 실명으로 추정되는 부분을 제거한 호스트명이며, 판별할 수 없으면
beep-{지문}형식입니다. 이용자가 직접 바꿀 수 있습니다. - 세션 수신 포트
- 프로필 공개 여부 플래그와 버전 번호 (프로필 내용은 들어가지 않습니다)
이메일·전화번호·실명·소개글·메시지는 발견 패킷에 절대 실리지 않습니다. 같은 네트워크의 누구나 이 패킷을 볼 수 있으므로, 소프트웨어를 실행하고 있다는 사실과 표시 이름은 같은 LAN 안에서 숨겨지지 않습니다. 고정 공개키가 주기적으로 방송되므로 같은 LAN의 관찰자가 기기를 장기간 재식별할 수 있다는 한계도 있습니다.
3-2. 세션
상대와 연결되면 TCP(기본 포트 47200)로 Noise_XX 핸드셰이크를 하고, 이후 모든 메시지·파일·프로필·전달/읽음 확인은 이 암호화 세션으로만 오갑니다. 네트워크 관찰자는 패킷의 크기와 시각은 볼 수 있지만 내용은 볼 수 없습니다.
3-3. 프로필 노출 (옵트인)
프로필의 이름·이메일·전화번호·소개글·사진은 항목별로 공개 여부를 이용자가 직접 켭니다(기본 전부 비공개). 공개로 둔 항목만 암호화 세션을 통해 연결된 상대에게 전달되며, 같은 LAN의 상대에게는 발견 직후 자동으로 프로필 교환용 세션이 세워져 전달됩니다. 공개를 끄면 다음 공지 때 상대의 캐시에서 해당 항목이 지워지지만, 이미 본 사람의 기억까지 지울 수는 없습니다.
상대가 보내 준 프로필은 “그 키의 주장”일 뿐이며 소프트웨어는 그 진위를 보증하지 않습니다.
4. 릴레이 서버 (선택 기능)
같은 LAN이 아닌 상대와 통신하려면 릴레이 서버를 거쳐야 합니다. 이 기능은 이용자가 설정 › Server에서 모드를 Managed로 바꾸고 [Test]를 눌러 성공해야만 켜집니다. 켜지 않으면 소프트웨어는 인터넷으로 어떤 통신도 하지 않습니다.
4-1. 공식 기본 서버
앱의 서버 주소 기본값은 회사가 운영하는 beepd.sosomlab.com:47300(TCP+UDP)입니다. 서버 프로그램 nexa-beepd의 소스는 소프트웨어와 같은 저장소에 공개되어 있으며, 이용자는 자신이 직접 세운 서버나 다른 서버 주소로 바꿀 수 있습니다. 공식 서버는 클라우드 사업자(Oracle Cloud Infrastructure)의 가상 머신에서 운영됩니다.
4-2. 서버가 받는 정보
서버에 접속하면 소프트웨어는 서버와도 Noise 암호화 채널을 맺고 다음을 보냅니다.
| 정보 | 내용 | 서버의 취급 |
|---|---|---|
| 회전 랑데부 ID | 기기 공개키와 UTC 날짜를 해시한 16바이트 값(어제·오늘·내일 세 개). 공개키 원본은 보내지 않으며 해시를 역산할 수 없습니다 | 접속 중에만 메모리에 보관. 연결이 끊기면 사라짐 |
| 공인 IP 주소와 포트 | 서버가 연결에서 관측하는 값. 상대와 직접 연결(홀펀칭)을 시도하도록 상대에게 전달됩니다 | 접속 중에만 메모리에 보관 |
| 채널 개설·종료와 바이트 수 | 어느 두 랑데부 ID가 언제 연결되어 얼마나 주고받았는지 | 중계 중에만 메모리에서 다룸 |
| 암호문 조각 | 홀펀칭이 실패했을 때만 서버가 대신 나르는 데이터. 두 단말 사이의 종단 암호문이라 서버는 열 수 없습니다 | 즉시 상대에게 전달 · 저장하지 않음 |
서버는 아무것도 디스크에 저장하지 않습니다. 양쪽이 동시에 접속해 있을 때만 데이터가 흐르는 파이프이며, 운영 로그를 켜더라도 연결 번호·랑데부 ID 앞 4바이트·채널 번호·바이트 수만 남깁니다. 대화 본문·파일·파일명·프로필·상대의 이름이나 소속은 서버에 닿지 않습니다.
다만 릴레이를 쓰면 “어떤 랑데부 ID가 어떤 ID와 언제 연결했는가”라는 메타데이터와 공인 IP 주소는 서버가 알게 됩니다. 내용은 몰라도 이 사실은 감출 수 없으며, 소프트웨어는 이를 문서에 명시합니다.
4-3. 서버 사용자 목록과 공개 카드 (옵트인)
릴레이 서버를 켠 상태에서 “서버 사용자에게 나를 표시” 설정(릴레이를 켠 경우 기본 켜짐 · 끌 수 있음)을 두면, 같은 설정을 켠 다른 이용자와 서버 접속만으로 서로의 목록에 나타납니다. 이때 서버는 다음을 받아 같은 설정을 켠 접속자에게만 중계합니다.
- 기기 공개키(지문)
- 공개 카드 — 프로필에서 공개로 둔 항목만(이름·이메일·소개글 · 최대 1KiB). 공개 항목이 없으면 빈 카드입니다.
서버는 카드 내용을 해석하지 않고 크기만 확인하며, 메모리에만 두었다가 연결이 끊기면 지웁니다. 이 설정을 끄면 내 정보도 중계되지 않고 다른 사람의 목록도 받지 않습니다(상호 규칙). 공개 카드를 통해 이용자의 이름·이메일·소개글이 같은 서버에 접속한 다른 이용자에게 보인다는 점을 유의하시기 바랍니다. 공개 항목은 프로필 설정에서 언제든 바꿀 수 있습니다.
4-4. 서버 신원 확인
소프트웨어는 첫 접속 때 서버의 공개키를 고정(핀)하고, 이후 키가 바뀌면 접속을 중단하고 경고합니다. 공식 서버의 핀 값은 저장소 위키에 공개되어 있어 이용자가 대조할 수 있습니다.
5. 수신 파일의 취급
상대가 보낸 파일은 승인 전까지 암호화된 격리 상태로 보관되며, 소프트웨어는 어떤 경우에도 수신 파일을 실행하거나 링크를 자동으로 열거나 아카이브를 자동으로 풀지 않습니다. Windows에서는 이용자의 PC에 설치된 백신 프로그램의 검사 인터페이스(AMSI)로 격리 파일을 검사하며, 이 검사는 이용자 PC 안에서만 이뤄집니다. 이용자가 승인한 파일만 다운로드 폴더에 실체화되고, 운영체제의 격리 표식(MotW·quarantine)이 함께 남습니다.
6. 제3자 서비스
소프트웨어는 제3자 분석·광고·크래시 보고 서비스를 사용하지 않습니다. 운영체제의 알림·트레이·자동 실행 기능을 사용하며, 이들은 각 운영체제의 정책을 따릅니다. 이용자가 직접 세운 릴레이 서버를 쓰는 경우 그 서버의 운영자는 제4-2항에 적은 범위의 정보를 보게 되며, 회사는 그 관계의 당사자가 아닙니다.
7. 아동에 관한 사항
소프트웨어는 범용 메신저로서 아동을 대상으로 하지 않습니다. 회사는 아동을 포함한 누구의 개인정보도 알면서 수집하지 않습니다.
8. 이용자의 권리
회사는 이용자의 개인정보를 보유하지 않으므로, 회사 측에 열람·정정·삭제를 요구할 대상 데이터가 존재하지 않습니다. 이 방침에서 설명한 모든 데이터는 이용자 기기 안에서 이용자가 직접 통제하며, 제2항의 방법으로 삭제할 수 있습니다. 공식 릴레이 서버가 접속 중 메모리에 두는 정보(제4항)는 연결을 끊거나 릴레이 설정을 끄는 즉시 사라집니다. 관련하여 문의사항이 있으면 아래 연락처로 알려 주시기 바랍니다.
9. 문의처
- 이메일: [email protected]
10. 방침의 변경
이 개인정보처리방침이 변경되는 경우 개정된 내용과 시행일을 이 페이지에 게시합니다. 중요한 변경 — 특히 릴레이 서버가 다루는 정보의 범위가 넓어지는 경우 — 은 시행일로부터 최소 7일 전에 공지합니다.
Privacy Policy
Nexa Beep (the “Software”) is a local-network messenger for Windows, macOS, and Linux distributed by SosomLab (the “Company”). This Privacy Policy explains what data the Software handles, where it is stored, what leaves your device over the network, and what the relay server operated by the Company can and cannot see.
1. Summary
- By default the Software communicates directly between devices on the same local network (LAN). No Company server is involved in this mode, and the Company receives no data from the Software.
- The Software contains no analytics, telemetry, advertising, or tracking. There is no account sign-up.
- Every message and file is end-to-end encrypted (Noise_XX) between the two devices. Whatever path the data takes, only the two endpoints can read it.
- The Software contacts the Company-operated server
beepd.sosomlab.comonly if you explicitly enable the relay feature (Section 4). That server cannot read your conversations and stores nothing to disk. - Conversation history, received files, and contact details kept on your device are all stored encrypted and can be deleted by you at any time.
2. Data Stored on Your Device
The Software creates files only in the data/ folder next to the executable (portable) or in your operating system’s user configuration folder (installer). If neither is writable it falls back to .nexa-beep in your home folder.
| Item | Contents | Storage |
|---|---|---|
| Settings | Options you choose: theme, language, sorting, filters, window size, notifications, transfer limits, server address | Plain text (settings.cfg — contains nothing sensitive) |
| Identity key | The device’s X25519 key pair. The fingerprint of its public key is the only identifier the Software uses for you | Plain text (identity.key — it is the root that encrypts the other files and cannot wrap itself; Unix mode 0600) |
| Trust pins | Public keys of peers you have met and their trust state (pinned, fingerprint-verified, blocked) | Encrypted (trust.seg) |
| Conversation history | Messages and completed-transfer records for 1:1 and group chats | Encrypted (segment files) |
| Quarantined received files | Received files awaiting your approval (.beepq sealed envelopes) | Encrypted |
| Profile contact details | Email address and phone number you enter in your profile | Encrypted (profile.sec) |
| Profile image cache | Your avatar and avatars sent to you by peers | Encrypted |
| Offline queue | Outgoing messages held while the recipient is offline | Encrypted |
| Status log (optional, off by default) | Status-bar text written to a daily file | Plain text (only if enabled; contains status text only) |
Encryption uses ChaCha20-Poly1305 sealed envelopes (NBSE) with keys derived from the device identity key. Consequently, if identity.key is compromised, the encrypted files on the same device can be opened as well — safeguarding and backing up the key file is your responsibility, and the Software says so in its settings screen.
None of these files leave your device, even when the relay feature is enabled. Deleting the data/ folder (or the user configuration folder) removes everything permanently. Deleting a single conversation discards that conversation’s data key (crypto-shredding), so its remaining bytes can no longer be decrypted. Old data may nevertheless survive in SSD wear-levelling areas or in backups you have made; the Software does not guarantee physical erasure.
To start at login, the Software adds a user-level autostart entry (Windows HKCU\…\Run, macOS LaunchAgent, Linux XDG autostart). This is on by default and can be turned off in settings. The Software writes nothing else to the registry or system areas.
3. Data Sent on the Local Network (LAN)
3-1. Discovery packets
To find other users on the same network, the Software periodically sends discovery packets by UDP multicast/broadcast (default port 47100). These packets are not encrypted and contain only:
- the device public key (fingerprint);
- a display name — by default your hostname with anything that looks like a real name removed, or
beep-{fingerprint}if that cannot be determined; you can change it at any time; - the session listening port;
- a flag and revision number indicating whether a profile is available (the profile contents are not included).
Email addresses, phone numbers, real names, bios, and messages are never placed in discovery packets. Because anyone on the same network can observe these packets, the fact that you are running the Software and your display name are not hidden within the LAN. Since a fixed public key is broadcast periodically, an observer on the same LAN could also re-identify the device over time.
3-2. Sessions
When you connect to a peer, the Software performs a Noise_XX handshake over TCP (default port 47200); every message, file, profile, and delivery/read receipt then travels only through that encrypted session. A network observer can see packet sizes and timing but not contents.
3-3. Profile disclosure (opt-in)
Your profile name, email, phone number, bio, and photo are each disclosed only if you switch them on individually (all off by default). Only the items you make public are sent, through the encrypted session, to peers you are connected to; for peers on the same LAN a quiet profile-exchange session is established automatically right after discovery. Turning an item off removes it from peers’ caches at the next announcement, but cannot erase what someone has already seen.
A profile received from a peer is merely “what that key claims”; the Software does not vouch for its accuracy.
4. Relay Server (Optional Feature)
Communicating with someone who is not on your LAN requires a relay server. This feature is enabled only when you set Settings › Server to Managed and press [Test] successfully. Until then the Software makes no Internet connections at all.
4-1. The official default server
The default server address in the app is beepd.sosomlab.com:47300 (TCP+UDP), operated by the Company. The server program, nexa-beepd, is open source in the same repository as the Software, and you may point the app at a server you host yourself or at any other server. The official server runs on a virtual machine provided by a cloud provider (Oracle Cloud Infrastructure).
4-2. What the server receives
When connected, the Software establishes a Noise-encrypted channel with the server and sends the following:
| Information | Contents | How the server treats it |
|---|---|---|
| Rotating rendezvous IDs | A 16-byte hash of your device public key and the UTC date (yesterday, today, tomorrow). The public key itself is never sent, and the hash cannot be reversed | Held in memory only while you are connected; gone when the connection closes |
| Public IP address and port | As observed by the server on your connection; forwarded to the peer so that a direct connection (hole punching) can be attempted | Held in memory only while connected |
| Channel open/close events and byte counts | Which two rendezvous IDs were connected, when, and how much they exchanged | Handled in memory during relaying only |
| Ciphertext fragments | Only when hole punching fails and the server must carry the data itself. This is end-to-end ciphertext between the two devices; the server cannot open it | Forwarded immediately; never stored |
The server stores nothing to disk. It is a pipe, not a buffer: data flows only while both parties are connected, and even when operational logging is turned on, only connection numbers, the first 4 bytes of rendezvous IDs, channel numbers, and byte counts are recorded. Message bodies, files, file names, profiles, and peers’ names or affiliations never reach the server.
Using the relay does mean, however, that the server learns the metadata “which rendezvous ID connected with which, and when”, along with your public IP address. It cannot see the contents, but this fact cannot be concealed, and the Software documents it openly.
4-3. Server user list and public card (opt-in)
While the relay is enabled, the setting “Show me to server users” (on by default once the relay is enabled; can be turned off) makes you and other users who have the same setting appear in each other’s lists simply by being connected to the server. For this the server receives, and relays only to other users who have the setting on:
- your device public key (fingerprint);
- a public card containing only the profile items you have made public (name, email, bio; at most 1 KiB). If nothing is public the card is empty.
The server does not interpret the card — it only checks its size — keeps it in memory only, and discards it when you disconnect. Turning the setting off stops your information from being relayed and also stops you from receiving other users’ lists (a mutual rule). Please be aware that via the public card, your name, email, and bio become visible to other users connected to the same server. You can change which items are public in your profile settings at any time.
4-4. Server identity verification
On first connection the Software pins the server’s public key; if that key ever changes, the Software refuses to connect and warns you. The official server’s pin is published in the project wiki so that you can compare it.
5. Handling of Received Files
Files sent to you are kept encrypted in quarantine until you approve them. The Software never executes a received file, never opens links automatically, and never extracts archives automatically. On Windows, quarantined files are scanned through the antivirus interface (AMSI) of whatever security product is installed on your PC; this scan takes place entirely on your machine. Only files you approve are materialized into your download folder, and they carry the operating system’s quarantine marker (Mark-of-the-Web / quarantine attribute).
6. Third-Party Services
The Software uses no third-party analytics, advertising, or crash-reporting services. It uses the operating system’s notification, tray, and autostart facilities, which are governed by each OS’s own policies. If you use a relay server hosted by someone else, that operator can see the information described in Section 4-2; the Company is not a party to that relationship.
7. Children
The Software is a general-purpose messenger and is not directed at children. The Company does not knowingly collect personal information from anyone, including children.
8. Your Rights
Because the Company holds no personal data about you, there is nothing on the Company’s side to access, correct, or delete. All data described in this Policy stays on your device under your control and can be removed as described in Section 2. Information the official relay server holds in memory while you are connected (Section 4) disappears as soon as you disconnect or turn the relay off. If you have any questions, please contact us at the address below.
9. Contact
- Email: [email protected]
10. Changes to This Policy
If this Privacy Policy changes, the revised text and its effective date will be posted on this page. Material changes — in particular any broadening of what the relay server handles — will be announced at least 7 days before they take effect.