Privacy Policy
Notice of revision — announced 2026-10-12 · effective 2026-10-19
This revision brings the Policy fully in line with what the Software actually does. The main changes are:
- New section on file sharing (Section 3-4): with sync enabled, the paths of files you copy are propagated to your approved devices, and file contents are transferred from the source device when you paste on the receiving device (files of 50 MB or less are fetched in advance in the background). This corrects the earlier statement that file contents and file paths were not propagated.
- Where received files are stored (Section 2): received files are saved by default in a
Nexa Clipfolder under your Downloads folder, as ordinary, unencrypted files.- New section on licensing (Section 2-3): from v0.2.0, licenses are checked offline only; the Company receives the name, email address, and device code you send by email when you request a license.
- Autostart corrected (Section 2-2): starting at login is on by default and is registered at first launch.
About our advance-notice commitment: Section 9 of this Policy promises at least 7 days’ notice before the kinds of items propagated by sync are expanded. However, the file-sharing feature shipped first in v0.1.4, released on 2026-09-14, and this Policy was not updated in time. From that date until this revision was posted, the Policy’s description therefore differed from the Software’s actual behaviour. Throughout that period, files travelled only between devices you had approved after turning sync on yourself, over an end-to-end encrypted channel, and neither the Company nor the relay server could see file names, paths, or contents. If you do not want file sharing, you can turn it off now in Settings › Sync, regardless of the effective date (Section 3-4). This page describes how the Software has actually behaved since v0.1.4; the revised terms take effect on 2026-10-19.
Nexa Clip (the “Software”) is a clipboard manager 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, what the relay server operated by the Company can and cannot see, and what the Company receives when you request a license.
1. Summary
- By default the Software works entirely on your device. Unless you turn on sync, it makes no network connections at all, and the Company receives no data from the Software. License checks are also performed offline only (Section 2-3).
- The Software contains no analytics, telemetry, advertising, or tracking. There is no account sign-up.
- Your clipboard history is stored encrypted on your device (on by default) and can be deleted by you at any time.
- Sync works only if you explicitly enable it (Sections 3 and 4), and even then the Software exchanges clipboard items and files only with devices you have approved, end-to-end encrypted (Noise). Whatever path the data takes, only the two devices can read it.
- When you turn sync on, file sharing is on by default. The paths of files you copy are propagated to your approved devices, and file contents are transferred from the source device when you paste on another device (Section 3-4). Received files are stored in the receiving device’s Downloads folder as ordinary, unencrypted files.
- If you choose a relay server to reach devices on other networks, the Software contacts the Company-operated server
beepd.sosomlab.com. That server cannot read your clipboard or your files and stores nothing to disk. - The only time the Company receives your personal information is when you yourself send an email to request a license or ask a question (Section 2-3).
2. Data Stored on Your Device
The Software’s data folder is the data/ folder next to the executable (portable), data\ next to the install folder (Windows installer), ~/Library/Application Support/nexa-clip (macOS), or ~/.config/nexa-clip (Linux package). When started with --profile, a separate profiles/<name> subfolder is used. The only things created outside the data folder are the received-files folder and the machine-wide license folder, both listed separately in the table below.
| Item | Contents | Storage |
|---|---|---|
| Clipboard history | Text, rich formats (HTML/RTF), native formats, images, and file paths you copied, plus each item’s source app, time, copy count, and pin state. Items received from other devices also record the source device name and file sizes and modification times | Encrypted (append-only segments + content-addressed blobs · ChaCha20-Poly1305 · per-file-type domain-separated keys) |
| Image thumbnails | Reduced images shown in the list | Encrypted (blob) |
| Device key | A 32-byte random secret that wraps the history master key | Plain (device.key — it is the root that encrypts the other files and cannot wrap itself; Unix mode 0600) |
| Settings | Capture, storage, paste, shortcut, appearance, search, and sync (including file sharing) options. If sync is enabled this includes your handle and pairing passphrase | Plain (settings.cfg · Unix mode 0600) |
| Sync identity key | An X25519 key pair identifying this device, created only when sync is enabled | Plain (identity.key · Unix mode 0600) |
| Device list | Public-key fingerprint, name, OS, first/last seen time, and approval state of devices met through sync | Plain (devices.txt) |
| Server pin | The relay server’s public key, pinned on first connection | Plain (server.pin) |
| Portal restore token (Linux) | The desktop-portal approval token used for paste injection | Plain (user configuration folder · Unix mode 0600) |
| Received files (from v0.1.4 · when sync is enabled) | Files received from your other approved devices, exactly as they were. While a download is in progress, a resumable .part file exists | Plain — ordinary, unencrypted files. Default location is outside the data folder: <OS Downloads folder>/Nexa Clip/ (or cache/files in the data folder if no Downloads folder is found). Can be changed with the save-folder option in Settings › Sync |
| License file (from v0.2.0 · only if you install one) | A license file signed and issued by the Company. It contains the licensee’s name, tier and type, issue date, update-until and expiry dates, and, if device-bound, device codes | Plain (license/ in the data folder, or the machine-wide folder — Windows %ProgramData%\nexa\nexa-clip, macOS /Library/Application Support/nexa/nexa-clip, Linux /etc/nexa/nexa-clip) |
Encrypted storage is on by default, with keys derived from device.key. Consequently, if your entire data folder is exposed, the device.key in the same folder can open the encrypted history — this design protects against segment/blob files leaking on their own and against residual bytes after deletion, not against an attacker who has your whole device. The Software documents this limitation in its repository.
Unlike your history, received files are not encrypted, and anyone or any program with access to that device can open them. Received files are deleted automatically, oldest first, once the save folder exceeds its size limit (2,000 MB by default), but they are not removed by deleting history items, “Clear history on exit”, or “Delete all records”. Delete any files you do not want to keep from the save folder yourself.
None of these files leave your device except as described in Sections 3 and 4, even when sync is enabled. You can delete individual history items from the list, wipe everything with “Clear history on exit” or “Delete all records” in settings, and permanently remove history, settings, and keys by deleting the data folder (the received-files folder and the machine-wide license folder must be deleted separately). If the device key changes, the old history is set aside as index.locked rather than deleted automatically. Old data may nevertheless survive in SSD wear-levelling areas or in backups you have made; the Software does not guarantee physical erasure.
2-1. What is not captured
- Content carrying the operating system’s conceal marker used by password managers (Windows
ExcludeClipboardContentFromMonitorProcessing, macOSorg.nspasteboard.ConcealedType, KDEx-kde-passwordManagerHint) is not recorded by default. - Content copied from apps on your excluded-apps list, and anything copied while capture is paused, is not recorded.
- Items larger than the configured size limit are not recorded.
Passwords, authentication tokens, and personal identifiers can pass through the clipboard. Sensitive content copied from apps that do not send the marker may end up in your history, so you should manage it with the excluded-apps list, retention period, and clear-on-exit settings.
2-2. System registration and permissions
Starting at login is on by default. On first launch the Software registers a user-level autostart entry (Windows HKCU\…\Run, macOS LaunchAgent, Linux XDG autostart); you can turn it off in Settings › General, which removes the entry. If you remove the entry outside the app, the Software does not re-register it and switches the setting off instead. Instances started with --profile never register autostart.
On macOS the Software asks for Accessibility permission to inject the paste keystroke and, when sync is enabled, for Local Network access to find your other devices on the same network. On Linux (GNOME/Wayland) it asks for desktop-portal approval for global shortcuts and key injection. It writes nothing else to the registry or system areas; the machine-wide license folder (Section 2) is used only if you install a license there.
2-3. Licensing (from v0.2.0)
- Checks are offline only. The Software verifies the signature of a license file on your device and sends no data to the Company or any other server to check or activate a license. Noncommercial use needs no license file.
- Device code: to bind a commercial license to a particular device, the Software computes, when needed, a device code that is a one-way hash (SHA-256) of the operating system’s machine identifier (Windows
MachineGuid, macOSIOPlatformUUID, Linux/etc/machine-id). The original identifier is never exported, and the device code is not saved to a file. - Request code: the request code created on the license screen in Settings › Advanced › About (or with
--license request) contains the device code, the OS type, the app version, the date it was created, and — if you enter them — your name and email address. A request code is encoded, not encrypted, so anyone holding it can read this information. The Software only copies the request code to your clipboard; it never transmits it anywhere. - What the Company receives: if you email a request code to [email protected], the Company receives the information in the code together with the email itself (sender address, message body, and so on). The Company uses this information only to issue, verify, and renew licenses and to correspond with you about them, keeps it for as long as needed to manage the licenses it has issued and to answer enquiries, and for any longer period required by applicable law. You may request access, correction, or deletion at any time (Section 7). Emails pass through the email services used by you and by the Company, whose own policies apply.
3. Data Sent on the Local Network (LAN) — when sync is enabled
3-1. Discovery beacons
With sync enabled, the Software broadcasts a UDP beacon (port 47301) every 5 seconds (30 seconds once a peer is connected) to find your other devices on the same network. These packets are not encrypted and contain only:
- a hash tag derived from your handle and pairing passphrase — the handle and passphrase themselves are never sent, and the tag cannot be reversed;
- the device public key;
- the TCP port on which sessions are accepted.
Clipboard contents, files, settings, and device names are never placed in beacons. Because anyone on the same network can observe these packets, the fact that you are running the Software with sync enabled, and your device public key, are not hidden within the LAN.
3-2. Sessions
When one of your devices is found, the Software performs a Noise handshake over TCP; device-name exchange, approval information, clipboard items, file paths, and file contents then travel only through that encrypted session. The same end-to-end encrypted session is used whether the devices connect directly on the same network or through a relay server (Section 4). A network observer can see packet sizes and timing but not contents; when files are exchanged, the fact that a large transfer took place, and its volume, may be observable.
3-3. Nothing is sent before approval
Even for a connected device, the Software exchanges no clipboard items or files until you approve that device in the device list. Approval is done once per device after visually comparing the 6-digit code shown on both screens, and can be revoked or the device deleted at any time.
Approved devices receive:
- plain text you copy;
- images you copy (converted to PNG; scaled down if the longer side exceeds 4,096 pixels);
- the list of paths of files you copy, with each file’s size and modification time (from v0.1.4 · Section 3-4). File names and folder structure are part of the paths;
- the contents of those files — only when the receiving device requests them (from v0.1.4 · Section 3-4).
The following are not propagated: rich-text formats such as HTML/RTF formatting; file cut operations (items cut in Windows Explorer or a Linux file manager stay only in this device’s history); and items above the size limit (32 MB). Received items are stored in your history together with the source device name and are never sent back to the sender.
3-4. File sharing (from v0.1.4)
The Propagate file paths (sync.files) and Receive file contents (sync.file_contents) options in Settings › Sync are on by default. Because sync itself is off by default, however, no file moves anywhere until you turn sync on and approve a device. Each option can be turned off separately.
- On copy — only paths are sent. When you copy files, their paths, sizes, and modification times (up to 1,000 files by default) are propagated to your approved devices. No file contents are sent at this point.
- On paste — contents are fetched from the source device. When you paste that item as files on a receiving device, the receiving device requests the contents from the source device, receives them block by block, and then pastes real files. The source device answers only requests from approved devices and only for paths it has itself propagated. If the source device is off or not connected, the contents cannot be retrieved and only the path text is pasted.
- Small files are fetched in advance. Files of 50 MB or less (default) are fetched slowly in the background (by default at no more than 1,024 KB/s) even before you paste. In other words, while sync and file sharing are on, small files copied on one device may be stored, contents included, on your other approved devices even if you never paste them. You can set the prefetch limit to 0 (no prefetch) in settings.
- Size limit: files fetched on paste are limited to 1,000 MB by default; above that, only the path text is provided.
- Transport and encryption: file paths and contents travel only through the same Noise end-to-end encrypted session as clipboard items. Even through a relay server, the server only forwards ciphertext and can neither see nor store file names, paths, or contents (Section 4-2); all it can learn is the number of bytes exchanged.
- Storage of received files: received files are saved as is, unencrypted, at the “Received files” location in the table in Section 2, and reused when you paste the same file again. The Software does not quarantine or scan received files for malware and saves executable files unchanged.
4. Relay Server (Optional Feature)
Syncing with a device that is not on the same network requires a relay server. If you set the relay server in Settings › Sync to None, the Software makes no Internet connections at all. A relay connection is kept only after you select a server and press [Test] successfully.
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 not part of the Software; it is a separate open-source program published from the Company’s Nexa Beep repository. 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). It is shared with Nexa Beep users, but the two applications cannot see each other on the server (their rendezvous domains and handshake prologues differ).
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, and a 16-byte value derived from your handle and pairing passphrase by PBKDF2 key stretching (yesterday, today, tomorrow for each). The public key, handle, and passphrase themselves are never sent, and the hashes 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 your other device 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 (including file transfer volume) | Handled in memory during relaying only |
| Ciphertext fragments | Only when a direct connection fails and the server must carry the data itself (clipboard items, file paths, file contents). This is end-to-end ciphertext between your 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. Clipboard contents, file names, file paths, file contents, device names, settings, your handle, and your passphrase never reach the server.
Using the relay does mean, however, that the server learns the metadata “which rendezvous ID connected with which, when, and how much was exchanged”, 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 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. Third-Party Services
The Software uses no third-party analytics, advertising, or crash-reporting services. It uses the operating system’s clipboard, tray, autostart, accessibility (key injection), local-network, and desktop-portal facilities, which are governed by each OS’s own policies. If you use a relay server hosted by yourself or by someone else, that operator can see the information described in Section 4-2; the Company is not a party to that relationship. License-request and enquiry emails pass through the email services used by you and by the Company.
6. Children
The Software is a general-purpose productivity tool and is not directed at children. The Company does not knowingly collect personal information from anyone, including children.
7. Your Rights
The Company never receives your personal information through the Software. The only information about you that the Company holds is the emails you yourself send to request a license or ask a question, and the information in them (Section 2-3), together with records of licenses it has issued. You may request access to, correction or deletion of, or suspension of processing of that information using the contact below. Note that deleting records needed to verify a valid commercial license may make later reissue or verification difficult.
All other data described in this Policy stays on your devices under your control and can be removed as described in Section 2. Items and files propagated to your other approved devices are stored there and must be deleted on those devices. Information the official relay server holds in memory while you are connected (Section 4) disappears as soon as you disconnect or turn sync off. If you have any questions, please contact us at the address below.
8. Contact
- Email: [email protected]
9. 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 addition to the kinds of items propagated by sync, or any broadening of what the relay server handles — will be announced at least 7 days before they take effect. The Company has explained in the notice at the top of this page how it failed to keep this commitment, and from now on will revise and announce this Policy before releasing a version that includes such a change.
Revision history
- 2026-10-12 (announced · effective 2026-10-19): Corrected descriptions that differed from actual behaviour, as of v0.2.1.
- New file-sharing section (Section 3-4): propagation of file paths, sizes, and modification times; transfer of contents from the source device on paste; background prefetch of files of 50 MB or less; default values of the related settings (on once sync is enabled); end-to-end encryption and what the relay server cannot see
- Propagated items corrected (Section 3-3): removed “file contents and file paths are not propagated” and listed what is still not propagated (formatting, file cut)
- Stored data added (Section 2): received files (
Nexa Clipunder the Downloads folder · unencrypted · not removed by deleting history) and the license file - New licensing section (Section 2-3): offline checks, device code, contents of the request code, and what the Company receives when you request a license by email and why
- Autostart corrected (Section 2-2): on by default and registered at first launch; macOS Local Network permission added
- Your rights updated (Section 7); explanation of the missed advance-notice commitment (top of page)
- 2026-09-07: First published
개인정보처리방침
개정 안내 — 2026-10-12 공고 · 2026-10-19 시행
이번 개정은 소프트웨어가 실제로 하는 일을 빠짐없이 설명하기 위한 것입니다. 주요 변경은 다음과 같습니다.
- 파일 공유 안내 신설(제3-4항): 동기화를 켜면 승인한 기기 사이에 복사한 파일의 경로가 전파되고, 받는 기기에서 붙여넣을 때(50MB 이하는 백그라운드에서 미리) 파일 내용이 원본 기기에서 전송됩니다. 종전의 “파일 내용·파일 경로는 전파하지 않는다”는 설명을 바로잡았습니다.
- 받은 파일의 저장 위치 추가(제2항): 받은 파일은 기본적으로 다운로드 폴더 아래
Nexa Clip폴더에 암호화되지 않은 일반 파일로 저장됩니다.- 라이선스 안내 신설(제2-3항): v0.2.0부터 라이선스는 오프라인으로만 확인되며, 이용자가 라이선스를 요청하며 이메일로 보내는 이름·이메일·기기 코드를 회사가 받게 됩니다.
- 자동 시작 정정(제2-2항): 로그인 시 자동 시작은 기본으로 켜져 있으며 첫 실행 때 등록됩니다.
사전 공지 약속에 관하여: 이 방침 제9항은 동기화로 전파되는 항목의 종류가 늘어나면 시행 7일 전에 공지하기로 약속하고 있습니다. 그러나 파일 공유 기능은 2026-09-14에 배포된 v0.1.4에 먼저 포함되었고, 방침은 그에 맞춰 제때 개정되지 않았습니다. 따라서 그날부터 이번 개정본을 게시할 때까지 방침의 설명은 실제 동작과 달랐습니다. 이 기간에도 파일은 이용자가 동기화를 켜고 직접 승인한 기기 사이에서만, 종단 간 암호화된 채널로 오갔으며, 회사와 릴레이 서버는 파일 이름·경로·내용을 볼 수 없었습니다. 파일 공유를 원하지 않으면 시행일과 관계없이 지금 바로 설정 › 동기화에서 끌 수 있습니다(제3-4항). 이 페이지의 설명은 v0.1.4 이후 소프트웨어의 실제 동작이며, 개정 내용은 2026-10-19부터 시행됩니다.
Nexa Clip(이하 “소프트웨어”)는 SosomLab(이하 “회사”)가 배포하는 Windows·macOS·Linux용 클립보드 매니저입니다. 이 개인정보처리방침은 소프트웨어가 어떤 데이터를 다루고, 어디에 저장하며, 네트워크로 무엇이 나가고, 회사가 운영하는 릴레이 서버가 무엇을 보는지, 그리고 라이선스를 요청할 때 회사가 무엇을 받는지를 설명합니다.
1. 요약
- 소프트웨어의 기본 동작은 이용자 기기 안에서만 이뤄집니다. 동기화를 켜지 않는 한 소프트웨어는 어떤 네트워크 통신도 하지 않으며, 회사는 소프트웨어로부터 어떤 데이터도 수신하지 않습니다. 라이선스 확인도 오프라인으로만 합니다(제2-3항).
- 소프트웨어에는 분석·텔레메트리·광고·추적 기능이 일절 없습니다. 계정 가입도 없습니다.
- 클립보드 이력은 이용자 기기에 암호화되어 저장되며(기본 켜짐), 이용자가 직접 삭제할 수 있습니다.
- 동기화는 이용자가 설정에서 직접 켠 경우에만(제3·4항) 동작하며, 그때도 이용자가 승인한 기기하고만 종단 간 암호화(Noise) 로 클립보드 항목과 파일을 주고받습니다. 어떤 경로를 거치든 내용을 읽을 수 있는 것은 두 기기뿐입니다.
- 동기화를 켜면 파일 공유도 기본으로 켜집니다. 복사한 파일의 경로가 승인한 기기에 전파되고, 그 기기에서 붙여넣을 때 파일 내용이 원본 기기에서 전송됩니다(제3-4항). 받은 파일은 받는 기기의 다운로드 폴더에 암호화되지 않은 일반 파일로 저장됩니다.
- 다른 네트워크의 기기와 만나기 위해 이용자가 릴레이 서버를 선택한 경우 회사가 운영하는 서버
beepd.sosomlab.com과 통신합니다. 이 서버는 클립보드 내용과 파일을 읽을 수 없고, 어떤 데이터도 디스크에 저장하지 않습니다. - 회사가 이용자의 개인정보를 받는 경우는 이용자가 라이선스 요청이나 문의를 위해 직접 이메일을 보낼 때뿐입니다(제2-3항).
2. 기기에 저장되는 데이터
소프트웨어의 데이터 폴더는 포터블 판은 실행 파일 옆 data/ 폴더, Windows 설치본은 설치 폴더 옆 data\, macOS는 ~/Library/Application Support/nexa-clip, Linux 패키지는 ~/.config/nexa-clip입니다. --profile 옵션으로 실행하면 그 아래 profiles/<이름>이 따로 쓰입니다. 데이터 폴더 밖에 만드는 것은 아래 표에 따로 적은 받은 파일 저장 폴더와 기기 공용 라이선스 폴더뿐입니다.
| 항목 | 내용 | 저장 방식 |
|---|---|---|
| 클립보드 이력 | 이용자가 복사한 텍스트·서식(HTML/RTF)·원본 형식·이미지·파일 경로와 각 항목의 출처 앱·시각·복사 횟수·고정 여부. 다른 기기에서 받은 항목은 출처 기기 이름과 파일 크기·수정 시각을 함께 기록 | 암호화 (append-only 세그먼트 + 내용 주소 blob · ChaCha20-Poly1305 · 파일 종류별 도메인 분리 키) |
| 이미지 섬네일 | 목록에 보여 주기 위해 줄인 이미지 | 암호화 (blob) |
| 기기 키 | 이력 암호화의 마스터 키를 감싸는 32바이트 무작위 비밀 | 평문 (device.key — 다른 파일을 암호화하는 원료이므로 자신을 감쌀 수 없음 · Unix 0600) |
| 설정 | 캡처·보관·붙여넣기·단축키·모양·검색·동기화(파일 공유 포함) 옵션. 동기화를 켠 경우 아이디(핸들)와 페어링 암호가 포함됩니다 | 평문 (settings.cfg · Unix 0600) |
| 동기화 신원 키 | 동기화를 켠 경우 이 기기를 가리키는 X25519 키 쌍 | 평문 (identity.key · Unix 0600) |
| 기기 목록 | 동기화로 만난 기기의 공개키 지문·이름·OS·처음/마지막 본 시각·승인 여부 | 평문 (devices.txt) |
| 서버 핀 | 릴레이 서버의 공개키(첫 접속 때 고정) | 평문 (server.pin) |
| 포털 승인 토큰 (Linux) | 붙여넣기 주입을 위한 데스크톱 포털 승인 복원 토큰 | 평문 (사용자 설정 폴더 · Unix 0600) |
| 받은 파일 (v0.1.4부터 · 동기화를 켠 경우) | 승인한 다른 기기에서 받은 파일의 원본 그대로. 받는 도중에는 이어 받기용 .part 파일이 생깁니다 | 평문 — 암호화되지 않은 일반 파일. 기본 위치는 데이터 폴더 밖인 <OS 다운로드 폴더>/Nexa Clip/ (다운로드 폴더를 찾지 못하면 데이터 폴더의 cache/files). 설정 › 동기화의 저장 폴더로 바꿀 수 있음 |
| 라이선스 파일 (v0.2.0부터 · 설치한 경우만) | 회사가 서명해 발급한 라이선스 파일. 라이선스 보유자 이름, 등급·종류, 발급일·업데이트 기한·만료일, 기기에 묶인 경우 기기 코드가 들어 있습니다 | 평문 (데이터 폴더의 license/, 또는 기기 공용 폴더 — Windows %ProgramData%\nexa\nexa-clip · macOS /Library/Application Support/nexa/nexa-clip · Linux /etc/nexa/nexa-clip) |
암호화 저장은 기본 켜짐이며, 키는 device.key에서 파생됩니다. 따라서 데이터 폴더 전체가 유출되면 같은 폴더의 device.key로 암호화 이력을 열 수 있습니다 — 이 방식은 세그먼트·blob 파일만 따로 유출되는 경우와 삭제 후 잔존 바이트로부터 보호하는 것이지, 기기 자체를 손에 넣은 공격자를 막지 못합니다. 소프트웨어는 이 한계를 저장소 문서에 명시합니다.
받은 파일은 이력과 달리 암호화되지 않으며, 그 기기에 접근할 수 있는 사람이나 프로그램은 누구나 열 수 있습니다. 받은 파일은 저장 폴더의 용량 상한(기본 2,000MB)을 넘으면 오래된 것부터 자동으로 지워지지만, 이력 항목 삭제·“종료 시 이력 삭제”·“기록 모두 삭제”로는 지워지지 않습니다. 남기고 싶지 않은 파일은 저장 폴더에서 이용자가 직접 삭제해야 합니다.
이 파일들은 동기화를 켜더라도 제3·4항에 적은 것 외에는 기기 밖으로 나가지 않습니다. 이력 항목은 목록에서 개별 삭제할 수 있고, 설정의 “종료 시 이력 삭제”와 “기록 모두 삭제”로 전부 지울 수 있으며, 데이터 폴더를 삭제하면 이력·설정·키가 영구히 제거됩니다(받은 파일 저장 폴더와 기기 공용 라이선스 폴더는 따로 삭제해야 합니다). 기기 키가 바뀌면 옛 이력은 index.locked로 보관될 뿐 자동으로 삭제되지 않습니다. SSD 웨어 레벨링이나 이용자가 만든 백업 사본에 옛 데이터가 남을 수 있으며, 소프트웨어는 물리적 삭제를 보장하지 않습니다.
2-1. 캡처하지 않는 것
- 비밀번호 관리자 등이 클립보드에 붙이는 운영체제의 민감 표식(Windows
ExcludeClipboardContentFromMonitorProcessing· macOSorg.nspasteboard.ConcealedType· KDEx-kde-passwordManagerHint)이 있는 내용은 기본값으로 기록하지 않습니다. - 이용자가 설정한 제외 앱에서 복사한 내용, 캡처를 일시 정지한 동안의 내용은 기록하지 않습니다.
- 설정한 크기 상한을 넘는 항목은 기록하지 않습니다.
클립보드에는 비밀번호·인증 토큰·개인 식별 정보가 지나갈 수 있습니다. 표식을 보내지 않는 앱에서 복사한 민감한 내용은 이력에 남을 수 있으므로, 이용자가 제외 앱·보관 기간·종료 시 삭제 설정으로 관리해야 합니다.
2-2. 시스템 등록과 권한
로그인 시 자동 시작은 기본으로 켜져 있습니다. 소프트웨어는 처음 실행될 때 운영체제의 사용자 수준 자동 시작 항목(Windows HKCU\…\Run · macOS LaunchAgent · Linux XDG autostart)을 등록하며, 이용자는 설정 › 일반에서 이를 끌 수 있습니다(끄면 등록이 제거됩니다). 이용자가 앱 밖에서 등록을 지운 경우 소프트웨어는 다시 등록하지 않고 설정을 꺼짐으로 맞춥니다. --profile 옵션으로 실행한 경우에는 자동 시작을 등록하지 않습니다.
macOS에서는 붙여넣기 주입을 위해 손쉬운 사용 권한을, 동기화를 켜면 같은 네트워크의 내 기기를 찾기 위해 로컬 네트워크 접근 권한을 이용자에게 요청합니다. Linux(GNOME/Wayland)에서는 전역 단축키와 키 주입을 위해 데스크톱 포털 승인을 요청합니다. 그 외에 레지스트리나 시스템 영역에 기록하지 않으며, 기기 공용 라이선스 폴더(제2항)는 이용자가 그곳에 라이선스를 설치하는 경우에만 쓰입니다.
2-3. 라이선스 (v0.2.0부터)
- 확인은 오프라인으로만 합니다. 소프트웨어는 라이선스 파일의 서명을 기기 안에서 검증하며, 라이선스 확인·활성화를 위해 회사나 다른 서버에 어떤 데이터도 보내지 않습니다. 비상업적 사용에는 라이선스 파일이 필요 없습니다.
- 기기 코드: 상업 라이선스를 특정 기기에 묶기 위해, 소프트웨어는 필요할 때 운영체제의 기기 식별자(Windows
MachineGuid· macOSIOPlatformUUID· Linux/etc/machine-id)를 일방향 해시(SHA-256)한 값을 기기 코드로 계산합니다. 식별자 원문은 어디에도 내보내지 않으며, 기기 코드는 따로 파일로 저장하지 않습니다. - 요청 코드: 설정 › 고급 › 정보의 라이선스 화면(또는
--license request)에서 만드는 요청 코드에는 기기 코드, 운영체제 종류, 앱 버전, 만든 날짜, 그리고 이용자가 입력한 경우 이름과 이메일이 들어갑니다. 요청 코드는 암호화가 아니라 인코딩이므로 코드를 가진 사람은 이 내용을 읽을 수 있습니다. 소프트웨어는 요청 코드를 클립보드에 복사할 뿐 어디로도 전송하지 않습니다. - 회사가 받는 정보: 이용자가 요청 코드를 이메일로 [email protected]에 보내면, 회사는 요청 코드에 담긴 위 정보와 이메일 자체(보낸 주소·본문 등)를 받습니다. 회사는 이 정보를 라이선스 발급·확인·갱신과 그에 관한 연락 목적으로만 사용하며, 발급한 라이선스의 관리와 문의 대응에 필요한 기간 동안 보관하고, 관련 법령이 보관을 요구하는 경우 그 기간 동안 보관합니다. 이용자는 언제든 열람·정정·삭제를 요청할 수 있습니다(제7항). 이메일은 이용자와 회사가 쓰는 이메일 서비스를 거쳐 전달되며, 그 서비스의 정책이 적용됩니다.
3. 로컬 네트워크(LAN)로 나가는 데이터 (동기화를 켠 경우)
3-1. 발견 비콘
동기화를 켜면 같은 네트워크의 내 기기를 찾기 위해 UDP 브로드캐스트(포트 47301)로 비콘을 5초(상대가 연결되면 30초)마다 보냅니다. 이 패킷은 암호화되지 않으며 다음만 담습니다.
- 아이디(핸들)와 페어링 암호에서 파생한 해시 태그 — 핸들·암호 원문은 실리지 않으며 태그에서 역산할 수 없습니다.
- 기기 공개키
- 세션 수신 TCP 포트
클립보드 내용·파일·설정·기기 이름은 비콘에 실리지 않습니다. 같은 네트워크의 누구나 이 패킷을 볼 수 있으므로, 소프트웨어를 실행하고 동기화를 켰다는 사실과 기기 공개키는 같은 LAN 안에서 숨겨지지 않습니다.
3-2. 세션
내 기기와 연결되면 TCP로 Noise 핸드셰이크를 하고, 이후 기기 이름 교환·승인 정보·클립보드 항목·파일 경로·파일 내용은 이 암호화 세션으로만 오갑니다. 같은 네트워크에서 직접 연결하든 릴레이 서버를 거치든(제4항) 같은 종단 간 암호화 세션을 씁니다. 네트워크 관찰자는 패킷의 크기와 시각은 볼 수 있지만 내용은 볼 수 없습니다. 파일을 주고받으면 큰 전송이 있었다는 사실과 그 양은 관찰될 수 있습니다.
3-3. 승인 전에는 아무것도 보내지 않습니다
연결된 기기라도 이용자가 기기 목록에서 승인하기 전에는 클립보드 항목과 파일을 주고받지 않습니다. 승인은 양쪽 화면의 6자리 대조 코드를 눈으로 확인한 뒤 기기마다 한 번 하며, 언제든 해제하거나 기기를 삭제할 수 있습니다.
승인된 기기에는 다음이 전파됩니다.
- 복사한 평문 텍스트
- 복사한 이미지(PNG로 변환 · 긴 변이 4,096픽셀을 넘으면 줄여서)
- 복사한 파일의 경로 목록과 각 파일의 크기·수정 시각(v0.1.4부터 · 제3-4항). 파일 이름과 폴더 구조가 경로에 포함됩니다.
- 위 파일의 내용 — 받는 기기가 요청할 때만(v0.1.4부터 · 제3-4항)
다음은 전파하지 않습니다: 서식(HTML/RTF) 등 리치 텍스트 형식, 파일 잘라내기(Windows 탐색기·Linux 파일 관리자의 잘라내기 항목은 이 기기의 이력에만 남습니다), 크기 상한(32MB)을 넘는 항목. 받은 항목은 출처 기기 이름과 함께 이력에 저장되며 다시 상대에게 되돌려 보내지 않습니다.
3-4. 파일 공유 (v0.1.4부터)
설정 › 동기화의 파일 경로 전파(sync.files)와 파일 내용 받기(sync.file_contents)는 기본으로 켜져 있습니다. 다만 동기화 자체가 기본으로 꺼져 있으므로, 이용자가 동기화를 켜고 기기를 승인하기 전에는 아무 파일도 오가지 않습니다. 두 설정은 각각 끌 수 있습니다.
- 복사할 때 — 경로만 보냅니다. 이용자가 파일을 복사하면 그 파일들의 경로·크기·수정 시각(기본 최대 1,000개)이 승인한 기기에 전파됩니다. 이 시점에는 파일 내용을 보내지 않습니다.
- 붙여넣을 때 — 내용을 원본 기기에서 받아 옵니다. 받는 기기에서 그 항목을 파일로 붙여넣으면, 받는 기기가 원본 기기에 내용을 요청해 블록 단위로 받아 온 뒤 실제 파일로 붙여넣습니다. 원본 기기는 자기가 전파한 경로에 대해서만, 승인된 기기의 요청에만 응답합니다. 원본 기기가 꺼져 있거나 연결되어 있지 않으면 내용을 받을 수 없고 경로 텍스트만 붙여넣어집니다.
- 작은 파일은 미리 받아 둡니다. 크기가 50MB 이하(기본값)인 파일은 붙여넣기 전에도 백그라운드에서 천천히(기본 초당 1,024KB 이하) 미리 받아 둡니다. 즉 동기화와 파일 공유가 켜져 있으면, 한 기기에서 복사한 작은 파일은 이용자가 붙여넣지 않아도 승인된 다른 기기에 내용까지 저장될 수 있습니다. 미리 받을 크기 상한은 설정에서 0(미리 받지 않음)으로 바꿀 수 있습니다.
- 크기 상한: 붙여넣을 때 받는 파일은 기본 1,000MB까지이며, 이를 넘으면 경로 텍스트만 제공합니다.
- 전송 경로와 암호화: 파일 경로와 내용은 클립보드 항목과 같은 Noise 종단 간 암호화 세션으로만 오갑니다. 릴레이 서버를 거치는 경우에도 서버는 암호문을 중계할 뿐 파일 이름·경로·내용을 볼 수 없고 저장하지 않습니다(제4-2항). 서버가 알 수 있는 것은 주고받은 바이트 수뿐입니다.
- 받은 파일의 저장: 받은 파일은 제2항 표의 “받은 파일” 위치에 암호화되지 않은 원본 그대로 저장되며, 이후 같은 파일을 다시 붙여넣을 때 재사용됩니다. 소프트웨어는 받은 파일을 격리하거나 악성 코드 검사를 하지 않으며 실행 파일도 그대로 저장합니다.
4. 릴레이 서버 (선택 기능)
같은 네트워크가 아닌 기기와 동기화하려면 릴레이 서버를 거쳐야 합니다. 설정 › 동기화의 릴레이 서버를 None으로 두면 소프트웨어는 인터넷으로 어떤 통신도 하지 않습니다. 릴레이를 선택하고 [테스트] 를 눌러 성공한 뒤에만 접속이 유지됩니다.
4-1. 공식 기본 서버
앱의 서버 주소 기본값은 회사가 운영하는 beepd.sosomlab.com:47300(TCP+UDP)입니다. 서버 프로그램 nexa-beepd는 소프트웨어에 포함되어 있지 않으며 회사의 Nexa Beep 저장소에서 소스가 공개된 별도 프로그램입니다. 이용자는 자신이 직접 세운 서버나 다른 서버 주소로 바꿀 수 있습니다. 공식 서버는 클라우드 사업자(Oracle Cloud Infrastructure)의 가상 머신에서 운영되며, Nexa Beep 이용자와 같은 서버를 쓰지만 두 소프트웨어는 서버에서 서로를 볼 수 없습니다(랑데부 도메인과 핸드셰이크 prologue가 다릅니다).
4-2. 서버가 받는 정보
서버에 접속하면 소프트웨어는 서버와도 Noise 암호화 채널을 맺고 다음을 보냅니다.
| 정보 | 내용 | 서버의 취급 |
|---|---|---|
| 회전 랑데부 ID | 기기 공개키와 UTC 날짜를 해시한 16바이트 값과, 아이디·페어링 암호를 PBKDF2로 늘려 파생한 16바이트 값(각각 어제·오늘·내일). 공개키·핸들·암호 원문은 보내지 않으며 해시를 역산할 수 없습니다 | 접속 중에만 메모리에 보관. 연결이 끊기면 사라짐 |
| 공인 IP 주소와 포트 | 서버가 연결에서 관측하는 값. 상대 기기와 직접 연결(홀펀칭)을 시도하도록 상대에게 전달됩니다 | 접속 중에만 메모리에 보관 |
| 채널 개설·종료와 바이트 수 | 어느 두 랑데부 ID가 언제 연결되어 얼마나 주고받았는지(파일 전송량 포함) | 중계 중에만 메모리에서 다룸 |
| 암호문 조각 | 직접 연결이 실패했을 때만 서버가 대신 나르는 데이터(클립보드 항목·파일 경로·파일 내용). 두 기기 사이의 종단 암호문이라 서버는 열 수 없습니다 | 즉시 상대에게 전달 · 저장하지 않음 |
서버는 아무것도 디스크에 저장하지 않습니다. 양쪽이 동시에 접속해 있을 때만 데이터가 흐르는 파이프이며, 운영 로그를 켜더라도 연결 번호·랑데부 ID 앞 4바이트·채널 번호·바이트 수만 남깁니다. 클립보드 내용·파일 이름·파일 경로·파일 내용·기기 이름·설정·아이디·페어링 암호는 서버에 닿지 않습니다.
다만 릴레이를 쓰면 “어떤 랑데부 ID가 어떤 ID와 언제 연결했고 얼마나 주고받았는가”라는 메타데이터와 공인 IP 주소는 서버가 알게 됩니다. 내용은 몰라도 이 사실은 감출 수 없으며, 소프트웨어는 이를 문서에 명시합니다.
4-3. 서버 신원 확인
소프트웨어는 첫 접속 때 서버의 공개키를 고정(핀)하고, 이후 키가 바뀌면 접속을 중단하고 경고합니다. 공식 서버의 핀 값은 저장소 위키에 공개되어 있어 이용자가 대조할 수 있습니다.
5. 제3자 서비스
소프트웨어는 제3자 분석·광고·크래시 보고 서비스를 사용하지 않습니다. 운영체제의 클립보드·트레이·자동 실행·접근성(키 주입)·로컬 네트워크·데스크톱 포털 기능을 사용하며, 이들은 각 운영체제의 정책을 따릅니다. 이용자가 직접 세우거나 제3자가 운영하는 릴레이 서버를 쓰는 경우 그 서버의 운영자는 제4-2항에 적은 범위의 정보를 보게 되며, 회사는 그 관계의 당사자가 아닙니다. 라이선스 요청·문의 이메일은 이용자와 회사가 각각 쓰는 이메일 서비스를 거칩니다.
6. 아동에 관한 사항
소프트웨어는 범용 생산성 도구로서 아동을 대상으로 하지 않습니다. 회사는 아동을 포함한 누구의 개인정보도 알면서 수집하지 않습니다.
7. 이용자의 권리
소프트웨어를 통해 회사가 이용자의 개인정보를 받는 일은 없습니다. 회사가 보유하는 이용자 정보는 이용자가 라이선스 요청이나 문의를 위해 직접 보낸 이메일과 그 안의 정보(제2-3항), 그리고 발급한 라이선스의 기록뿐이며, 이용자는 아래 연락처로 그 열람·정정·삭제와 처리 정지를 요청할 수 있습니다. 다만 유효한 상업 라이선스의 확인에 필요한 기록을 삭제하면 이후 재발급·확인이 어려울 수 있습니다.
그 밖에 이 방침에서 설명한 모든 데이터는 이용자 기기 안에서 이용자가 직접 통제하며, 제2항의 방법으로 삭제할 수 있습니다. 승인한 다른 기기에 전파되어 그 기기에 저장된 항목과 받은 파일은 그 기기에서 삭제해야 합니다. 공식 릴레이 서버가 접속 중 메모리에 두는 정보(제4항)는 연결을 끊거나 동기화를 끄는 즉시 사라집니다. 관련하여 문의사항이 있으면 아래 연락처로 알려 주시기 바랍니다.
8. 문의처
- 이메일: [email protected]
9. 방침의 변경
이 개인정보처리방침이 변경되는 경우 개정된 내용과 시행일을 이 페이지에 게시합니다. 중요한 변경 — 특히 동기화로 전파되는 항목의 종류가 늘거나 릴레이 서버가 다루는 정보의 범위가 넓어지는 경우 — 은 시행일로부터 최소 7일 전에 공지합니다. 회사는 이 약속을 지키지 못한 경위를 이 페이지 맨 위의 개정 안내에 밝혔으며, 앞으로는 이런 변경이 포함된 버전을 배포하기 전에 이 방침을 먼저 개정해 공지하겠습니다.
개정 이력
- 2026-10-12 (공고 · 2026-10-19 시행): v0.2.1 기준으로 실제 동작과 다른 설명을 바로잡았습니다.
- 파일 공유 안내 신설(제3-4항): 파일 경로·크기·수정 시각 전파, 붙여넣을 때 원본 기기에서 내용 전송, 50MB 이하 백그라운드 사전 수신, 관련 설정의 기본값(동기화를 켜면 켜짐), 종단 간 암호화와 릴레이 서버가 볼 수 없는 범위
- 전파 항목 정정(제3-3항): “파일 내용·파일 경로는 전파하지 않는다”를 삭제하고, 여전히 전파하지 않는 것(서식, 파일 잘라내기)을 명시
- 저장 데이터 추가(제2항): 받은 파일(다운로드 폴더 아래
Nexa Clip· 암호화되지 않음 · 이력 삭제로 지워지지 않음), 라이선스 파일 - 라이선스 안내 신설(제2-3항): 오프라인 확인, 기기 코드, 요청 코드에 담기는 정보, 이메일로 요청할 때 회사가 받는 정보와 이용 목적
- 자동 시작 정정(제2-2항): 기본 켜짐 · 첫 실행 때 등록. macOS 로컬 네트워크 접근 권한 추가
- 이용자의 권리 보완(제7항), 사전 공지 약속을 지키지 못한 경위 안내(맨 위)
- 2026-09-07: 최초 게시