TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

So You Want to Build an End-to-End Encrypted Web App

167 点作者 madrafi将近 5 年前

12 条评论

oneng将近 5 年前
Speaking of E2E Encryption, the Jitsi Team is looking for feedback on their own implementation of E2E over WebRTC.<p><a href="https:&#x2F;&#x2F;jitsi.org&#x2F;blog&#x2F;e2ee&#x2F;" rel="nofollow">https:&#x2F;&#x2F;jitsi.org&#x2F;blog&#x2F;e2ee&#x2F;</a>
rictic将近 5 年前
The equivalent to the app signing cert for a web app is the TLS cert. If security is important to you, don&#x27;t let third parties control your TLS cert!<p>It&#x27;s so common now to let CDNs (primarily cloudflare) run your TLS frontend that this article apparently doesn&#x27;t even consider the idea of hosting an app entirely from servers the app author controls.<p>That said, it&#x27;s true that a TLS cert is necessarily more exposed than an app signing cert can be. If you&#x27;re serious about security, your app signing cert will be on an airgapped machine. The TLS cert however has to be available on a networked machine in order to sign messages.
评论 #23433671 未加载
kodablah将近 5 年前
&gt; you can trust in TLS when you’re downloading signed software too; but for the web, you only trust in the connection, there’s nothing else to save you if you can’t trust that connection.<p>While Signed HTTP Exchanges were originally developed for a more nefarious purpose (to allow the URL to be changed by a trusted proxy), I think the idea or one like it can apply to serving trusted web content. Think of it as instead of your current TLS cert verifying your host, it would also verify the full URL and content including headers. It&#x27;s a bit untenable for regular use, but some apps could leverage it for extra trust.<p>&gt; When designing E2EE protocols for persistent vs ephemeral applications, we need to figure out where we need long-term identity in terms of cryptographic keys, and where we don’t.<p>I would hope that web apps always lean towards ephemeral key use whenever possible (i.e. key generation and post of public key in browser upon authentication, with private key only in local JS memory for just that page). If this means the webapp has to be built to work with 20 different keys for a user because they opened 20 tabs, so be it. I know people are afraid of doing anything like key generation in the browser, but we can&#x27;t ride-off the possibility of e2ee web apps altogether. I fear the browser allowing access to the OS&#x27;s key management or the system&#x27;s TPM for key storage because it may lead to overuse&#x2F;over-reliance on long-term keys, but I&#x27;m sure it&#x27;ll happen if it hasn&#x27;t already.
评论 #23435070 未加载
评论 #23435094 未加载
Boulth将近 5 年前
I haven&#x27;t seen any mentions or this extension that allows verifying pages before they are rendered: <a href="https:&#x2F;&#x2F;github.com&#x2F;tasn&#x2F;webext-signed-pages" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tasn&#x2F;webext-signed-pages</a><p>Another thing is non exportable WebCrypto keys that can limit the damage even if the page is compromised.
h3cate将近 5 年前
I started building an end to end encryption API once that includes server&#x2F;client setups. I promise I&#x27;ll finish it one day (there&#x27;s still client - client to do. client - server is all done) <a href="https:&#x2F;&#x2F;gitlab.com&#x2F;DrRoach&#x2F;NetworkAPI" rel="nofollow">https:&#x2F;&#x2F;gitlab.com&#x2F;DrRoach&#x2F;NetworkAPI</a>
camhart将近 5 年前
While this article points out there are still opportunities for a malicious actor to gain access to the private keys stored locally in the browser, wouldn&#x27;t that still be an improvement over only using https and server side encryption?<p>I&#x27;m not a crypto expert--so forgive my ignorance.
michelpp将近 5 年前
If you want to do this with something like libsodium there is a Key Exchange API<p><a href="https:&#x2F;&#x2F;doc.libsodium.org&#x2F;key_exchange" rel="nofollow">https:&#x2F;&#x2F;doc.libsodium.org&#x2F;key_exchange</a><p>Knowing only each others public keys, two parties can exchange session keys for bidirectional encryption.
评论 #23435025 未加载
laughinghan将近 5 年前
&gt; this basically boils down to TOFU (trust on first use), but the trust does not perpetuate across uses, so it’s more like, TOAU (trust on any use). The trust is ephemeral, the meeting is ephemeral, the ID is ephemeral. For a lot of meetings, this is perfectly acceptable.<p>I think I would call this TFSU (Trust For Single Use). Trust On Any Use sounds like complete and total trust.
评论 #23437675 未加载
emilfihlman将近 5 年前
It used to be possible to actually do TOFU without PKI in browser with caching, trusted sha signatures and user certificates but it was deprecated.
supermatt将近 5 年前
&gt; This is not just a theoretical either: Google Duo supports E2EE group calls on Android, iOS… and web!<p>Google Duo does NOT support E2EE group calls on web... They actually don&#x27;t support ANY group calls in the web app.<p>Lack of good support for e2ee multiparty calls is probably why - the hope is that adoption of insertable streams will change that.
评论 #23433859 未加载
评论 #23446100 未加载
评论 #23434724 未加载
rarrrrrr将近 5 年前
I appreciate when technical writers use humor (those headlines!)
beders将近 5 年前
E2E is an illusion on anything other than a free Linux running on a free BIOS with no security enclave.<p>You can&#x27;t have E2E on mobile devices, you can&#x27;t have E2E on any other OS. (And you&#x27;ll probably have a hard time finding the right combination of hardware and Linux distro to have it on Linux)
评论 #23434774 未加载
评论 #23434749 未加载
评论 #23434725 未加载
评论 #23434675 未加载