Dead Man's Switch (Desktop App) (JAVA)

Cancelado Publicado May 27, 2010 Pagado a la entrega
Cancelado Pagado a la entrega

**1. GENERAL DESCRIPTION** ??" LastStand is a Dead Man’s Switch, a system that allows users to set up a broadcast message consisting of text and files (the “payload??) that will be sent out unattended and automatically in the event the user does not re-set the trigger before a certain condition is reached (such as 90 days passing without user intervention, or their web server remaining offline for a certain period of time). As this project is open-source, key considerations for the developer are platform-independence, modularity (ease of update / modification and re-use of code for functions such as encryption), documentation of code (heavy comments), and support for foreign-language translations.

**1.1 Purpose** ??" The purpose for developing this open-source software is to preserve the free, uncensored flow of information by providing a tool that guarantees survivable, last-chance communication in the event a user is denied access to standard public communications networks by force, detainment, or death. The target user is anyone who is at risk of being unjustly silenced -- human rights activists living under hostile regimes, journalists, and whistleblowers, for instance.

## Deliverables

**1. GENERAL DESCRIPTION** ??" LastStand is a Dead Man’s Switch, a system that allows users to set up a broadcast message consisting of text and files (the “payload??) that will be sent out unattended and automatically in the event the user does not re-set the trigger before a certain condition is reached (such as 90 days passing without user intervention, or their web server remaining offline for a certain period of time). As this project is open-source, key considerations for the developer are platform-independence, modularity (ease of update / modification and re-use of code for functions such as encryption), documentation of code (heavy comments), and support for foreign-language translations.

**1.1 Purpose** ??" The purpose for developing this open-source software is to preserve the free, uncensored flow of information by providing a tool that guarantees survivable, last-chance communication in the event a user is denied access to standard public communications networks by force, detainment, or death. The target user is anyone who is at risk of being unjustly silenced -- human rights activists living under hostile regimes, journalists, and whistleblowers, for instance.

**1.2 Scope** ??" The scope of LastStand is both local, small network, and global. It can function independently on a single machine, being activated, reset, or deactivated from anywhere through internet through the use of passwords for low-risk users. This local configuration can then be cloned to other user-owned machines for small-scale, private redundancy.

**Future scope:** For users operating in a high-risk environment, the functionality for a user to replicate their payload (segmented and strongly encrypted) across the shared cloud of LastStand users will be developed, providing increased security.

**1.3 Abbreviation** ??" LS ??" LastStand

DMS ??" Dead Man’s Switch

**1.4 Overview** ??" LastStand is managed through a simple GUI interface, with its functions accessed through corresponding buttons, menus, and pop-up panels. The developer should make a user interface as user friendly as possible. In general, pop-up panels displaying simple, wizard-style walk-throughs explain how the process works to the user unless they are cancelled or disabled. More information is provided for complicated fields or options by tooltips that appear on mouse-over.

After a user has set up their payload and trigger conditions, they are prompted to create a cryptographically strong (AES-256, Twofish, or Serpent with a 512-bit or greater salt) password, which locks access to that installation of the program and payload. This payload and trigger configuration are encrypted and exported to a file that can then be imported on another machine, which provides a simple redundancy and backup capability. Backup at the main server should be made.

**2. OVERALL DESCRIPTION**

**2.1 Product Perspective** ??" LastStand should be compatible with all the operating systems.

**2.2 Product Functions** - The following are the product functions of LastStand:

* Create of “payloads,?? messages and content consisting of text, files, or a combination of both (for example, encryption keys, important private documents, a personal confession, instructions, or even all of the above).

* User-configured payload dissemination methods (user-supplied email addresses, distribution lists made of comma-space delimited file of email addresses). **Future: IRC, Forum Post, uploads to popular Web Site types.**

* Dissemination of a payload when trigger conditions are exceeded (for example, 90 days have passed without a trigger reset).

* Dissemination “stages?? ??" when dissemination occurs, user can choose to have different actions taken at certain times (for example, Payload #1 is immediately sent first to a trusted associate, asking them to verify the user’s safety, then seven days later, Payload #2 is sent out to a wide distribution list if the switch has not been reset; alternately, a single payload could be sent to different people at different times).

* Importation/Exportation of payload, dissemination, and program settings as strongly-encrypted files.

* A “Doomsday button,?? allowing a user under duress to immediately release one/all payload[s]. This can be performed from anywhere (with password confirmation) via the internet. **Future: via cell phone SMS.**

* Remote reset/deactivation. A user can reset/deactivate their LastStand timer remotely via the internet. Different passwords are used for reset, deactivation, and Doomsday functions, allowing a user under duress to maintain positive control of their information by divulging to the third party whichever password serves their purpose.

* LastStand can run invisibly, making it more difficult to determine whether or not a user has an active Dead Man’s Switch.

* **Future: LastStand Web agent, allowing LastStand to be hosted on private web servers.**

* **Future: Webcam activation payload.**

* **Future: Voluntary Rootkit mode, allowing more effective concealment of LastStand.**

* **Future: Web distribution lists, allowing LastStand to additionally disseminate a payload to an updated distribution list pulled from a website when a trigger condition occurs.**

**2.3 User Characteristics** ??" Users are intended to be unique per installation.

**2.4 General Constraints** ??" The general constraints for LastStand are reliability of the application and its communications (to include passage through NAT / firewall), uptime, concealability, and **(future)** cloud storage space.

**2.5 Assumptions and Dependencies** ??" LastStand must work even when network traffic is high. All network inputs must be validated for application security. LS should be compatible with all operating systems so long as Java is installed.

**3. SPECIFIC REQUIREMENTS**

**3.1 External Interface Required**

**3.1.1 User Interfaces** ??" Local machine GUI and remote access password prompt / confirmation.

**3.1.2 Hardware Interfaces**

**3.1.3 Software Interfaces** ??" The Operating Systems can be any version of Windows, Linux, Unix or Mac which supports Java and TCP/IP.

**3.1.4 Communication Interfaces** ??" The communication interface is a local area network with connectivity to the internet.

** 3.2 Performance Requirements** ??" Outside of encryption operations, LastStand should perform quickly and reliably on any reasonably modern machine (2006 or newer).

**3.3 Design Constraints** ??" Unanticipated advances in cryptanalysis, cloud storage, and rootkit development may necessitate design updates, so developers must keep this in mind and design the product in a way that it is easily updatable.

**3.4 Attributes** ??"

**3.5 Other Requirements** ??" To prepare for future developers joining the team, all code should be heavily commented.

Ingeniería Java Linux SO Mac Microsoft Gestión de proyectos Arquitectura de software Verificación de software Windows Desktop

Nº del proyecto: #3458580

Sobre el proyecto

Proyecto remoto Activo May 28, 2010