Security

How Nesora protects your memories

Last updated:

In short: everything Nesora analyses — faces, text in documents, ages — is worked out on your phone, and face data stays there. Encrypted backup and sharing are optional. When you turn them on, photos are encrypted on your phone before they are uploaded, with keys that only you and the people you invite hold. Our server stores encrypted bytes it cannot open, plus the small amount of metadata it needs to decide who may download what. There is no email or password: your account is an anonymous key.

1. How the pieces fit

Nesora security architecture Your phone analyses photos and keeps face data. It encrypts photos with AES-256-GCM before upload. The Nesora server on Cloudflare stores only encrypted bytes and minimal metadata, and holds no keys. A family member's app decrypts with the circle key wrapped for their device; a web link decrypts in the browser with the key after the # sign, which is never sent to the server. Your phone • Faces, text, ages: analysed and kept here • Master key in Keychain / Keystore • Encrypts with AES-256-GCM before upload encrypted bytes only Nesora server · Cloudflare • Stores encrypted bytes (R2) • Anonymous IDs, roles, sizes, times (D1) • Holds no keys — cannot decrypt Family member Circle key wrapped for their phone → decrypts in the app Web link Key after # in the link, never sent to a server → decrypts in browser
Highlighted boxes hold keys. The middle box never does.

Nothing in the middle box is needed to analyse your photos: Nesora works fully on your phone without it. The server only comes into play if you turn on Encrypted backup or private sharing. Without them, the app does not connect to Nesora’s server at all.

2. What our server can and cannot see

InformationCan the server read it?
Your photos (backup, circles, web links)No. Encrypted on your phone before upload.
Dates, captions, notes, people’s names and birthdays, album and circle names, member display names, comments, guestbook messagesNo. Encrypted the same way as photos.
Face vectors, facial landmarks, your personal recognition model, text read from documents (OCR)Never uploaded. After a restore they are recalculated on the new phone.
Your master key, recovery code, circle keys, link keys, link passcodes, pack passwordsNever sent.
Photo locations (GPS)No. Not shared in circles or links. Added to your encrypted backup only if you turn on “Include photo locations”.
Your anonymous account ID and public keysYes — derived from your key; not linked to an email, phone number or name.
Which anonymous accounts belong to which circle, and their rolesYes — needed to decide who may upload, download or delete.
Number, size and upload time of encrypted items; random IDs; which member uploaded, viewed, commented on or reacted to which item, the type of reaction, and whenYes — needed for permissions, storage limits, unread badges and notifications. It does not reveal what a photo shows or what a comment says.
Web links: expiry date, whether a passcode is set, whether downloads, hearts and the guestbook are on, and view and heart counts per link and per photoYes — counts, not identities. To count each visitor once a day, the server keeps a salted hash that changes daily and is deleted the next day; it does not store visitors’ IP addresses.
Notification token, platform and language, and which kinds of notifications or circles you muted (if you allow notifications)Yes — used only to deliver a generic alert to your phone (see section 9).
Your cloud plan: plan, product ID, expiry date, storage quota, store, and the store’s original transaction ID or purchase tokenYes — checked with Apple or Google to confirm the plan. No name, email or card details.
IP addressProcessed by Cloudflare to deliver each connection; not stored in Nesora’s database (only short-lived hashes for rate limiting and visitor counts).

3. The cryptography, in plain words

Nesora uses well-studied, standard building blocks — no home-made ciphers. On phones, encryption uses the operating system’s native implementations.

  • AES-256-GCM encrypts every photo, index and message. GCM also detects any change: a tampered file fails to open instead of showing something wrong. Large files are split into 256 KiB chunks, each sealed separately and numbered, so chunks cannot be reordered, dropped or cut short without detection.
  • X25519 lets one phone hand a key to another phone securely: a circle key is “wrapped” separately for each member, using that member’s public key.
  • Ed25519 signatures prove each request comes from your key. Requests are time-stamped and cover the exact bytes sent, and the server rejects a request it has already seen, so requests cannot be replayed or altered on the way. Your public keys are published as a bundle signed by you, so the server cannot quietly replace them.
  • HKDF-SHA256 derives separate keys for separate jobs from one master key, so a key is never reused for two purposes.
  • Argon2id turns a password (for example on a memory pack) into a key in a way that is deliberately slow and memory-hungry to guess. In web browsers, link passcodes use PBKDF2-SHA256 with 600,000 rounds, because that is what browsers provide.

All connections also use HTTPS. End-to-end encryption means the content would stay unreadable even if that outer layer were removed.

4. Key hierarchy

  1. Master key — 256 random bits, created on your phone when you first turn on backup or sharing. It is stored in the iOS Keychain or Android Keystore and, only if you choose, in iCloud Keychain.
  2. Keys derived from it (HKDF-SHA256):
    • a signing key (Ed25519) — your anonymous account is simply a fingerprint of its public half;
    • an identity key (X25519) — for receiving circle keys from other members;
    • backup keys — one to encrypt backup objects and one to give them names that reveal nothing about their content.
  3. Circle keys — each circle has its own random 256-bit key, wrapped for every member’s identity key. When a member is removed, the owner’s phone creates a new circle key (a new “epoch”) for the people who remain.
  4. Link keys — each web link has its own random 256-bit key, which lives only in the part of the link after #. Browsers do not send that part to servers. An optional passcode is mixed into the key, so the link alone is not enough.

5. Recovery: code and Emergency Kit

Because only you hold the master key, we cannot reset it. When you turn on backup or sharing, Nesora shows a 55-character recovery code (the master key plus a short checksum) and offers an Emergency Kit PDF with the code and a QR code, to print and keep somewhere safe. On iPhone you can also keep the key in iCloud Keychain, which Apple protects end-to-end, so a new iPhone on the same Apple Account can unlock the backup without typing the code.

To restore, enter or scan the code on a new phone. Nesora downloads and decrypts the encrypted index and your photos, then recalculates faces and document text on the new phone and puts people back on the photos they were tagged in.

The trade-off is real: if you lose your phone and your recovery code (and did not use iCloud Keychain), nobody — including Nesora — can open your backup. Anyone who has your recovery code can open your backup and your circles, so keep it as carefully as a house key.

6. Sharing circles and removing members

  • A circle (family, friends, partner, community or your own) has three roles: owner (manages members and invites, can remove any photo), contributor (adds and removes their own photos and albums, comments) and viewer (browses, comments and saves photos). The server enforces these roles for every request.
  • Invites are QR codes or links containing a one-time secret. The server stores only a check value for it, so it can confirm an invite without being able to use it. Invites can expire and be limited in number of uses.
  • Each new circle key is signed by the owner, and members only accept keys with a valid signature, so the server cannot slip in a key of its own. When the owner removes someone, a new circle key is created for everyone else and outstanding invites are cancelled. The removed person cannot read anything shared afterwards. Current members — including people who join later — can still read older photos through a chain of previous keys.
  • Limit: photos a member already saw or saved before being removed cannot be taken back.

7. Verifying family members

To send someone a circle key, your phone needs that person’s public key, which it gets through our server. A dishonest or compromised server could, in principle, hand over a different key. To rule this out, Nesora shows a safety number for each pair of members — 60 digits computed on both phones from both people’s public keys. Scan each other’s QR code in person, or read the digits over a call you trust: if they match, no one has swapped the keys, and Nesora remembers that you verified. If a member’s keys change later, the number changes too. If you choose not to compare, you are trusting the server to deliver the right keys.

  • A web link lets relatives without the app view an album in a browser at nesora.app/s/. The page downloads encrypted bytes and decrypts them in the browser with the key after #.
  • Options: an expiry date, a passcode (send it separately, for example by phone; Nesora does not store it), and whether to show download buttons. You can revoke a link at any time — it stops working immediately and its encrypted photos are deleted from the server.
  • If you allow it, visitors can tap a heart on photos and leave a message in a guestbook. Messages are encrypted with the link’s key, so the server stores only scrambled text and anonymous counts.
  • Limits: anyone who has the link (and passcode, if set) can view it — including anyone it is forwarded to — until it expires or you revoke it. Hiding download buttons does not stop screenshots. A short passcode can be guessed by someone who has both the link and the encrypted data, so choose a long one for sensitive albums. The viewer page itself is served by nesora.app, so you rely on that site delivering the genuine viewer code.

9. Notifications

If you allow notifications, your phone registers a delivery token with Firebase Cloud Messaging (Google) — used on both iPhone and Android to deliver alerts — and Nesora’s server stores that token with your anonymous account ID. Alerts carry only a translated message type such as “New photos” plus random IDs so the app can open the right screen; similar events are grouped into one alert. You choose which kinds you get and can mute a circle. They never contain photos, names, captions or comment text, because the server cannot read those. You can turn notifications off at any time in your phone’s settings.

10. On your phone

  • Nesora’s database, previews and keys live in the app’s private storage, which the operating system keeps away from other apps. Keys are kept in the Keychain or Keystore.
  • App lock and locked profiles use Face ID, fingerprint or your device passcode. Nesora only receives a yes/no answer from the system — never biometric data. Showing your recovery code also asks you to confirm it’s you.
  • Nesora never edits your original photos. If you choose to delete a photo from your library (for example when cleaning up blurry shots), the system asks you to confirm and keeps it in Recently Deleted / Trash for a while.
  • The app has no analytics or tracking SDKs. The free version includes Google’s ad SDK for non-personalized ads; Nesora never passes it your photos, faces, names, notes or keys, and shows no ads on shared-content, privacy or security screens. Paid plans have no ads.

11. Threat model

Designed to protect against

  • A breach of Nesora’s servers or storage, or a curious insider at Nesora or our infrastructure provider: they would find encrypted bytes and the metadata listed in section 2, not your photos.
  • Someone listening on the network, or a server that alters data: content is end-to-end encrypted and authenticated, and requests are signed.
  • A removed circle member trying to read new photos.
  • Someone guessing a web link: link IDs and keys are long random values.

Not designed to protect against

  • Someone who has your unlocked phone, or your recovery code.
  • People you chose to share with: they can screenshot, save or forward what they can see.
  • Malware on your phone or on a recipient’s phone or computer.
  • Third-party code inside the app (such as Google ML Kit on Android or the ad SDK in the free version) misbehaving: like any SDK it runs within the app. We only give it what is described in our Privacy Policy.
  • The metadata the server needs (section 2), such as how many items a circle has and when they were added.
  • Key substitution by a malicious server if members never compare safety numbers.
  • Losing both your phone and your recovery code — the backup then cannot be opened by anyone.

No system is perfectly secure. We describe what Nesora is built to resist so you can decide what to share, and with whom.

12. Reporting a vulnerability

If you believe you have found a security problem in the Nesora app, the nesora.app website or Nesora’s server, please email lienhe@nesora.app with “Security” in the subject. Include enough detail to reproduce it. Please give us reasonable time to fix it before sharing it publicly, and do not access, change or delete other people’s data while testing. We will acknowledge your report, keep you updated, and credit you if you wish. We do not run a paid bug bounty at the moment.

See also our Privacy Policy and how to delete your data.

Bảo mật

Nesora bảo vệ ký ức của bạn thế nào

Cập nhật lần cuối:

Tóm tắt: mọi thứ Nesora phân tích — khuôn mặt, chữ trên giấy tờ, tuổi — đều được tính trên điện thoại của bạn, và dữ liệu khuôn mặt nằm lại trên máy. Sao lưu mã hoá và chia sẻ là tuỳ chọn. Khi bạn bật, ảnh được mã hoá ngay trên máy trước khi tải lên, bằng khoá chỉ bạn và những người bạn mời nắm giữ. Máy chủ của chúng tôi chỉ lưu byte đã mã hoá mà nó không mở được, cùng một ít metadata cần để biết ai được tải gì. Không có email hay mật khẩu: tài khoản của bạn là một khoá ẩn danh.

1. Các thành phần gắn với nhau thế nào

Kiến trúc bảo mật của Nesora Điện thoại của bạn phân tích ảnh và giữ dữ liệu khuôn mặt. Ảnh được mã hoá AES-256-GCM trước khi tải lên. Máy chủ Nesora trên Cloudflare chỉ lưu byte đã mã hoá và metadata tối thiểu, không giữ khoá. Ứng dụng của người thân giải mã bằng khoá nhóm được bọc riêng cho máy họ; liên kết web giải mã trong trình duyệt bằng khoá sau dấu #, phần này không bao giờ gửi lên máy chủ. Điện thoại của bạn • Khuôn mặt, chữ, tuổi: phân tích và giữ ở đây • Khoá chủ trong Keychain / Keystore • Mã hoá AES-256-GCM trước khi tải lên chỉ byte đã mã hoá Máy chủ Nesora · Cloudflare • Lưu byte đã mã hoá (R2) • ID ẩn danh, vai trò, kích thước, giờ (D1) • Không giữ khoá — không giải mã được Người thân Khoá nhóm được bọc riêng cho máy họ → giải mã trong app Liên kết web Khoá nằm sau dấu #, không gửi lên máy chủ → giải mã ở trình duyệt
Các ô được tô màu giữ khoá. Ô ở giữa thì không bao giờ.

Ô ở giữa không cần cho việc phân tích ảnh: Nesora hoạt động trọn vẹn trên điện thoại mà không cần nó. Máy chủ chỉ tham gia khi bạn bật Sao lưu mã hoá hoặc chia sẻ riêng tư. Nếu không bật, ứng dụng hoàn toàn không kết nối tới máy chủ Nesora.

2. Máy chủ thấy được gì, không thấy gì

Thông tinMáy chủ có đọc được không?
Ảnh của bạn (sao lưu, vòng tròn, liên kết web)Không. Được mã hoá trên máy trước khi tải lên.
Mốc thời gian, chú thích, ghi chú, tên và ngày sinh của người trong ảnh, tên album và vòng tròn, tên hiển thị của thành viên, bình luận, lời nhắn sổ lưu bútKhông. Được mã hoá giống như ảnh.
Vector khuôn mặt, điểm mốc khuôn mặt, mô hình nhận diện cá nhân hoá, chữ đọc từ giấy tờ (OCR)Không bao giờ tải lên. Sau khi khôi phục, chúng được tính lại trên máy mới.
Khoá chủ, mã khôi phục, khoá vòng tròn, khoá liên kết, mã truy cập liên kết, mật khẩu gói ký ứcKhông bao giờ gửi đi.
Vị trí chụp (GPS)Không. Không chia sẻ trong vòng tròn hay liên kết. Chỉ được đưa vào bản sao lưu đã mã hoá nếu bạn bật “Kèm vị trí chụp”.
Mã tài khoản ẩn danh và khoá công khaiCó — dẫn xuất từ khoá của bạn; không gắn với email, số điện thoại hay tên.
Tài khoản ẩn danh nào thuộc vòng tròn nào, với vai trò gìCó — cần để quyết định ai được tải lên, tải về hay xoá.
Số lượng, kích thước, thời điểm tải lên của các mục đã mã hoá; id ngẫu nhiên; thành viên nào đã tải lên, xem, bình luận hay thả cảm xúc ở mục nào, loại cảm xúc và khi nàoCó — cần cho phân quyền, giới hạn dung lượng, huy hiệu chưa đọc và thông báo. Không cho biết ảnh có gì hay bình luận viết gì.
Liên kết web: ngày hết hạn, có mã truy cập hay không, có bật nút tải, thả tim, sổ lưu bút hay không, số lượt xem và lượt tim theo liên kết và theo ảnhCó — là con số, không phải danh tính. Để mỗi khách chỉ được đếm một lần mỗi ngày, máy chủ giữ một mã băm có muối đổi mỗi ngày và xoá vào ngày hôm sau; không lưu địa chỉ IP của khách.
Mã nhận thông báo, nền tảng và ngôn ngữ máy, loại thông báo hay vòng tròn bạn đã tắt (nếu bạn cho phép thông báo)Có — chỉ dùng để gửi một thông báo chung tới máy bạn (xem mục 9).
Gói đám mây của bạn: gói, mã sản phẩm, ngày hết hạn, hạn mức dung lượng, cửa hàng, và mã giao dịch gốc hoặc purchase token của cửa hàngCó — được kiểm tra với Apple hoặc Google để xác nhận gói. Không có tên, email hay thông tin thẻ.
Địa chỉ IPCloudflare xử lý để thực hiện kết nối; không lưu vào cơ sở dữ liệu của Nesora (chỉ lưu mã băm ngắn hạn để giới hạn tần suất và đếm khách).

3. Mật mã, nói dễ hiểu

Nesora dùng các thành phần mật mã tiêu chuẩn, đã được nghiên cứu kỹ — không tự chế thuật toán. Trên điện thoại, việc mã hoá dùng bản cài đặt gốc của hệ điều hành.

  • AES-256-GCM mã hoá mọi ảnh, mục lục và tin nhắn. GCM còn phát hiện mọi thay đổi: file bị sửa sẽ không mở được thay vì hiện ra nội dung sai. File lớn được chia thành từng khối 256 KiB, mỗi khối được niêm phong riêng và đánh số, nên không thể đảo thứ tự, bỏ bớt hay cắt cụt mà không bị phát hiện.
  • X25519 cho phép một máy trao khoá cho máy khác một cách an toàn: khoá vòng tròn được “bọc” riêng cho từng thành viên bằng khoá công khai của người đó.
  • Chữ ký Ed25519 chứng minh mỗi yêu cầu đến từ khoá của bạn. Yêu cầu có dấu thời gian, gắn với đúng các byte được gửi, và máy chủ từ chối yêu cầu đã thấy, nên yêu cầu không thể bị phát lại hay bị sửa trên đường đi. Khoá công khai của bạn được công bố thành một gói do chính bạn ký, nên máy chủ không thể lặng lẽ thay thế.
  • HKDF-SHA256 dẫn xuất các khoá riêng cho từng việc từ một khoá chủ, để không khoá nào bị dùng cho hai mục đích.
  • Argon2id biến mật khẩu (ví dụ của gói ký ức) thành khoá theo cách cố tình chậm và tốn bộ nhớ để khó dò. Trong trình duyệt, mã truy cập liên kết dùng PBKDF2-SHA256 với 600.000 vòng, vì trình duyệt hỗ trợ sẵn thuật toán này.

Mọi kết nối đều dùng thêm HTTPS. Mã hoá đầu-cuối nghĩa là nội dung vẫn không đọc được ngay cả khi lớp vỏ ngoài đó bị gỡ bỏ.

4. Phân cấp khoá

  1. Khoá chủ — 256 bit ngẫu nhiên, tạo trên máy khi bạn bật sao lưu hoặc chia sẻ lần đầu. Khoá được lưu trong Keychain (iOS) hoặc Keystore (Android) và, chỉ khi bạn chọn, trong iCloud Keychain.
  2. Các khoá dẫn xuất (HKDF-SHA256):
    • khoá ký (Ed25519) — tài khoản ẩn danh của bạn đơn giản là dấu vân tay của nửa công khai của khoá này;
    • khoá định danh (X25519) — để nhận khoá vòng tròn từ thành viên khác;
    • khoá sao lưu — một khoá để mã hoá đối tượng sao lưu, một khoá để đặt tên đối tượng sao cho tên không tiết lộ gì về nội dung.
  3. Khoá vòng tròn — mỗi vòng tròn có khoá 256 bit ngẫu nhiên riêng, được bọc cho khoá định danh của từng thành viên. Khi một thành viên bị gỡ, máy của chủ nhóm tạo khoá vòng tròn mới (một “kỳ khoá” mới) cho những người còn lại.
  4. Khoá liên kết — mỗi liên kết web có khoá 256 bit ngẫu nhiên riêng, chỉ nằm ở phần sau dấu # của liên kết. Trình duyệt không gửi phần này lên máy chủ. Mã truy cập (nếu có) được trộn vào khoá, nên chỉ có liên kết thôi là chưa đủ.

5. Khôi phục: mã và Bộ khẩn cấp

Vì chỉ bạn giữ khoá chủ, chúng tôi không thể đặt lại khoá. Khi bạn bật sao lưu hoặc chia sẻ, Nesora hiện mã khôi phục 55 ký tự (khoá chủ cộng một đoạn kiểm tra ngắn) và cho lưu Bộ khẩn cấp dạng PDF gồm mã và mã QR, để in ra và cất ở nơi an toàn. Trên iPhone, bạn có thể lưu thêm khoá vào iCloud Keychain — được Apple bảo vệ bằng mã hoá đầu-cuối — để iPhone mới cùng tài khoản Apple mở được bản sao lưu mà không cần gõ mã.

Để khôi phục, nhập hoặc quét mã trên máy mới. Nesora tải về và giải mã mục lục đã mã hoá cùng ảnh của bạn, rồi tính lại khuôn mặt và chữ trên giấy tờ ngay trên máy mới và gán lại người vào những ảnh họ đã được gắn.

Đánh đổi là có thật: nếu bạn mất điện thoại và mất mã khôi phục (và không dùng iCloud Keychain), không ai — kể cả Nesora — mở được bản sao lưu. Ai có mã khôi phục đều mở được bản sao lưu và các vòng tròn của bạn, nên hãy giữ mã cẩn thận như chìa khoá nhà.

6. Vòng tròn chia sẻ và gỡ thành viên

  • Một vòng tròn (gia đình, bạn bè, người yêu, cộng đồng hoặc tuỳ chọn) có ba vai trò: chủ nhóm (quản lý thành viên và lời mời, gỡ được bất kỳ ảnh nào), người đóng góp (thêm và gỡ ảnh, album của mình, bình luận) và người xem (xem, bình luận và lưu ảnh). Máy chủ kiểm tra vai trò ở mọi yêu cầu.
  • Lời mời là mã QR hoặc liên kết chứa một bí mật dùng một lần. Máy chủ chỉ lưu giá trị kiểm tra của bí mật đó, nên xác nhận được lời mời mà không thể tự dùng nó. Lời mời có thể đặt hạn và giới hạn số lượt dùng.
  • Mỗi khoá vòng tròn mới đều được chủ nhóm ký, và thành viên chỉ chấp nhận khoá có chữ ký hợp lệ, nên máy chủ không thể chèn khoá của riêng nó. Khi chủ nhóm gỡ một người, khoá vòng tròn mới được tạo cho những người còn lại và các lời mời còn hiệu lực bị huỷ. Người bị gỡ không đọc được gì chia sẻ sau đó. Thành viên hiện tại — kể cả người tham gia sau — vẫn đọc được ảnh cũ nhờ chuỗi các khoá trước đó.
  • Giới hạn: ảnh mà thành viên đã xem hoặc đã lưu trước khi bị gỡ thì không thể lấy lại.

7. Xác minh người thân

Để gửi khoá vòng tròn cho ai đó, máy bạn cần khoá công khai của người đó, và nhận nó qua máy chủ của chúng tôi. Về nguyên tắc, một máy chủ gian dối hoặc bị xâm nhập có thể đưa một khoá khác. Để loại trừ khả năng này, Nesora hiện mã an toàn cho từng cặp thành viên — 60 chữ số được tính trên cả hai máy từ khoá công khai của hai người. Hãy quét mã QR của nhau khi gặp trực tiếp, hoặc đọc dãy số qua một cuộc gọi bạn tin cậy: nếu trùng nhau, không ai đánh tráo khoá, và Nesora ghi nhớ rằng bạn đã xác minh. Nếu khoá của một thành viên thay đổi sau đó, mã cũng đổi theo. Nếu không so, bạn đang tin máy chủ đưa đúng khoá.

  • Liên kết web cho người thân không cài app xem album trên trình duyệt tại nesora.app/s/. Trang này tải byte đã mã hoá và giải mã ngay trong trình duyệt bằng khoá sau dấu #.
  • Tuỳ chọn: ngày hết hạn, mã truy cập (gửi riêng, ví dụ qua điện thoại; Nesora không lưu mã này), và có hiện nút tải ảnh hay không. Bạn có thể thu hồi liên kết bất cứ lúc nào — liên kết ngừng hoạt động ngay và ảnh đã mã hoá bị xoá khỏi máy chủ.
  • Nếu bạn cho phép, người xem có thể thả tim vào ảnh và để lại lời nhắn trong sổ lưu bút. Lời nhắn được mã hoá bằng khoá của liên kết, nên máy chủ chỉ lưu chữ đã xáo trộn và các con số đếm ẩn danh.
  • Giới hạn: ai có liên kết (và mã truy cập, nếu có) đều xem được — kể cả người được chuyển tiếp — cho tới khi hết hạn hoặc bạn thu hồi. Ẩn nút tải không ngăn được chụp màn hình. Mã truy cập ngắn có thể bị dò bởi người có cả liên kết lẫn dữ liệu đã mã hoá, nên với album nhạy cảm hãy chọn mã dài. Trang xem được phục vụ từ nesora.app, nên bạn tin rằng trang đó cung cấp đúng mã trình xem.

9. Thông báo

Nếu bạn cho phép thông báo, máy bạn đăng ký một mã nhận thông báo với Firebase Cloud Messaging (Google) — dùng trên cả iPhone và Android để gửi thông báo — và máy chủ Nesora lưu mã đó cùng mã tài khoản ẩn danh của bạn. Thông báo chỉ mang loại thông báo đã dịch sẵn, ví dụ “Ảnh mới”, cùng id ngẫu nhiên để ứng dụng mở đúng màn hình; nhiều sự kiện giống nhau được gộp thành một thông báo. Bạn chọn loại thông báo muốn nhận và có thể tắt thông báo của từng vòng tròn. Thông báo không bao giờ chứa ảnh, tên, chú thích hay nội dung bình luận, vì máy chủ không đọc được những thứ đó. Bạn có thể tắt thông báo bất cứ lúc nào trong cài đặt điện thoại.

10. Trên điện thoại của bạn

  • Cơ sở dữ liệu, ảnh xem trước và khoá của Nesora nằm trong vùng lưu trữ riêng của ứng dụng, được hệ điều hành tách khỏi các ứng dụng khác. Khoá được giữ trong Keychain hoặc Keystore.
  • Khoá ứng dụng và hồ sơ bị khoá dùng Face ID, vân tay hoặc mật mã máy. Nesora chỉ nhận kết quả đúng/sai từ hệ thống — không bao giờ nhận dữ liệu sinh trắc học. Xem mã khôi phục cũng yêu cầu bạn xác nhận danh tính.
  • Nesora không bao giờ sửa ảnh gốc. Nếu bạn chọn xoá ảnh khỏi thư viện (ví dụ khi dọn ảnh mờ), hệ điều hành hỏi xác nhận và giữ ảnh trong “Đã xoá gần đây” / Thùng rác một thời gian.
  • Ứng dụng không có SDK phân tích hay theo dõi. Bản miễn phí có SDK quảng cáo của Google cho quảng cáo không cá nhân hoá; Nesora không bao giờ chuyển cho SDK ảnh, khuôn mặt, tên, ghi chú hay khoá của bạn, và không hiện quảng cáo trên màn hình nội dung được chia sẻ, quyền riêng tư hay bảo mật. Các gói trả phí không có quảng cáo.

11. Mô hình mối đe doạ

Được thiết kế để chống lại

  • Máy chủ hoặc kho lưu trữ của Nesora bị xâm nhập, hay người bên trong Nesora hoặc nhà cung cấp hạ tầng tò mò: họ chỉ thấy byte đã mã hoá và metadata nêu ở mục 2, không thấy ảnh của bạn.
  • Kẻ nghe lén trên mạng, hoặc máy chủ sửa dữ liệu: nội dung được mã hoá đầu-cuối và xác thực, yêu cầu được ký.
  • Thành viên đã bị gỡ cố đọc ảnh mới.
  • Người đoán mò liên kết web: id và khoá liên kết là chuỗi ngẫu nhiên dài.

Không được thiết kế để chống lại

  • Người cầm điện thoại đã mở khoá của bạn, hoặc có mã khôi phục của bạn.
  • Những người bạn đã chọn chia sẻ: họ có thể chụp màn hình, lưu hoặc chuyển tiếp những gì họ xem được.
  • Phần mềm độc hại trên máy bạn hoặc trên điện thoại, máy tính của người nhận.
  • Mã của bên thứ ba bên trong ứng dụng (như Google ML Kit trên Android hay SDK quảng cáo ở bản miễn phí) hoạt động sai: như mọi SDK, nó chạy bên trong ứng dụng. Chúng tôi chỉ đưa cho nó những gì Chính sách quyền riêng tư đã nêu.
  • Metadata mà máy chủ cần (mục 2), ví dụ một vòng tròn có bao nhiêu mục và được thêm khi nào.
  • Máy chủ độc hại đánh tráo khoá nếu các thành viên không bao giờ so mã an toàn.
  • Mất cả điện thoại lẫn mã khôi phục — khi đó không ai mở được bản sao lưu.

Không hệ thống nào an toàn tuyệt đối. Chúng tôi mô tả rõ Nesora được xây dựng để chống lại điều gì, để bạn tự quyết định chia sẻ gì và với ai.

12. Báo cáo lỗ hổng

Nếu bạn cho rằng mình phát hiện vấn đề bảo mật trong ứng dụng Nesora, website nesora.app hoặc máy chủ Nesora, vui lòng gửi email tới lienhe@nesora.app với tiêu đề có chữ “Security”. Hãy mô tả đủ chi tiết để chúng tôi tái hiện được. Vui lòng cho chúng tôi thời gian hợp lý để sửa trước khi công bố, và đừng truy cập, thay đổi hay xoá dữ liệu của người khác khi kiểm thử. Chúng tôi sẽ xác nhận đã nhận báo cáo, cập nhật tiến độ cho bạn và ghi công nếu bạn muốn. Hiện chúng tôi chưa có chương trình thưởng tiền cho lỗ hổng.

Xem thêm Chính sách quyền riêng tư và cách xoá dữ liệu.