frozenkrill icon indicating copy to clipboard operation
frozenkrill copied to clipboard

nixify

Open plebhash opened this issue 1 year ago • 3 comments

the README suggests a QEMUlated Alpine box as a mechanism for system isolation

an interesting alternative approach could be a nix derivation

that could open up some interesting possibilities

cc @realeinherjar

plebhash avatar Nov 06 '23 09:11 plebhash

QEMU is used for demostration purposes, for real world usage we suggest a bare metal machine booted with a minimal linux/unix distribution without any network access. Right now we only create images for Alpine: https://github.com/planktonlabs/bootable-frozenkrill

We could offer NixOS ISO support perhaps using something like: https://nixos.wiki/wiki/Creating_a_NixOS_live_CD

Another related idea is nixifying the dev environment so you don't need to pre-install rust or other libraries

data-retriever avatar Nov 06 '23 15:11 data-retriever

my inspiration actually comes from nix-bitcoin

Flakes-based quick start If you use a Flakes-enabled version of Nix, run the following command to start a minimal nix-bitcoin QEMU VM:

nix run github:fort-nix/nix-bitcoin/release The VM (defined in flake.nix) runs in the terminal and has bitcoind and clightning installed. It leaves no traces (outside of /nix/store) on the host system.

ISO implies extra steps that I believe nix allows us to bypass a flake.nix would allow for a one-command kind of UX while deploying the entire QEMU setup in an automated way.

The fact that "it leaves no traces on the host system" can be leveraged for a more straightforward UX with little (?) security tradeoffs.

plebhash avatar Nov 06 '23 23:11 plebhash

The question is: what's is the security of the host system? In particular, at any moment in past or future will it be connected to the internet?

Note that if you run the whole nix run github:fort-nix/nix-bitcoin/release inside something like xterm, then it's trivial for a keylogger to grab the password and if you connect to the Internet without completely wiping out your system, it will be able to upload this data to a remote server.

If you want to use it as a hot wallet, then it's okay, but I would say that the risk is too high for a cold wallet.

data-retriever avatar Nov 07 '23 02:11 data-retriever