Create one-time links for securely sending data

Overview

Dead Drop Service

Send One-Time Secrets in a secure way

A Dead Drop service written in Kotlin / KTor.

This service uses sjcl on client-side to encrypt the data, stores the encrypted data on the server (while never sharing the password with the server), and generates a link to get the data (once) again.

This is the source-code of drop.moetz.dev.

Setup using Docker

The docker image can be found here: hub.docker.com/r/flowmo7/dead-drop.

Possible environment variables:

  • DOMAIN: the domain this application is available at, e.g. drop.example.org
  • IS_HTTPS: Whether this application is available as HTTPS / behind an HTTPS reverse proxy (which it should be), e.g. true
  • DATA_DIRECTORY: The directory to store the data in (within the docker image), e.g. /var/dead-drop/data
  • ENCRYPTION_KEY_PATH: The file-path to store the server-side encryption key at (within the docker image), e.g. /var/dead-drop/key/key.secret
  • FILE_KEEP_TIME_IN_HOURS: The number of hours to keep a drop-record. Defaults to 24.
  • SHOW_GITHUB_LINK_IN_FOOTER: Whether the GitHub link should be visible in the footer. Defaults to true.

Example docker-compose.yml

services:
  dead-drop:
    image: "flowmo7/dead-drop:master"
    restart: unless-stopped
    ports:
      - 8080:8080 #Should be behind an SSL reverse proxy
    environment:
      - DOMAIN=drop.example.org
      - IS_HTTPS=true
      - DATA_DIRECTORY=/var/dead-drop/data
      - ENCRYPTION_KEY_PATH=/var/dead-drop/key/key.secret
    volumes:
      - /srv/docker/dead-drop/data:/var/dead-drop/data:rw
      - /srv/docker/dead-drop/key:/var/dead-drop/key:rw

Acknowledgments

This project is heavily inspired by BillKeenan/dead-drop-python, which I heavily used (self-hosted) before creating this service.

LICENSE

Copyright 2021 Florian Mötz

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
You might also like...
A secure, opensource android app to store your bank accounts, cards, and credentials. Locally and securely.
A secure, opensource android app to store your bank accounts, cards, and credentials. Locally and securely.

Digital Tijori 🔒 Digital Tijori app lets you store your bank accounts, cards and credentials. You can link cards and credentials to a particular bank

DocuBox is a cloud based file storing app where you can securely store and access your documents from anywhere around the world
DocuBox is a cloud based file storing app where you can securely store and access your documents from anywhere around the world

DocuBox is an android app 📱in which you can securely upload your files on the cloud– from family pictures and audio recordings to spreadsheets, presentations and other confidential documents.

A simple library for parsing and playing links from YouTube, YouTube Music, Vimeo and Rutube is WebView without the need to connect api data services. Request caching is available now
A simple library for parsing and playing links from YouTube, YouTube Music, Vimeo and Rutube is WebView without the need to connect api data services. Request caching is available now

Android Oembed Video A simple library for parsing and playing links from YouTube, YouTube Music, Vimeo and Rutube and others in the WebView without th

Maildroid is a small robust android library for sending emails using SMTP server
Maildroid is a small robust android library for sending emails using SMTP server

Maildroid 🎉 Maildroid is a small robust android library for sending emails using SMTP server 🎉 Key Features • Add to your project • Documentation •

Sending komq's latest YouTube & Twitch notifications via Twitter.

Komwitter Twitch & YouTube Notification Twitter Bot for komq. Used Libraries: Twitter4J Twitch4J Kotlinx.serialization and some other dependency libra

AndroidBriefActions - Android library for sending and observing non persistent actions such as showing a message; nice readable way to call navigation actions from ViewModel or Activity/Fragment.

implementation "com.vladmarkovic.briefactions:briefactions:$briefActionsVersion" Benefits Why use brief-actions library pattern: Prevent short-term ac

Tired of manually setup test data of Kotlin data classes or POJOs? Instantiator creates Instances of any class for you so that you can focus on writing tests instead of spending time and effort to setup test data

Instantiator Tired of manually setup test data of Kotlin data classes or POJOs? Instantiator creates Instances of any class for you so that you can fo

Linkester is an Android library that aims to help Android developers test their deep links implementation.
Linkester is an Android library that aims to help Android developers test their deep links implementation.

Linkester Linkester is an Android library that aims to help Android developers test their deep links implementation. The idea is to have a new launche

Link-converter - A web service that converts links between web url and deeplink for mobile and web applications

Deep Link Converter Linkleri, mobil ve web uygulamaları için web url ile deeplin

LearningRegex - Parse links from text via RegEx

Parse links from text via RegEx Supported types: Hashtags Urls emails Using in p

WorkManager ,One time,Sequential Execution, Periodic time Execution

WokManagerSample WorkManager ,One time,Sequential Execution, Periodic time Execu

Native Kotlin library for time-based TOTP and HMAC-based HOTP one-time passwords

A kotlin implementation of HOTP (RFC-4226) and TOTP (RFC-6238). Supports validation and generation of 2-factor authentication codes, recovery codes and randomly secure secrets.

Java/Kotlin lightweight implementation of RFC-6238 and RFC-4226 to generate and validate time-based one-time passwords (TOTP).
Java/Kotlin lightweight implementation of RFC-6238 and RFC-4226 to generate and validate time-based one-time passwords (TOTP).

1time Java/Kotlin lightweight implementation of RFC-6238 and RFC-4226 to generate and validate time-based one-time passwords (TOTP). Maven / gradle de

Android NTP time library. Get the true current time impervious to device clock time changes
Android NTP time library. Get the true current time impervious to device clock time changes

TrueTime for Android Make sure to check out our counterpart too: TrueTime, an NTP library for Swift. NTP client for Android. Calculate the date and ti

Clean MVVM with eliminating the usage of context from view models by introducing hilt for DI and sealed classes for displaying Errors in views using shared flows (one time event), and Stateflow for data

Clean ViewModel with Sealed Classes Following are the purposes of this repo Showing how you can remove the need of context in ViewModels. I. By using

Clean MVVM with eliminating the usage of context from view models by introducing hilt for DI and sealed classes for displaying Errors in views using shared flows (one time event), and Stateflow for data

Clean ViewModel with Sealed Classes Following are the purposes of this repo Showing how you can remove the need of context in ViewModels. I. By using

A Clean Architecture App that uses clean Architecture (app, presentation, domain, data) packages to use coffee items API using MVVM Architecture, Coroutines, Retrofit2, Pagination, Live Data, Data Binding, Hilt , SOLID Principles , Navigation Component , RoomDb. All news in one place - one application
All news in one place - one application

nuntiumNewsApp Nuntium | Daily News App Nuntuim news app is a personalised news aggregator that organises and highlights what’s happening in the world

You can store all your password, bank details, card details in one place and remember only one master PIN. The application works totally offline.
You can store all your password, bank details, card details in one place and remember only one master PIN. The application works totally offline.

Keep Password An application where you can store all your password, bank details, card details in one place and remember only one master PIN. The appl

Comments
  • Configurable port

    Configurable port

    Adds the environment variable PORT that sets the port the server listens on. Defaults to 8080.

    Required for certain applications, in our case using this server with Azure App Service.

    opened by gregingenii 1
Releases(1.0.2)
Owner
Florian Mötz
Florian Mötz
MiHawk 🦅👁️ is simple and secure 🔒 Android Library to store and retrieve pair of key-value data with encryption , internally it use jetpack DataStore Preferences 💽 to store data.

MiHawk MiHawk ?? ??️ is simple and secure ?? Android Library to store and retrieve pair of key-value data with encryption , internally it use jetpack

Nedal Hasan Ibrahem 5 Sep 3, 2022
Xposed OneLineClock - Always use one line clock on Android 12 lock screen

Xposed OneLineClock - Always use one line clock on Android 12 lock screen

null 3 Feb 3, 2022
XDROID is android all in one hack tools

XDROID XDroid Android HackingTools Legal Disclamer: The author does not hold any responsibility for the bad use of this tool, remember this is only fo

Davlix 16 May 9, 2022
This app should provide a common interface to fetch the estimated time of arrival for parcels

ETA-App This app should provide a common interface to fetch the estimated time of arrival for parcels. It will integrate with several backend systems

bring 0 Dec 14, 2021
Catch common Java mistakes as compile-time errors

Error Prone Error Prone is a static analysis tool for Java that catches common programming mistakes at compile-time. public class ShortSet { public

Google 6.3k Dec 23, 2022
Create beautiful film credit sequences—without pain.

Cinecred Create beautiful film credit sequences—without pain. Visit the website at https://loadingbyte.com/cinecred/ for further information about the

Felix Mujkanovic 7 Dec 24, 2022
Burp extension to create target specific and tailored wordlist from burp history.

Burp extension to create target specific and tailored wordlist from burp history.

Dexter0us 173 Jan 2, 2023
Communicating between Wear OS and Android device using the OpWear module and a sample of displaying real-time camera on the watch and sending commands to the mobile by Wear OS.

OpWear-Cam Communicating between Wear OS and Android device using the OpWear module and a sample of displaying real-time camera on the watch and sendi

AmirHosseinAghajari 6 Nov 8, 2022
PhpStorm Plugin to create clickable links to github repository

composer-links Template ToDo list Create a new IntelliJ Platform Plugin Template project. Get known with the template documentation. Verify the plugin

Nick Escobedo 0 Nov 3, 2021
This App is sending Face capture data over network, built around the latest Android Arcore SDK.

AndroidArcoreFacesStreaming From any Android phone ArCore compatible, using this app will send over TCP 5680 bytes messages: The first 5616 bytes is a

Maxime Dupart 30 Nov 16, 2022