duse - preview
securely sharing secrets

Use Duse to share secrets with coworkers or friends. Duse uses well established encryption algorithms combined to securely share your secrets. During the whole process the server is not able to decrypt the secret, only participants are able to do so.

The combination of the used algorithms, or the cryptographic protocol, is open and we are happy to discuss improvements with you. The cryptographic protocol is documented on GitHub. This is a preview, we incourage you to check it out and improve it with us!

Setup your own


We have developed a RESTful API to distribute your secrets securely. It can easily be setup on Heroku or using Docker.

Go ahead and setup your own instance on Heroku or manually setup one. We've prepared easy to follow setup guides for you.

Deploy

or

Clients


A CLI and library written in ruby is the reference implementation, but we hope there will be plenty of other implementations in other languages.

Currently only the CLI is supported, and a currently highly experimental webinterface written in dart is in the pipeline.


# install the CLI
$ gem install duse

$ duse config
Uri to the duse instance you want to use: https://myduseinstance.com/

$ duse register
Username: flower-pot
Email: fbranczyk@gmail.com
Password: xxxxxxxx
Confirm password: xxxxxxxx

Which private ssh-key do you want to use?
1. /Users/fredericbranczyk/.ssh/id_rsa
2. Generate a new one
3. Let me choose it myself
Select by entering the number.
1

Successfully created your account! An email to confirm it has been sent. Once confirmed you can login with "duse login"
                  

Then confirm the account with the instructions sent in the email.


$ duse account confirm <your-token>

$ duse login
Username: flower-pot
Password: xxxxxxxx
Successfully logged in!
                  

Now that you are registered and logged in, the real fun can begin.

The CLI is self explanatory in what it can do.


$ duse

Usage: duse COMMAND ...

Available commands:

  account        Manage your account
  config         Configure the client
  help           Displays help messages, such as this one
  login          login to access and save secrets
  register       Register a new account
  secret         Save, retrieve and delete secrets
  version        print the client version

run `duse help COMMAND` for more infos
                  

Let's take a look at what we can do with secrets.


$ duse help secret

Save, retrieve and delete secrets

Usage: duse secret COMMAND ...

Available commands:

  add            Interactively create a new secret, or set values via options
  get            Retrieve a secret
  list           List all secrets you have access to
  remove         Delete a secret
  update         Save a new secret

run `duse help secret COMMAND` for more infos
                  

Add a new secret


$ duse secret add

What do you want to call this secret? MySecret
Secret to save: MySecretContent
Do you want to share this secret?[y/n] n
Secret successfully created!
                  

And retrieve the secret interactively


$ duse secret get

1: MySecret

Select the id of the secret to retrieve: 1

Name:   MySecret
Secret: MySecretContent
Access: flower-pot
                  

Or directly if you already know the secrets id


$ duse secret get 1

Name:   MySecret
Secret: MySecretContent
Access: flower-pot
                  

We can also just print the secret plain


$ duse secret get 1 --plain
MySecretContent
                  

This allows us to pipe the secret or use it in environment variables


$ duse secret get 1 --plain | xclip -sel c -i # linux copy to clipboard

$ duse secret get 1 --plain | pbcopy # osx copy to clipboard

$ ENV_VAR=$(duse secret get 1 --plain) # set environment variable