added fixed message length padding for OpenCorn::Log
[opencorn.git] / concept.txt
blob413ff550da40c39590132068a7f3ffeb3cf7b71a
1 Every user creates a private/public keypair on a smartcard. The user
2 signs the string 'ClosePopcorn!!!!1ELF' and sends this file encrypted
3 to all board members and keeps it safe (this will be the file which is
4 used for revocation, if needed).
6 The verification controller(tm) has a copy of all public keys which are
7 allowed to enter. They are in a directory, where the filenames are the
8 handles of the users who are allowed to enter.
10 This directory is kept under version control using git. Board members are
11 supposed to tag the commits with a GPG signature. The verification controller
12 only uses the state of the git repository which has at least two valid
13 board member signatures on it, thus assuring that at least two board
14 members have accepted the change in the list.
16 As revocation is more time-critical then adding people to the list,
17 there is also a revocation repository which contains the revocation files
18 for the users. The files can be added to the repository by anyone using
19 an interface yet to be decided (possibly using an anonymous SSH login which
20 allows a user to add a file if the signature is valid and by a user who
21 is in the accepted list). Signing changes to the revocation repository
22 is encouraged, but not actively checked.
24 To open the door, the user inserts his smartcard and signs a challenge
25 containing a fixed text, a random nonce and a timestamp using pkcs15-crypt.
26 The verification controller verifies that the signature is valid and comes
27 from a member which is in the accepted list and whose key has not been
28 revoked. If that is the case, it opens the door.
30 The handle, public key, as well as signature of the challenge are stored
31 in the log. As this log may contain sensitive data, the log will be encrypted
32 with an OpenGPG key whose password is 3/5 secret shared between the board
33 members. This key is exchanged regularly and the board members are told
34 regularly to delete the old keys if they see no need in keeping them.
35 If there is a reason to open the log, 3/5 board members can work together
36 to decrypt it.