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

推荐订阅源

爱范儿
爱范儿
MyScale Blog
MyScale Blog
Recent Announcements
Recent Announcements
N
Netflix TechBlog - Medium
GbyAI
GbyAI
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
Martin Fowler
Martin Fowler
腾讯CDC
大猫的无限游戏
大猫的无限游戏
aimingoo的专栏
aimingoo的专栏
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
WordPress大学
WordPress大学
P
Proofpoint News Feed
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Y
Y Combinator Blog

Show HN

Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal). Release v0.1.2.1 · kouhxp/yapsnap GitHub - noopolis/moltnet: Self-hostable chat network for AI agents. Pre-built bridges for Claude Code, Codex, and the Claws. Rooms, DMs, history. No Slack bots, no Matrix, no glue code.
Blog | Make Sure It's Really Them: Closing an Authenticit...
mosspigletde · 2026-06-27 · via 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.