All Projects → jhaals → Yopass

jhaals / Yopass

Licence: apache-2.0
Secure sharing for secrets, passwords and files

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Yopass

Asciidoctor.js
A JavaScript port of Asciidoctor, a modern implementation of AsciiDoc
Stars: ✭ 500 (-2.15%)
Mutual labels:  hacktoberfest
Appwrite
Appwrite is a secure end-to-end backend server for Web, Mobile, and Flutter developers that is packaged as a set of Docker containers for easy deployment 🚀
Stars: ✭ 14,592 (+2755.58%)
Mutual labels:  hacktoberfest
State Machine Cat
write beautiful state charts 🙀
Stars: ✭ 509 (-0.39%)
Mutual labels:  hacktoberfest
Sqlfluff
A SQL linter and auto-formatter for Humans
Stars: ✭ 497 (-2.74%)
Mutual labels:  hacktoberfest
Miminium
DISCONTINUED - Miminium Admin Template
Stars: ✭ 502 (-1.76%)
Mutual labels:  hacktoberfest
Worldview
Interactive interface for browsing global, full-resolution satellite imagery
Stars: ✭ 504 (-1.37%)
Mutual labels:  hacktoberfest
Imgui Go
Go wrapper library for "Dear ImGui" (https://github.com/ocornut/imgui)
Stars: ✭ 499 (-2.35%)
Mutual labels:  hacktoberfest
Flex
The minimalist Pelican theme.
Stars: ✭ 510 (-0.2%)
Mutual labels:  hacktoberfest
Facebook Scraper
Scrape Facebook public pages without an API key
Stars: ✭ 499 (-2.35%)
Mutual labels:  hacktoberfest
Web3.php
A php interface for interacting with the Ethereum blockchain and ecosystem. Native ABI parsing and smart contract interactions.
Stars: ✭ 507 (-0.78%)
Mutual labels:  hacktoberfest
Alembic
⚗️ A Jekyll boilerplate theme designed to be a starting point for any Jekyll website
Stars: ✭ 501 (-1.96%)
Mutual labels:  hacktoberfest
Circleci Docs
Documentation for CircleCI.
Stars: ✭ 501 (-1.96%)
Mutual labels:  hacktoberfest
Vertical Stack In Card
📐 Home Assistant Card: Similar to vertical/horizontal-stack, but removes card borders
Stars: ✭ 507 (-0.78%)
Mutual labels:  hacktoberfest
Node Maxmind
Maxmind GEO Lookup
Stars: ✭ 501 (-1.96%)
Mutual labels:  hacktoberfest
Astroquery
Functions and classes to access online data resources. Maintainers: @keflavich and @bsipocz and @ceb8
Stars: ✭ 510 (-0.2%)
Mutual labels:  hacktoberfest
Lapin
AMQP client library in Rust, with a clean, futures based API
Stars: ✭ 497 (-2.74%)
Mutual labels:  hacktoberfest
React Native Background Upload
Upload files in your React Native app even while it's backgrounded. Supports Android and iOS, including camera roll assets.
Stars: ✭ 504 (-1.37%)
Mutual labels:  hacktoberfest
Hacktoberfest
Hacktoberfest - App to manage the annual open source challenge.
Stars: ✭ 512 (+0.2%)
Mutual labels:  hacktoberfest
Ngx Dnd
🕶 Drag, Drop and Sorting Library for Angular2 and beyond!
Stars: ✭ 511 (+0%)
Mutual labels:  hacktoberfest
Stryker Net
Mutation testing for .NET core and .NET framework!
Stars: ✭ 491 (-3.91%)
Mutual labels:  hacktoberfest

Yopass-horizontal

Yopass - Share Secrets Securely

Go Report Card codecov

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, Slack messages 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 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 yopass yourself if you care about security.

  • End-to-End encryption using OpenPGP
  • Secrets can only be viewed once
  • No accounts or user management required
  • Secrets self destruct after X hours
  • Custom password option
  • Limited file upload functionality

Yopass was first released in 2014 and has since then been maintained by me and contributed to by this fantastic group of contributors. Yopass is used by many large corporations which of which non are currently listed in this readme. If you are using yopass and want to support other then by code contributions. Give your thanks in an email, consider donating or by giving consent to list your company name as a user of Yopass in this readme(Trusted by)

Command-line interface

The main motivation of Yopass is to make it easy for everyone to share secrets easily and quickly via a simple webinterface. Nevertheless, a command-line interface is provided as well to support use cases where the output of a program needs to be shared.

$ yopass --help
Yopass - Secure sharing for secrets, passwords and files

Flags:
      --api string          Yopass API server location (default "https://api.yopass.se")
      --decrypt string      Decrypt secret URL
      --expiration string   Duration after which secret will be deleted [1h, 1d, 1w] (default "1h")
      --file string         Read secret from file instead of stdin
      --key string          Manual encryption/decryption key
      --one-time            One-time download (default true)
      --url string          Yopass public URL (default "https://yopass.se")

Settings are read from flags, environment variables, or a config file located at
~/.config/yopass/defaults.<json,toml,yml,hcl,ini,...> in this order. Environment
variables have to be prefixed with YOPASS_ and dashes become underscores.

Examples:
      # Encrypt and share secret from stdin
      printf 'secret message' | yopass

      # Encrypt and share secret file
      yopass --file /path/to/secret.conf

      # Share secret multiple time a whole day
      cat secret-notes.md | yopass --expiration=1d --one-time=false

      # Decrypt secret to stdout
      yopass --decrypt https://yopass.se/#/...

Website: https://yopass.se

The following options are currently available to install the CLI locally.

  • Compile from source (needs Go >= v1.15)

    export GO111MODULE=on && go get github.com/jhaals/yopass/cmd/yopass && go install github.com/jhaals/yopass/cmd/yopass
    
  • Arch Linux (AUR package)

    yay -S yopass
    

Installation / Configuration

Here are the server configuration options.

Command line flags:

$ yopass-server -h
      --address string     listen address (default 0.0.0.0)
      --database string    database backend ('memcached' or 'redis') (default "memcached")
      --max-length int     max length of encrypted secret (default 10000)
      --memcached string   Memcached address (default "localhost:11211")
      --metrics-port int   metrics server listen port (default -1)
      --port int           listen port (default 1337)
      --redis string       Redis URL (default "redis://localhost:6379/0")
      --tls-cert string    path to TLS certificate
      --tls-key string     path to TLS key

Encrypted secrets can be stored either in Memcached or Redis by changing the --database flag.

AWS Lambda

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

You can run Yopass on AWS Lambda backed by dynamodb

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

Docker

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 jhaals/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 jhaals/yopass --memcached=memcache:11211

Or use docker-compose to deploy both memcached and yopass containers.

cd deploy/
docker-compose up -d

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.

Monitoring

Yopass optionally provides metrics in the OpenMetrics / Prometheus text format. Use flag --metrics-port <port> to let Yopass start a second HTTP server on that port making the metrics available on path /metrics.

Supported metrics:

  • Basic process metrics with prefix process_ (e.g. CPU, memory, and file descriptor usage)
  • Go runtime metrics with prefix go_ (e.g. Go memory usage, garbage collection statistics, etc.)
  • HTTP request metrics with prefix yopass_http_ (HTTP request counter, and HTTP request latency histogram)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].