惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
IT之家
IT之家
V
Visual Studio Blog
The Cloudflare Blog
博客园 - 司徒正美
Jina AI
Jina AI
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
S
SegmentFault 最新的问题
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
博客园 - Franky
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
Blog | Make Sure It's Really Them: Closing an Authenticit...
mosspigletde · 2026-06-27 · via Hacker News: Show HN

Building Mosslet in the open forces me to ask a lot of uncomfortable questions.

Last month we shipped browser-side, post-quantum encryption for everything. Your data is locked down tight. I feel good about it. So this prompted the question — when you share something privately with a friend, how do you actually know the key we handed your browser belongs to your friend, and not an impostor?

That question revealed a gap in our architecture. Not a breach or a bug, but a hole that needed to be plugged sooner rather than later.

Today I'm happy to share that we've closed that gap, plugged that hole, with a friendly new layer that lets you verify that the people you talk to are really who they say they are.


Encryption doesn't answer every question

Strong encryption helps to answer the question: who can read this? On Mosslet that answer is you and whoever you choose to share with — not us, not our servers, not someone snooping on the network. Your data is encrypted in your browser before it ever leaves.

But there's another question that encryption doesn't help to answer: am I sharing this with the right person?

When you share something with one of your connections on Mosslet, your browser needs that connection's public key. And to get that key, it has to ask for it from somewhere — in Mosslet's case, that somewhere is Mosslet's server. And while that server is enclosed in our own private, Wireguard encrypted network, it is still technically an attack surface and thus a wrinkle in our end-to-end encryption. If the wrong key ever slipped in, your message would be perfectly encrypted... to the wrong recipient.

This is a well-known, hard problem in end-to-end encryption and every serious system has to grapple with it. I decided that we needed to name it plainly and address it rather than pretend it didn't exist.


A note about Mosslet's server

Our server would not substitute someone's key. We have no interest in it, no business model that benefits from it, and our whole architecture is built so we genuinely can't read your content in the first place. Mosslet is open source — you can read exactly what our server does and verify it.

And yet "just trust us" is precisely the thing we're trying to make unnecessary. The entire point of zero-knowledge is that your privacy shouldn't depend on our good behavior. So we treat our own server as if it were an adversary, or as if an adversary took over our server, and we give you the tools to check our work.


What we built

The new layer has four friendly parts that work quietly in the background until you need them:

  • Safety numbers — every connection has a short, shared verification code derived from both of your keys. Compare it together over a channel you already trust (in person, a phone call), and a match means you're talking to the real them.
  • Scan to verify — sitting next to each other? Scan a QR code instead of reading digits aloud. Same guarantee, less squinting (dependent on your device's browser features).
  • Trust on first use — the first time you connect, your browser remembers that person's key, sealed under your own key so only you can read it. From then on, it watches for changes.
  • Key-change alerts — if a connection's key ever changes, you'll see a gentle heads-up on and a marker on their connection card, so nothing slips by unnoticed.

There's one more quiet safeguard underneath all of this: if a key changes and you haven't re-verified that person, we pause sealing new private content to them until you do. Better to ask than to assume.


The honest part

When you see a key-change alert, it's worth knowing what it does and doesn't mean. A key can change for a number of innocent reasons: your friend reinstalled the app, set up a new device, or used a recovery key to get back into their account. It could also, in theory, mean something more nefarious; like someone trying to slip a different key in between you. Right now, we can't automatically tell those two cases apart.

So instead of guessing for you, we surface the change and hand you a simple, reliable way to settle it: compare safety numbers or scan a QR code with the person directly. If it matches, mark them verified and carry on. If it doesn't, you've caught something worth a closer look. You stay aware and in control.


Where this goes next

This is an interim layer. It's also the standard we want to hold ourselves to: find the gaps before anyone else has to, close them in the open, and tell you about it. The longer-term plan is a tamper-evident, signed history of keys, so that key changes can be checked automatically against a record that can't be quietly rewritten. Until then, you have everything you need to verify the people you care about without taking our word for it.

Thanks for being here while we do the work. Go verify a friend — it takes about ten seconds and it feels great.