/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 DBUS-API

  • Committer: Teddy Hogeborn
  • Date: 2015-03-10 18:03:38 UTC
  • Revision ID: teddy@recompile.se-20150310180338-pcxw6r2qmw9k6br9
Add ":!RSA" to GnuTLS priority string, to disallow non-DHE kx.

If Mandos was somehow made to use a non-ephemeral Diffie-Hellman key
exchange algorithm in the TLS handshake, any saved network traffic
could then be decrypted later if the Mandos client key was obtained.
By default, Mandos uses ephemeral DH key exchanges which does not have
this problem, but a non-ephemeral key exchange algorithm was still
enabled by default.  The simplest solution is to simply turn that off,
which ensures that Mandos will always use ephemeral DH key exchanges.

There is a "PFS" priority string specifier, but we can't use it because:

1. Security-wise, it is a mix between "NORMAL" and "SECURE128" - it
   enables a lot more algorithms than "SECURE256".

2. It is only available since GnuTLS 3.2.4.

Thanks to Andreas Fischer <af@bantuX.org> for reporting this issue.

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
This file documents the D-Bus interface to the Mandos server.
6
6
 
7
7
* Bus: System bus
8
 
  Bus name: "se.bsnet.fukt.Mandos"
 
8
  Bus name: "se.recompile.Mandos"
9
9
 
10
10
 
11
11
* Object Paths:
17
17
 
18
18
  
19
19
* Mandos Server Interface:
20
 
  Interface name: "se.bsnet.fukt.Mandos"
 
20
  Interface name: "se.recompile.Mandos"
21
21
  
22
22
** Methods:
23
23
*** GetAllClients() → (ao: Clients)
44
44
 
45
45
 
46
46
* Mandos Client Interface:
47
 
  Interface name: "se.bsnet.fukt.Mandos.Client"
 
47
  Interface name: "se.recompile.Mandos.Client"
48
48
  
49
49
** Methods
50
50
*** Approve(b: Approve) → nothing
87
87
   | Created (d)             | s    | Read       | N/A                 |
88
88
   | Enabled (e)             | b    | Read/Write | N/A                 |
89
89
   | Expires (f)             | s    | Read       | N/A                 |
 
90
   | ExtendedTimeout (a)     | t    | Read/Write | extended_timeout    |
90
91
   | Fingerprint             | s    | Read       | fingerprint         |
91
92
   | Host                    | s    | Read/Write | host                |
92
93
   | Interval (a)            | t    | Read/Write | interval            |
93
94
   | LastApprovalRequest (g) | s    | Read       | N/A                 |
94
95
   | LastCheckedOK (h)       | s    | Read/Write | N/A                 |
95
 
   | LastEnabled (i)         | s    | Read       | N/A                 |
 
96
   | LastCheckerStatus (i)   | n    | Read       | N/A                 |
 
97
   | LastEnabled (j)         | s    | Read       | N/A                 |
96
98
   | Name                    | s    | Read       | (Section name)      |
97
99
   | ObjectPath              | o    | Read       | N/A                 |
98
 
   | Secret (j)              | ay   | Write      | secret (or secfile) |
 
100
   | Secret (k)              | ay   | Write      | secret (or secfile) |
99
101
   | Timeout (a)             | t    | Read/Write | timeout             |
100
102
   
101
103
   a) Represented as milliseconds.
111
113
      Disable().
112
114
   
113
115
   f) The date and time this client will be disabled, as an RFC 3339
114
 
      string, or an empty string if this has not happened.
115
 
   
116
 
   g) The time of the last approval request, as an RFC 3339 string, or
117
 
      an empty string if this has not happened.
118
 
   
119
 
   h) The last time a checker was successful, as an RFC 3339 string,
120
 
      or an empty string if this has not happened.  Setting this
121
 
      property is equivalent to calling CheckedOK(), i.e. the current
122
 
      time is set, regardless of the string sent.  Please always use
123
 
      an empty string when setting this property, to allow for
124
 
      possible future expansion.
125
 
   
126
 
   i) The last time this client was enabled, as an RFC 3339 string, or
127
 
      an empty string if this has not happened.
128
 
   
129
 
   j) A raw byte array, not hexadecimal digits.
 
116
      string, or an empty string if this is not scheduled.
 
117
   
 
118
   g) The date and time of the last approval request, as an RFC 3339
 
119
      string, or an empty string if this has not happened.
 
120
   
 
121
   h) The date and time a checker was last successful, as an RFC 3339
 
122
      string, or an empty string if this has not happened.  Setting
 
123
      this property is equivalent to calling CheckedOK(), i.e. the
 
124
      current time is set, regardless of the string sent.  Please
 
125
      always use an empty string when setting this property, to allow
 
126
      for possible future expansion.
 
127
   
 
128
   i) The exit status of the last checker, -1 if it did not exit
 
129
      cleanly, -2 if a checker has not yet returned.
 
130
   
 
131
   j) The date and time this client was last enabled, as an RFC 3339
 
132
      string, or an empty string if this has not happened.
 
133
   
 
134
   k) A raw byte array, not hexadecimal digits.
130
135
 
131
136
** Signals
132
137
*** CheckerCompleted(n: Exitcode, x: Waitstatus, s: Command)
145
150
    milliseconds, depending on ApprovedByDefault.  Approve() can now
146
151
    usefully be called on this client object.
147
152
    
148
 
*** PropertyChanged(s: Property, v: Value)
149
 
    The Property on this client has changed to Value.
150
 
    
151
153
*** Rejected(s: Reason)
152
154
    This client was not given its secret for a specified Reason.
153
155
 
154
156
* Copyright
155
157
 
156
 
    Copyright © 2010-2011 Teddy Hogeborn
157
 
    Copyright © 2010-2011 Björn Påhlsson
 
158
    Copyright © 2010-2012 Teddy Hogeborn
 
159
    Copyright © 2010-2012 Björn Påhlsson
158
160
  
159
161
** License:
160
162