Git Product home page Git Product logo

cryptomator's Introduction

cryptomator

Build Known Vulnerabilities Quality Gate Status Twitter Crowdin Latest Release Community

Supporting Cryptomator

Cryptomator is provided free of charge as an open-source project despite the high development effort and is therefore dependent on donations. If you are also interested in further development, we offer you the opportunity to support us:

Gold Sponsors

gee-whiz

Silver Sponsors

Mow Capital EaseUS Hassmann IT-Forensik

Special Shoutout

Continuous integration hosting for ARM64 builds is provided by MacStadium.

MacStadium


Introduction

Cryptomator offers multi-platform transparent client-side encryption of your files in the cloud.

Download native binaries of Cryptomator on cryptomator.org or clone and build Cryptomator using Maven (instructions below).

Features

  • Works with Dropbox, Google Drive, OneDrive, MEGA, pCloud, ownCloud, Nextcloud and any other cloud storage service which synchronizes with a local directory
  • Open Source means: No backdoors, control is better than trust
  • Client-side: No accounts, no data shared with any online service
  • Totally transparent: Just work on the virtual drive as if it were a USB flash drive
  • AES encryption with 256-bit key length
  • File names get encrypted
  • Folder structure gets obfuscated
  • Use as many vaults in your Dropbox as you want, each having individual passwords
  • Four thousand commits for the security of your data!! 🎉

Privacy

  • 256-bit keys (unlimited strength policy bundled with native binaries)
  • Scrypt key derivation
  • Cryptographically secure random numbers for salts, IVs and the masterkey of course
  • Sensitive data is wiped from the heap asap
  • Lightweight: Complexity kills security

Consistency

  • Authenticated encryption is used for file content to recognize changed ciphertext before decryption
  • I/O operations are transactional and atomic, if the filesystems support it
  • Each file contains all information needed for decryption (except for the key of course), no common metadata means no SPOF

Security Architecture

For more information on the security details visit cryptomator.org.

Building

Dependencies

  • JDK 21 (e.g. temurin, zulu)
  • Maven 3

Run Maven

mvn clean install
# or mvn clean install -Pwin
# or mvn clean install -Pmac
# or mvn clean install -Plinux

This will build all the jars and bundle them together with their OS-specific dependencies under target. This can now be used to build native packages.

License

This project is dual-licensed under the GPLv3 for FOSS projects as well as a commercial license for independent software vendors and resellers. If you want to modify this application under different conditions, feel free to contact our support team.

cryptomator's People

Contributors

antoinejt avatar based2 avatar beyermart avatar bluen avatar chewitt1 avatar cryptobot avatar dependabot[bot] avatar flyingarg avatar gregvh avatar iamtheiam avatar infeo avatar janirutec avatar jellemdekker avatar jncharon avatar kevinstsauveur avatar ledwardchow avatar marcjulian avatar markuskreusch avatar mindmonk avatar overheadhunter avatar pbillodeau avatar purejava avatar rexbas avatar sailreal avatar snyk-bot avatar sschuberth avatar tillerino avatar tobihagemann avatar vsevolodgolovanov avatar zhouer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cryptomator's Issues

Improve Key Derivation

Two hints:

  • Use scrypt (instead or additionally to PBKDF2) to increase bruteforcing cost on specialized hardware
  • If using PBKDF2, move from PBKDF2WithHmacSHA1 (deprecated soon) to PBKDF2WithHmacSHA256 (check JCE requirements though!)

Anomaly in decryption of filenames, e.g. if there are sync conflicts

For example if you have the filenames

AAVJUNHEL4F6E6FEEQSTT26EE3BSVIH5LBJSM7WVI4======.aes
and
AAVJUNHEL4F6E6FEEQSTT26EE3BSVIH5LBJSM7WVI4====== (1).aes

because of sync conflicts, Cryptomator behaves in a weird way:

In the virtual (decrypted) drive, you won't see both files, but only one. In this case you would see the file readme.pdf, which is the decrypted filename of the example above.

Now if you delete readme.pdf (still in the virtual decrypted drive), it will only delete AAVJUNHEL4F6E6FEEQSTT26EE3BSVIH5LBJSM7WVI4======.aes on the encrypted side.

After locking and unlocking the vault, readme.pdf still exists and deleting that will cause the deletion of AAVJUNHEL4F6E6FEEQSTT26EE3BSVIH5LBJSM7WVI4====== (1).aes, which is probably the weirdest part.

Authentication Issue iOS with iCloud

Updated to latest iOS and I have come across some issues, please feel to break this post into relevant issues.

*** Add existing file to vault (vault is unlocked prior) ***

save1

save2

save3

save4

Please note the above works perfectly with DropBox

*** Multiple Select ***
If you select more than 1 file there is no option to add to Cryptomator

multipleselect

*** Save a file to Cryptomator - ie. save a numbers document straight to the vault does not function correctly ***

add1

add2

add3

*** Add an existing file from iCloud to Cryptomator. ie. if I already have numbers documents saved under the numbers folder in iCloud, I can not move/copy these to the vault ***

icloud1

icloud2

icloud3

icloud4

Please note the above works perfectly with DropBox

I hope that makes sense but please ask if you need me to explain further, thank you.

Vault not opening when using an automated proxy script (pac-file)

Yesterday I installed Cryptomator on my Windows 8.1 x64 notebook and everything went smooth.
Today I installed it on my business notebook with Windows 7 x64 Enterprise edition and the vault won't open/ mount.

It's an HP Folio 9470 with a fingerprint scanner.
The Windows event viewer gives me an "Validity USDK" error in the application log which should be related to the fingerprint scanner.

Apart from that there's no further error message or log entry.

License

Hallo! I miss a statement on the webiste under which license the binaries and the source code are published. Is it GPL version 3 (preferable, if possible). Anyway, it should be stated on the website in any case.

Want to create some wiki

Hello, I am just going to this project looks promising as I am doing research for AES.
Are you using Java8 parallelism for SMP ?

If you could give me some details, I can make small contribution by wiki..
Pl contact me [email protected]

Provide some basic mechanism preventing loss of .masterkey.json

Since a loss of .masterkey.json means absolute irrecoverability of the unencrypted data, the file needs to stay intact at all costs. Synchronization services like btsync, which don't maintain a history, are vulnerable to file corruption.

Safeguards against this issue should not escalate, since the user can manually copy the .masterkey.json (even publically if he so chooses), and the underlying synchronization service should be trusted to some extent to keep the data safe.

A basic mechanism to provide some extra security would make a backup of the .masterkey.json file whenever decryption was successful.

Change password

Since the quality of the chosen password for a folder is essential to its security, it should be possible to change the password for a folder after it has been created. A repeated encryption of the folder is not necessary. The kek can simply be recalculated, changing the encrypted keys while keeping the actual keys.

Support for windows file attributes

The following file attributes are not yet handled correctly:

  • Win32CreationTime
  • Win32LastAccessTime
  • Win32LastModifiedTime

All times are set to the date, when files has been moved onto the drive.

add portable mode

Let the users decide, whether they will use it in normal mode or portable mode.

In portable mode:

  • saves all data from Roaming folder (Windows) in execute folder (where the *.exe or *.jar is located)
  • maybe the auto unlocking feature #40 should not be available here

One solution could be the Portable Apps Platform App Maker, but a real portable mode of the application is much better

In Linux, some file managers do not recognize the "dav" schema-name in URL. They instead prefer "webdav".

The misbehaving setup, Kubuntu 15.04, Dolphin is the default file manager.

Usecase :
When the application tries to open the file manager using the command xdg-open "dav://localhost:54718/f16a6472-d454-43b1-be7b-378602d6449b/vault3"

Result :

  1. The application prompts the following errors in debug :

kioclient(7931)/kio (KRun): #### NO SUPPORT FOR READING!

at org.cryptomator.ui.util.command.CommandResult.assertOk(CommandResult.java:88) ~[classes/:?]
at org.cryptomator.ui.util.command.CommandRunner.execute(CommandRunner.java:69) ~[classes/:?]
at org.cryptomator.ui.util.command.Script.execute(Script.java:38) ~[classes/:?]
at org.cryptomator.ui.util.mount.LinuxGvfsWebDavMounter.mount(LinuxGvfsWebDavMounter.java:54) ~[classes/:?]
at org.cryptomator.ui.model.Vault.mount(Vault.java:114) [classes/:?]
at org.cryptomator.ui.controllers.UnlockController.lambda$didClickUnlockButton$20(UnlockController.java:135) [classes/:?]
at org.cryptomator.ui.controllers.UnlockController$$Lambda$347/337042139.call(Unknown Source) [classes/:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_45]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_45]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45]

The drive is then unmounted and the application prompts for vault password again. It does not prompt any visible errors.

Futhur Analysis :
However if I debug the application by making changes to LinuxGvfsWebDavMounter.java to use webdav schema-name, which results in the following command be executed

xdg-open "webdav://localhost:54718/f16a6472-d454-43b1-be7b-378602d6449b/vault3"

This results in the application executing as expected.

It would seem that file managers either accept "dav/davs" OR "webdav/webdavs" when opening handling webdav.

Add "About Cryptomator" sheet

Just a feature suggestion to add a quick "About Cryptomator" panel/view listing the current version, maybe the project page, etc. into the menu as an option.

Command Line Interface (CLI)

Hello,

it would be awesome if there could be a command line version!
I want to crypt files on my rpi without GUI.

Best regards

SeameX

cant view files

I added some files on the networkdisc. I pushed a *.rar File on the container. After the file is on the disc, i tried to move it on my desktop. And I cant move it. There is always an error:
2015-03-10_12-55-40

iCloud Drive Mac OS X

If I create a Vault on a Mac within iCloud Drive it appears on the iCloud Drive on the iPhone but if I click add existing Vault it is not shown.

Likewise if I create a Vault on the iPhone it does not sync back to the Mac

Windows: First initial vault won't show up in explorer

If you run Cryptomater.jar, you add a new vault (the list of vaults is empty) you unlock it, then the virtual hard drive doesn't appear in windows explorer.

If you add a second vault and unlock it, the second appears in explorer.

Also if you restart the application and unlock both, both are shown up.

If you restart the application after you added the first vault, and then unlock it, the vault is shown up in explorer.

User Interface is small on HiDPI / Retina displays

Running Windows 8.1 in Parallels on a Retina MBP. Windows reports desktop resolution at 3402 x 2118 which makes the initial Cryptomator screen very small and difficult to read in comparison to the rest of the document.

Attaching a full-res screen here so that you get the idea. Wish I could pre-label these for you folks; definitely an "enhancement" and not a bug.
cryptomator_win8_screen

Auto unlock vaults on program start

The user should have the possibility to set a specific vault for auto unlock with application start.

Like it MS Bitlocker does, with crypted data partitions, if the system partition is crypted and the user selected a data partition for auto unlock at system start.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.