Skip to content

Very Secret Words That Should Release After My Death.

Notifications You must be signed in to change notification settings

fortran95/post-doom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

遗嘱系统
Testament System
================

在我的国家,谈论遗嘱之类话题有些不吉利。但是我们应该具有危机感,以免遇到事情时手忙脚乱。
因此,我设计了这个系统,配合 DeathSwitch 等服务,在我遇到意外无法上线后发布我的重要信息。
In my country, it's somehow infelicitous refering to testaments. But we must do this in advance in case of emergency.
Therefore I did this system, cooperating with services like DeathSwitch to publish my important information when I encounter an accident.

这不完全是一个程序——本Repo里也存储着我的遗嘱信息。后文将讲解本系统的原理。
This repository contains more than a program. My testaments are stored too. It's principle is described as follows.

如果您需要阅读遗嘱
------------------
如果遗嘱已经满足公布条件,您应该收到一个压缩文件包,里面包含了一系列的短小的文件。
强烈建议您首先了解 Linux 如何使用。
请准备一台计算机,安装了 Debian 6.0 操作系统,并且请确认下列软件已经安装:
    * Python
        启动终端,输入命令:
        > python --version
        您应当看到类似这样的输出,最后数字是版本号,类似2.x.x,但是大于2.6.6。
        > Python 2.6.6
    * Tkinter
        启动终端,输入命令:
        > python
        > >>>import Tkinter
        如果 *没有* 出现这样的字样:ImportError: No module named Tkinter,那么就是已经安装了。
        现在按 Ctrl+C 退出 Python。
    * git
        在终端中输入:
        > git --version
        结果类似这样:
        > git version 1.7.2.5
如果以上软件没有安装,请您咨询有经验的Linux用户安装。
下一步,建立文件目录。我们假设您当前的目录为 ~/,就使用如下命令:
    > mkdir -p workspace/secret
    > cd workspace
现在您的工作目录是 ~/workspace 了。现在请下载互联网上的程序,使用命令:
    > git clone https://github.com/fortran95/post-doom.git
在运行之前,请将您的压缩包中的全部文件解压,复制到 ~/workspace/secret 中。现在您的目录应该类似这样:
    ~/workspace/
        secret/
            (这里面放置了您刚刚获得的压缩包信息)
        post-doom/
            (各种文件,程序)
            edit.py
于是进入 ~/workspace/post-doom目录,运行命令:
    > python edit.py
您将被要求输入一个密码。这个密码应该和压缩文件一起给您了。如果正确,将会列出所有可能阅览的文件。根据提示操作即可。

法律效力
Law Validity
------------
本 Repository 的贡献人只有我。而我必须通过密码和本地系统上的 RSA 私钥进行身份认证后才能提交内容。因此,本 Repository 中的信息只能是我的。
本地的 RSA 私钥是被加密的,每次提交更改之前我都必须输入密码。因为密码只有我知道,所以这个私钥是我的。
有人可能提出这样的疑问:我不能把密码交给别人,使得他们篡改我的内容吗?显然,这种可能在技术上是有的,但是我没有任何理由不保护我的密码。因为这是涉及到我的切身利益的问题——他们完全可以将我的财产分配给他们。此外,这个问题和如下一个问题具有相同的性质:比如我将我的印章交给别人,或者事先在空白的纸张上签字再让别人代笔。
I am the only contributor to this repository, and I must use a passphrase and a RSA private key to authenticate myself before any updates. Therefore, anything in this repository belongs to me.
Local RSA private key is saved under encryption, and each time I PUSH I have to enter the passphrase. The passphrase is known only to me, so the private key belongs to me.
Some one may question that I may give out my passphrase letting others change my contents. This is possible but I have no reason to do this. Testaments concern my treasure. This is the same question as I give out my seal, or do signature on blank paper before anyone writes anything.

本系统的详细说明
Details
----------------
因为遗嘱是特殊的,要公开的内容在我还健康的时候是不能公开的,所以,即使是在线存储,我也会加密平时公开的信息。
在我死后,即需要完全将这些信息公之于众的时候,一系列密码——对应着在线存储的这些加密文件的解密密码——将会被自动公开。这时,下载并打开这些文件即可。
Testaments are special as they should not be public when I am alive. So although files are here I shall encrypted them.
After my death they should be public. To do this, a series of passphrases for decrypting these files will be published automatically.

考虑到 git 系统是存储日志的,即使我在某个时候决定需要撤回发布的某条信息,我也不能办到,所以我只能在这条信息发布之前设定一个密码予以加密。为了撤回文件,对应的密码日后不再公开即可。因为这样将导致每份文件都有一个密码,我需要写一个程序负责管理这些密码。然而这些密码的存储并不放在 git 的管理之下。用于进行以上操作,即管理密码、负责加密和解密文件的程序,是在 git 管理之中的。
The git system maintains a log, making me unable to withdraw files written to github.com. So I must encrypt the file before post it. If one day I need to withdraw one, I will just delete the stored passphrase for given file rendering the latter unable to decrypt. This approach results in a lot of passphrases to maintain, and I will do a program to help me. These passphrases are not stored in git. Only the management program stored.

根据设计,已经公开的加密文件在解密时可能需要提供不止一个控制密码。还需要一系列身份认证问题,以确定您是作者预期的读者类型(朋友、亲戚、网友、群众……)。
And by design, decrypting published files may need not only a control passphrase but also some answers to given questions. This ensures you are the intended type of audience(friends, relatives, netfriends, general public...) of given file.

依赖关系
Dependencies
------------
Python(>=2.6.6)

About

Very Secret Words That Should Release After My Death.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages