Hello, I've implemented some changes, most notably initial support for restores. I haven't updated the README yet.
The CLI is still subject of change, I believe it should be refactored. I am tracking many ideas in Github issues. There are two notable groups: * Help-wanted (currently two issues): https://github.com/v6ak/qubes-incremental-backup-poc/labels/help%20wanted * [WIP] Goals – long-term meta-tasks that show visions. They will link related issues. https://github.com/v6ak/qubes-incremental-backup-poc/labels/goal Now, I will respond to some comments: Ad leaking data to the attacker: Hmm, it is not in limitations, it is in goals. So, I'll have to rephrase it differently. But in goals, I definitely agree that it sounds weird. It sounds like it was a goal to leak the data, not to limit the leaks to something reasonable. Ad pruning old backups: Good point, I'll add it. AFAIK, this is always matter of some tradeoff. Ad Duplicati: I've taken a brief look at it. The backup design looks good. What I am somewhat worried about is encryption: By default, it uses AESCrypt format, which don't seem to be well-known. I am always skeptical when reading that something uses strong AES-256 encryption without further details – I tend to imaginate ECB or fixed-IV CTR without any authentication, maybe you know why… It is hard to find any details on AESCrypt, even the format description is not very verbose – it does not even mention mode of operation. I felt like reverse engineer when I finally found “CBC” in the source code. And I still don't know important details about authentication. I know there are two HMACs, but I don't know if it is mac-then-encrypt, mac-and-encrypt or encrypt-and-mac. Also, list of vulnerabilities (not very visible) does not suggest a good design: https://www.aescrypt.com/wishlist.html . And there is more to review, e.g. what implementation of AES is used and if it has any side channels. In general, I would like to avoid AESCrypt format at all. Duplicati can also use GPG. Sure, even GPG can be used wrongly (most obvious: allowing to interchange various backup files within one VM – not much practical if they are large blocks), but I feel better with GPG that with AESCrypt. Unfortunately, I see it only with use of asymmetric encryption, which is not what I would want – not only for encryption strength against quantum computers, but also for implementation hassle – this would probably require generating and storing some extra keypair per VM (barring the fact it would be rather pair of pairs – for authentication and encryption). But maybe Duplicati can be somehow convinced to use GPG with symmetric encryption. There is one more concern with Duplicati: How would we split it between BDVM (backup DVM) and BackupStorageVM? Is this possible without recompilation of the whole Duplicati? In Duplicity, I add a backup backend to BDVM that forwards everything to another backend in BackupStorageVM. So, BDVM loads dynamically my backend and qrexec handler in BackupStorageVM loads the desired Duplicity backend. I am almost sure this is somehow possible with Duplicati, but I am unsure about the effort required for this. Do you have any ideas about mentioned implementation concerns related do Dupicati? A side note on potential backup-block-level malleability: Not only this is a minor concern today, it should become non-concern when Merkle-tree-based whole-backup authentication is implemented. On BTRFS/ZFS/LVM I don't know much about differences between them when used as pools for block devices. You might have a point, but discuss it in a separate thread, please. A note relevant for backup: It should be easy to add support for ZFS/BTRFS, I believe. You can see the current implementation for LVM: https://github.com/v6ak/qubes-incremental-backup-poc/blob/f9291b3fbec459cbc2f44279f7a31a3613a49811/qubesvmtools.py#L29-L38L86-L109 https://github.com/v6ak/qubes-incremental-backup-poc/blob/f9291b3fbec459cbc2f44279f7a31a3613a49811/qubesvmtools.py#L29-L38L86-L109 Regards, Vít Šesták 'v6ak' -- You received this message because you are subscribed to the Google Groups "qubes-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to qubes-users+unsubscr...@googlegroups.com. To post to this group, send email to qubes-users@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/qubes-users/129210a1-6f11-4182-9d07-e79936424f8d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.