Community backup

Have been experimenting with using gocryptfs reverse mode (mount virtual encrypted folder that mirrors an actual folder) and adding encrypted virtual folder to Syncthing as send only for backup. Since it’s backup turn folder on every month or so and otherwise leave paused.

Would anyone be interested in community backup project where encrypted data gets backed up to others machines? Ideally data would be in three locations but probably two to start. Users would be asked to accept backups equal to what is used. Everything can be organized in a simple website/ spreadsheet.

Possibly there is no demand, or potentially it works. Does this interest other Syncthing users?

Right now Windows users cannot not use gocryptfs for this purpose (because a .stfolder cannot be added to a read-only gocryotfs reverse volume on Windows). While this prevents many from participating for a beta test of the concept maybe this is acceptable. Advanced Windows users aware of risks could participate with EncFs (not recommended), solely contribute with backing up others data until works on Windows, or participate by running gocryptfs through the Windows Subsystem for Linux.

Some things to note. gocrytfs has been audited but the reverse mode has not. Still trust more than any proprietary cloud backup solution that is supposedly encrypted (where the company holds the keys literally and figuratively). Adding an unknown device to Syncthing does not appear to be a large risk. Folders must still be accepted. This concept works better with Syncthing than rysnc/ similar because allowing an unknown device to connect in Syncthing is much different/ much more secure than allowing SSH access. Windows implemntation of gocryptfs found here: https://github.com/bailey27/cppcryptfs

3 Likes

it’s something i’ve thought about. without automatic accounting though it would become a pain to administer.

Do not see much demand here. That being said would not be pain to administer. Spreadsheet would list the sender and receiver (public) device ID’s. Administrator would notify if one’s backup buddy (lacking better word) changes. Google Spreadsheet for example can also send notifications when a change is made to a device ID for one’s backup.

Administrator could be aware of time each device is last seen by asking all participants to accept an empty send only shared folder. If more than 30 days absence a given device gets removed from the backup pool. Personally do not see this as necessary. Think best (and simpler) if participants keep track if they need to backup to new device. Then administrator can assign new device that can be backed up to. Again though going back to not seeing much demand. But concept is strong and not difficult if demand existed.

Do you have interest in backing up to me? If so how much space would you require?

Community backup is a interesting idea, but the biggest issue is trust. How do I know you don’t mess with my data? and that you store them? You could in theory just > /dev/null them.

storj.io and sia.tech try to solve some of the issue, but they lack traction (I won’t trust them (yet?)).

Folder to be backed up should be encrypted locally with gocryptfs reverse mode before being added to Syncthing.

Doesn’t stop someone from just deleting your backup, as @klausenbusk said…

gocryptfs reverse mode folders are read-only.

Additionally backup folders would/ should be set as send-only and optimally would be on more than one machine.

As a proper backup also would leave folders paused, less for once a week/ month/ whatever chosen backup schedule is.

As to preventing folders from being deleted (not data), this obviously cannot be prevented. However two points. First again data would optimally be on multiple machines. Second those who remove folders for no apparent reason would quickly be removed from the backup pool spreadsheet (for both sending and receiving) and a new public device ID would replace.

So I assume I should pull random data from the “folder” from time-to-time? I wouldn’t do that under normal circumstances and I’m not gonna take any risk with my backup, at best this could be a supplement to my existing backup solution.

Could you rephrase what you mean by “pulling random data?”

I need to ensure that the data is stored, so I need to pull a “random” samples from time-to-time.

Syncthing would act as the mechanism that verifies the integrity of the backup folder. If a send-only folder is out of date Syncthing shows this in the GUI.

It’s not so simple to pull a random piece of gocryptfs encrypted data to verify it manually. Basically one would need a separate machine to sync data to and then mount gocryptfs data to manually verify if do not trust Syncthing to verify integrity. Setting file pull to smallest first might negate need to sync entire folder.

It’s okay that would not work for your use case. Market demand is in agreement at present time.

I’ll already do that kind of Backup for really Important Data :slight_smile:

  • Send-Only Backup Folder on my NAS
  • Shared to an Friends NAS + vServer
  • Backups done via BorgBackup (https://borgbackup.readthedocs.io) - Nice “Incremental Forever” Backups with Encryption

Works like a Charm :slightly_smiling_face:

1 Like

Any reason why you wouldn’t use enfcs reverse mode? I’ve read the sun thing encryption discussion with great interest but as it looks like there will be no progress there any time soon something like enfcs/gocryptfs --reverse seems ideal. I don’t need to encryption my local data, yet can share it with untrusted sources for backup (and vice versa).

There wasn’t much interest when made that proposition to the community.

Encfs is not secure for important data. Gocryptfs in reverse mode will not work for Windows users at the present time (unless Windows gocryptfs port resolved issue since this thread was started.)