| ▲ | necovek 2 hours ago | |||||||
While this might be a useful tool for Mac users, it's all hackers here, so: * Most people do not have passwords in plain text — an SSH key protected with a passphrase is not "plain text", for instance * Most people have encrypted home or full disk encryption * How can we trust your crypto implementation? * If we are talking about in-memory plain-text during use, how does this tool protect against it? * Containerisation is a big topic when running untrusted software for exactly (but not just) this reason * While passwords/tokens might carry a big risk depending on what you do, I find that I worry more about my local data compared to my remote data — and virtualisation or containerisation helps with that. | ||||||||
| ▲ | Faaak an hour ago | parent | next [-] | |||||||
> Most people have encrypted home or full disk encryption I don't see the point. Once your home is unlocked, every process can see the file contents | ||||||||
| ▲ | hnlmorg an hour ago | parent | prev | next [-] | |||||||
I'm not the author but i can probably answer some of these: > * Most people do not have passwords in plain text — an SSH key protected with a passphrase is not "plain text", for instance I think you'd be surprised how many SWE do actually have plain text secrets. For example, if you do everything correctly with AWS auth, you still have a plain text token in ~/.aws -- it's short lived (typically 8hrs IIRC), but it's still there > * Most people have encrypted home or full disk encryption Yes. But that addresses a completely different problem. One where the whole machine is lost and an attacker then has physical access to your machine. Not when the machine is already in use and you have a rogue agent or other process. > * How can we trust your crypto implementation? This is written in Go and Go's standard library already has crypto functions. So there wouldn't be any need for the authors to roll their own implementation. But since it's open source, you can always check the code yourself. > * If we are talking about in-memory plain-text during use, how does this tool protect against it? This tool doesn't advertise that feature. Which I'm guessing you already knew. macOS, like most popular operating systems, does already have kernel-level code that makes it harder for processes to read the memory of other processes that do not belong to it. It's not entirely impenetrable, but this tool I think goes far enough for most SWE's risk appetite. If the risk that you need to guard against is greater than that, then you'd be looking at VM-level isolation rather than this kind of tool. > * Containerisation is a big topic when running untrusted software for exactly (but not just) this reason Indeed. And while personally, I'd still recommend containerisation, that doesn't mean this kind of tool doesn't also have merit. For example containerisation can get complicated if you have several processes that might need to work against the same project. > * While passwords/tokens might carry a big risk depending on what you do, I find that I worry more about my local data compared to my remote data — and virtualisation or containerisation helps with that. This surprises me because even if you're not using cloud computing, your local machine is still typically just the development environment and it's your "remote" (whether that's in a DC somewhere or hosted on-prem) is where the actual data, compute and infrastructure exist. | ||||||||
| ||||||||
| ▲ | idoubtit an hour ago | parent | prev [-] | |||||||
* Dealing with encrypted files is easy, and more versatile than a generic wrapper. E.g. to load a secret environment: `eval $(age -d -i secrets.env.age)`. With the added bonus that it only relies on a trusted tool, age. | ||||||||