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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Signal under fire for storing encryption keys in plaintext

30 点作者 doublextremevil11 个月前

5 条评论

bonyt11 个月前
How are they supposed to store them? Unless there’s a password required to use the app, is the only other option a fixed key, or maybe something derived from the account name or something? All of this feels like obfuscation though, if we’re targeting malware specifically designed to collect signal data, they can probably just work around this. Maybe a TPM? Or an OS-provided keychain?
评论 #40898546 未加载
redprince11 个月前
What is the threat model here?<p>When the device is stolen or lost it better protects data at rest with full disk encryption.<p>When the account operating Signal or the machine as a whole was taken over, the attacker can observe everything the user does and can do everything the user is entitled to do. When the data is accessible to the user, it will be accessible to the attacker and there&#x27;s nothing anyone can do about it.
评论 #40898837 未加载
tifik11 个月前
I believe it could be useful to update the title to mention that this only happens in the desktop application. I personally only use the mobile app, and while I&#x27;m aware I might be biased, I didn&#x27;t even know a desktop Signal application existed.<p>Not saying the severity of the issue is lower because of it, just that it might not impact as many people as the current title would suggest.
mike_hearn11 个月前
Credential protection in desktop apps, state of the art on each platform, July 2024 edition:<p><i>-- macOS --</i><p>On macOS protecting credentials is easy and effective. You can store secrets in two places:<p>1. In the system keychain. The best place because the keystore database records the code signing identity of each app that creates an entry, and any other app that tries to access those credentials will trigger a permission check by the OS. The permission check window can&#x27;t be tampered with by other OS processes, nor can your own app be tampered with because the OS will block debugger APIs and also block attempts to overwrite code files on disk. There are APIs for this in whatever framework or language you&#x27;re using. Browsers protect cookies and local storage for you by using this mechanism (the data is readable on disk but encrypted using a key stored in the keychain).<p>2. If you opted in to the App Sandbox, you can store data in ~&#x2F;Library&#x2F;Preferences which is virtualized and redirected to what Apple calls a &quot;container&quot;. Apps that try to access files in containers also trigger a permission prompt.<p>As a quick test to prove to yourself this works make sure you&#x27;re on the latest version of macOS, go into System Settings, Privacy &amp; Security, and ensure that under &quot;full disk access&quot; your terminal app is unchecked. If you toggle it off you&#x27;ll need to restart the process. Now run e.g. `ls Library&#x2F;Containers&#x2F;desktop.WhatsApp&#x2F;Data` and note you get an permission prompt. This block exists for ALL APPS i.e. every app on macOS is sandboxed even legacy apps and apps that don&#x27;t opt-in to what Apple confusingly calls the &quot;app sandbox&quot; (they mean something like &quot;stricter app sandbox&quot;).<p>Storing credentials is easy on macOS because of the many years of work Apple&#x27;s security engineers have quietly done, mostly without disruption. Every app on macOS has cryptographically verified identity, which is the hardest part. The rollout of all of this has been so smooth most devs don&#x27;t even realize how much protection the OS now provides. Let&#x27;s take a moment to note that this is worthy of serious respect. MacOS is by far the most secure desktop OS out there today, IMHO.<p><i>-- Windows --</i><p>Possible but much harder and mostly undocumented. I haven&#x27;t yet tried it myself, but it&#x27;s on the todo list. Firstly, note that protecting credentials from other apps requires the OS to understand app identity i.e. what files belong to an app, who signed them, and then the OS must stop other apps from tampering with those files or the address space of the program that&#x27;s running. The only supported way to do this on Windows is by packaging and installing your app with MSIX. If you haven&#x27;t encountered this format before please open my bio, follow the link to my company&#x27;s product and the user guide will tell you all about it. If you aren&#x27;t shipping your app with MSIX forget it, there&#x27;s no way to protect credentials from other apps, only other users using regular file or keychain permissions.<p>If you do use MSIX then it&#x27;s possible to create directories that only your app can read, but which are still owned by the user i.e. the user can override the protection using Explorer if they want to. The way to do this is far too complicated to explain here unfortunately and involves some serious Windows API voodoo.<p><i>-- Linux --</i><p>As always on Linux, &quot;it depends&quot; but is basically not possible in a widely supported and portable way. Whilst Linux the kernel has all the needed tools, they&#x27;re not knitted together across the userspace and packaging ecosystem to make it possible. The closest thing to app identity is either SELinux (Red Hat specific more or less) or FlatPaks. Neither is understood by system keychains AFAIK? Debugger APIs aren&#x27;t really locked down either, and you can&#x27;t make a directory in $HOME that only a specific FlatPak can read.
评论 #40899706 未加载
评论 #40899122 未加载
nimbius11 个月前
as a reminder, this is just the desktop version not Android.<p>good catch. this kind of technical analysis makes signal a stronger application. now if only someone could convince Marlinspike to get off his high horse and de-centralize the service.<p>AWS is a terrible host. its all too willing to de-platform, as was evidenced when Senator Joe Liebermann politely requested they de-platform Assange and Wikileaks.
评论 #40898583 未加载
评论 #40898544 未加载