Status: Fixed
I have now implemented a password protection control.
You can now only view passwords when you enter them.
After this, you may reset the passwords, by entering a
new one, but you cannot read the existing passwords.
To protect against people reading the database,
which contains the passwords in clear text, the
database is now encrypted by using the standard
SQLite encryption method. This is different
than what I proposed, but is a much stronger
protection than merely scrambling the passwords,
and also protects all information (servername, etc).
It works by setting an environment variable
called DUPLICATI_DB_KEY. When no password
is set, Duplicati will use the key "Duplicati_Key_42",
ensuring that all databases are encrypted by default.
Using a pre-defined publicly known key is obviously
not a strong protection, but it protects from casual
users attempting to browse the database, and it also
protects from string scanners that scan a harddisk
for possible passwords.
On the first startup, Duplicati will encrypt the database,
using the mentioned key. You may want to delete any backup
databases that are placed in the same folder as the database.
Should you wish to decrypt the database, you can start
Duplicati.exe with the commandline option "--unencrypted-database".
This will use the current key to decrypt the database, and save it
without encryption.
Should you wish to change the database password, simply decrypt the
database, then change the password via the environment variable,
and start Duplicati.exe as normal.
The SQLite documentation for the feature is here:
http://www.hwaci.com/sw/sqlite/see.html
Unfortunately, it does not seem as if any
of the free SQLite tools supports this.
The SQLite library found on Ubuntu
does not support encryption, so I have disabled
this feature by default on Linux.
If a user has a special compiled version
of SQLite, they may use the environment
variables as mentioned above.
I will write this information into a wiki
page as soon asap.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@498 59da171f-624f-0410-aa54-27559c288bec
This was based on the idea that the interfaces should remain static.
I hope this change is enough to ensure stable interfaces until release 1.2.
Overview of changes:
Moved all interfaces into the same dll.
Encryption and compression is now plugable modules, just as the backends.
Encryption/compression can now register an UI.
Encryption now uses AESCrypt as a default.
GPG does not default to using the --armor option.
Added support for generic modules, but none are written yet.
Added support for plugable settings pages in the "Options" dialog.
Fixed issue #148.
Duplicati now uses AESCrypt as the default encryption format.
Fixed issue #199.
GPG now supports custom commandline options.
Fixed issue #207.
Encryption modules are now plugable.
Fixed issue #118.
S3 credentials are now stored.
Fixed issue #151.
Backends can now register system wide options.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@427 59da171f-624f-0410-aa54-27559c288bec
Fixed issue #69.
Fixed issue #142.
I finally got the time to complete the pause and throttle options.
It required a minor rewrite, so I also fixed issue #142.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@310 59da171f-624f-0410-aa54-27559c288bec
Updated some sub-projects to VS 2008, fixed .Net 3.5 dependencies to 2.0.
Added a language selection option to the settings dialog.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@222 59da171f-624f-0410-aa54-27559c288bec
Fixed issue #62.
Fixed issue #63.
All open issues for 1.0 are now complete (except #49 which is missing feedback).
This will likely be RC2, I will test it for a while before posting RC2.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@174 59da171f-624f-0410-aa54-27559c288bec
A full rewrite of the SSH backend, and a simple C# version of expect.
Fixed issues with similar named files on the same backend.
Fixed an issue where files were not deleted.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@172 59da171f-624f-0410-aa54-27559c288bec
Added a button to purge the cache from the settings menu.
Added a size label to show the size of the signature cache.
Made the ListBackupFiles abort the current action when closed.
Made the ListBackupFiles available from the status window.
Fixed a small problem where all folders were marked as deleted in the previous commit (would only result in missing empty folders on restore).
Changed the name of the "Setup" menu to be "Wizard ..." for issue #13, and changed the icon.
Added Mono compatible SQLite dll's.
Updated the SQLite dll's to version 1.0.60.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@139 59da171f-624f-0410-aa54-27559c288bec
Fixed#12, signature cache, which is now enabled pr. default.
Added a cache for the S3 redirect tests, which should limit the number of calls.
Added some GC.Collect calls for the S3 backend, as it appears to be leaking HttpWebRequest objects for some reason.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@111 59da171f-624f-0410-aa54-27559c288bec
Added code to restore the setup from a backup.
Removed the unused RDiffWrapper.
Added events to the main interface.
The beta for 1.0 is now completed, but the installer is missing.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@89 59da171f-624f-0410-aa54-27559c288bec
Updated the wizard to allow GPGEncryption.
Settings now reflect the actual paths required.
Completely reworked the way differential updates are read and written,
which gives a much cleaner code, a heavy performance boost and a
highly reduced number of temporary files.
Removed duplicated code for streamwrapping.
Updated SharpZipLib to the latest release.
Removed unused compression code.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@84 59da171f-624f-0410-aa54-27559c288bec