Skip to content
This repository has been archived by the owner on Apr 17, 2023. It is now read-only.
/ yopass Public archive
forked from jhaals/yopass

Secure sharing for secrets and passwords

License

Notifications You must be signed in to change notification settings

TierMobility/yopass

 
 

Repository files navigation

Yopass-horizontal

Yopass - Share Secrets Securely

Build Status Go Report Card

demo

Yopass is a project for sharing secrets in a quick and secure manner*. The sole purpose of Yopass is to minimize the amount of passwords floating around in ticket management systems, IRC logs and emails. The message is encrypted/decrypted locally in the browser and then sent to yopass without the decryption key which is only visible once to the user during encryption, yopass then returns a one-time URL with specified expiry date.

There is no perfect way of sharing secrets online and there is a trade off in every implementation. Yopass is designed to be as simple and "dumb" as possible without compromising on security. There's no mapping between the generated UUID and the user that submitted the encrypted message. It's always best send all the context except password over another channel.

Demo available here. It's recommended to host your own if you care about security.

  • End-to-End encryption using SJCL
  • Secrets can only be viewed once
  • No accounts or user management required
  • Secrets self destruct after X hours

Installation / Configuration

Here are some deployment options depending on your setup.

Google App Engine

cd deploy/app-engine && ./deploy.sh

requires go 1.11, gcloud and yarn.

AWS Lambda

Yopass website is a separate component in this step which can be deplpyed to netlify for free.

You can run Yopass on AWS Lambda backed by dynamodb

cd deploy/aws-lambda && ./deploy.sh

Docker

Build local image docker build -t tier_yopass . Start memcached to store secrets in memory

docker run --name memcached_yopass -d memcached

TLS encryption

docker run -p 1337:1337 -v /local/certs/:/certs \
    --link memcached_yopass:memcache -d tier_yopass -memcached=memcache:11211 -tls.key=/certs/tls.key -tls.cert=/certs/tls.crt

Plain(make sure this is restricted to localhost)

docker run -p 1337:1337 --link memcached_yopass:memcache -d tier_yopass -memcached=memcache:11211

Kubernetes

kubectl apply -f deploy/yopass-k8.yaml
kubectl port-forward service/yopass 1337:1337

This is meant to get you started, please configure TLS when running yopass for real.

About

Secure sharing for secrets and passwords

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 54.3%
  • Go 33.9%
  • HTML 3.5%
  • Shell 3.1%
  • Dockerfile 2.8%
  • CSS 1.9%
  • HCL 0.5%