/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to TODO

  • Committer: Teddy Hogeborn
  • Date: 2015-01-25 00:02:51 UTC
  • Revision ID: teddy@recompile.se-20150125000251-j2bw50gfq9smqyxe
mandos.xml (SEE ALSO): Update links.

Update link to GnuPG home page, change reference from TLS 1.1 to TLS
1.2, and change to latest RFC for using OpenPGP keys with TLS (and use
its correct title).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
-*- org -*-
2
2
 
3
 
* Use _attribute_((nonnull)) wherever possible.
4
 
 
5
 
* Release critical
6
 
** Update copyright year to add 2010
 
3
* GIT
 
4
** General: [[https://www.atlassian.com/git/workflows][Git Workflows]], [[http://gitimmersion.com/][Git Immersion]], [[https://news.ycombinator.com/item?id=7036628][Simple git workflow is simple]]
 
5
** Intro: [[http://www.eyrie.org/~eagle/notes/debian/git.html#combine][Using Git for Debian Packaging]]
 
6
** Use: [[https://honk.sigxcpu.org/piki/projects/git-buildpackage/][git-buildpackage]]
 
7
** Migration
 
8
   tailor?
 
9
   Using bzr-fastimport: [[http://www.fusonic.net/en/blog/2013/03/26/migrating-from-bazaar-to-git/][Migrating from Bazaar to Git]]
 
10
** Unresolved: [[http://jameswestby.net/bzr/builddeb/user_manual/split.html][bzr builddeb split mode]]
 
11
   Maybe: [[http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.import.html#GBP.IMPORT.UPSTREAM.GIT.NOTARBALL][git-buildpackage - No upstream tarballs]]
 
12
   [[http://www.python.org/dev/peps/pep-0374/][PEP 374 - Choosing a distributed VCS for the Python project]]
 
13
   [[http://www.emacswiki.org/emacs/GitForEmacsDevs][Git For Emacs Devs]]
 
14
 
 
15
* [[http://www.undeadly.org/cgi?action=article&sid=20110530221728][OpenBSD]]
 
16
 
 
17
* Testing
 
18
** python-nemu
 
19
 
 
20
* mandos-applet
7
21
 
8
22
* mandos-client
9
 
** TODO [#B] use scandir(3) instead of readdir(3)
10
 
** TODO [#B] Prefix all debug output with "Mandos plugin " + program_invocation_short_name
11
 
** TODO [#B] Retry a server which has a non-definite reply:
12
 
*** A closed connection during the TLS handshake
13
 
*** A TCP timeout
14
23
** TODO [#B] Use capabilities instead of seteuid().
15
 
** TODO [#A] Retry --connect forever
 
24
   https://forums.grsecurity.net/viewtopic.php?f=7&t=2522
 
25
** TODO [#B] Use getaddrinfo(hints=AI_NUMERICHOST) instead of inet_pton()
 
26
** TODO [#C] Make start_mandos_communication() take "struct server".
 
27
** TODO [#C] --interfaces=regex,eth*,noregex (bridge-utils-interfaces(5))
16
28
 
17
29
* splashy
18
30
** TODO [#B] use scandir(3) instead of readdir(3)
19
 
** TODO [#B] Prefix all debug output with "Mandos plugin " + program_invocation_short_name
20
31
 
21
 
* usplash
 
32
* usplash (Deprecated)
22
33
** TODO [#A] Make it work again
23
34
** TODO [#B] use scandir(3) instead of readdir(3)
24
 
** TODO [#B] Prefix all debug output with "Mandos plugin " + program_invocation_short_name
25
 
** TODO Use [[info:libc:Argz%20Functions][argz_extract]]
26
35
 
27
36
* askpass-fifo
28
 
** TODO [#B] Prefix all debug output with "Mandos plugin " + program_invocation_short_name
29
 
** TODO [#B] Drop privileges after opening FIFO.
30
37
 
31
38
* password-prompt
32
 
** TODO [#B] Prefix all debug output with "Mandos plugin " + program_invocation_short_name
33
39
** TODO [#B] lock stdin (with flock()?)
34
40
 
 
41
* plymouth
 
42
 
35
43
* TODO [#B] passdev
36
44
 
37
45
* plugin-runner
38
 
** TODO [#B] use scandir(3) instead of readdir(3)
 
46
** TODO handle printing for errors for plugins
 
47
*** Hook up stderr of plugins, buffer them, and prepend "Mandos Plugin [plugin name]"
39
48
** TODO [#C] use same file name rules as run-parts(8)
40
49
** kernel command line option for debug info
41
 
** TODO [#B] Use openat()
42
50
 
43
51
* mandos (server)
 
52
** TODO [#B] Work around Avahi issue
 
53
   Avahi does not announce link-local addresses if any global
 
54
   addresses exist: http://lists.freedesktop.org/archives/avahi/2010-March/001863.html
44
55
** TODO [#B] Log level                                                    :BUGS:
45
 
** TODO Persistent state                                                  :BUGS:
46
 
   /var/lib/mandos/*
47
56
*** TODO /etc/mandos/clients.d/*.conf
48
57
    Watch this directory and add/remove/update clients?
49
58
** TODO [#C] config for TXT record
50
 
** TODO Log level option
51
 
   syslogger.setLevel(logging.WARNING)
52
 
   + SetLogLevel D-Bus call
53
 
** TODO Implement --foreground                                            :BUGS:
54
 
   [[info:standards:Option%20Table][Table of Long Options]]
55
 
** TODO Implement --socket
56
 
   [[info:standards:Option%20Table][Table of Long Options]]
57
 
** TODO Date+time on console log messages                                 :BUGS:
58
 
   Is this the default?
 
59
** TODO Log level dbus option
 
60
   SetLogLevel D-Bus call
59
61
** TODO [#C] DBusServiceObjectUsingSuper
60
62
** TODO [#B] Global enable/disable flag
61
 
** TODO [#B] By-client countdown on secrets given
62
 
** TODO [#B] Fix problem with fsck taking a really long time
63
 
   Whenever a client successfully gets a secret it could get a
64
 
   one-time timeout boost to allow for an fsck-incurred delay
65
 
** TODO [#A] Delay before client receives key
66
 
   This would give an operator opportunity to cancel the request if
67
 
   desired.
68
 
** TODO [#A] Client manual approval mode
69
 
   A client needs manual approval on the server before it gets the
70
 
   secret
71
 
** TODO [#B] Support RFC 3339 time duration syntax
72
 
** More D-Bus methods
73
 
*** NeedsApproval(50, True) -> timeout, default approve
74
 
    Default approval is configurable, but True by default
75
 
    + Approve(True) -> approve sending saved
76
 
    + Approve(False) -> Close client connection immediately
77
 
*** NeedsPassword(50) - Timeout, default disapprove
 
63
** TODO [#B] By-client countdown on number of secrets given
 
64
** D-Bus Client method NeedsPassword(50) - Timeout, default disapprove
78
65
    + SetPass(u"gazonk", True) -> Approval, persistent
79
66
    + Approve(False) -> Close client connection immediately
80
67
** TODO [#C] python-parsedatetime
81
 
** TODO [#C] systemd/launchd
82
 
   http://0pointer.de/blog/projects/systemd.html
83
68
** TODO Separate logging logic to own object
84
 
** TODO make clients to a dict!
85
69
** TODO [#A] Limit approval_delay to max gnutls/tls timeout value
86
70
** TODO [#B] break the wait on approval_delay if connection dies
87
71
** TODO Generate Client.runtime_expansions from client options + extra
88
72
** TODO Allow %%(checker)s as a runtime expansion
 
73
** TODO Use python-tlslite?
 
74
** TODO D-Bus AddClient() method on server object
 
75
** TODO Use org.freedesktop.DBus.Method.NoReply annotation on async methods. :2:
 
76
** TODO Support [[http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager][org.freedesktop.DBus.ObjectManager]] interface on server object :2:
 
77
   Deprecate methods GetAllClients(), GetAllClientsWithProperties()
 
78
   and signals ClientAdded and ClientRemoved.
 
79
** TODO Save state periodically to recover better from hard shutdowns
 
80
** TODO CheckerCompleted method, deprecate CheckedOK
 
81
** TODO Secret Service API?
 
82
   http://standards.freedesktop.org/secret-service/
 
83
** TODO Remove D-Bus interfaces with old domain name                      :2:
 
84
** TODO Remove old string_to_delta format                                    :2:
 
85
** TODO http://0pointer.de/blog/projects/stateless.html
 
86
*** tmpfiles snippet to create /var/lib/mandos with right user+perms
 
87
*** File in /usr/lib/sysusers.d to create user+group "_mandos"
 
88
** TODO Error handling on error parsing config files
 
89
** TODO init.d script error handling
 
90
** TODO D-Bus server properties; address, port, interface, etc.              :2:
89
91
 
90
92
* mandos.xml
91
93
** Add mandos contact info in manual pages
93
95
* mandos-ctl
94
96
*** Handle "no D-Bus server" and/or "no Mandos server found" better
95
97
*** [#B] --dump option
96
 
** TODO Support RFC 3339 time duration syntax
 
98
** TODO Remove old string_to_delta format                                    :2:
97
99
 
98
100
* TODO mandos-dispatch
99
101
  Listens for specified D-Bus signals and spawns shell commands with
100
102
  arguments.
101
103
 
102
104
* mandos-monitor
103
 
** TODO help should be toggable
 
105
** TODO help should be toggleable
104
106
** Urwid client data displayer
105
107
   Better view of client data in the listing
106
108
*** Properties popup
107
 
** Nicer crashes. Stack traces Messes up shell.
108
 
*** Print a nice "We are sorry" message, save stack trace to log.
 
109
** Print a nice "We are sorry" message, save stack trace to log.
 
110
** Rename module "gobject" to "GObject".
109
111
 
110
112
* mandos-keygen
111
 
** TODO Loop until passwords match when run interactively
112
113
** TODO "--secfile" option
113
114
   Using the "secfile" option instead of "secret"
114
115
** TODO [#B] "--test" option
115
116
   For testing decryption before rebooting.
116
117
 
117
 
* Makefile
118
 
** TODO Add "--Xlinker --as-needed"
119
 
   http://udrepper.livejournal.com/19395.html
120
 
** TODO [#C] Implement DEB_BUILD_OPTIONS
121
 
   http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options
122
 
 
123
118
* Package
124
119
** /usr/share/initramfs-tools/hooks/mandos
125
120
*** TODO [#C] use same file name rules as run-parts(8)
129
124
   From XML sources directly?
130
125
 
131
126
* Side Stuff
132
 
** TODO Locate which packet move the other bin/sh when busy box is deactivated
133
 
** TODO contact owner of packet, and ask them to have that shell static in position regardless of busybox
 
127
** TODO Locate which package moves the other bin/sh when busybox is deactivated
 
128
** TODO contact owner of package, and ask them to have that shell static in position regardless of busybox
134
129
 
135
130
 
136
131
#+STARTUP: showall