22Security Mechanisms
33===================
44
5- :Version: $Revision: 1.2 $
5+ :Version: $Revision: 1.3 $
66
77Current situation
88=================
@@ -16,14 +16,20 @@ ANONYMOUS_REGISTER = 'deny'
1616ANONYMOUS_REGISTER_MAIL = 'deny'
1717 Deny or allow anonymous users to register through the mail interface
1818
19- The web interface implements another level of user-interface security,
19+ Current user interface authentication and controls:
20+
21+ - command-line tool access controlled with passwords, but no logical controls
22+ - CGI access is by username and password and has some logical controls
23+ - mailgw access is through identification using sender email address, with
24+ limited functionality available
25+
26+ The web interface implements has specific logical controls,
2027preventing non-admin users from accessing:
2128
2229 - other user's details pages
2330 - listing the base classes (not issues or their user page)
2431 - editing base classes
2532
26-
2733Issues
2834======
2935
3238 but restrict those users from accessing the web interface.
33393. Only one user may perform admin functions.
34404. There is no verification of users in the mail gateway by any means other
35- than the From address. Support for strong signatures should be added.
41+ than the From address. Support for strong identification through digital
42+ signatures should be added.
43+ 5. The command-line tool has no logical controls.
3644
3745
3846Possible approaches
@@ -50,6 +58,7 @@ In all cases, the security built into roundup assumes restricted access to the
5058hyperdatabase itself, through Operating System controls such as user or group
5159permissions.
5260
61+
5362Hyperdb-level control
5463---------------------
5564
@@ -115,6 +124,8 @@ Cons:
115124
116125 - large number of possible permissions that may be defined, possibly
117126 mirroring actual user interface controls.
127+ - access to the hyperdb must be strictly controlled through program code
128+ that implements the logical controls.
118129
119130
120131Applying controls to users
@@ -201,7 +212,41 @@ The instance dbinit module then has::
201212 r = db.getclass('role').find('User')
202213 user.create(username="anonymous", roles=[r])
203214
215+
216+ Authentication of Users
217+ -----------------------
218+
219+ Users must be authenticated correctly for the above controls to work. This is
220+ not done in the current mail gateway at all. Use of digital signing of
221+ messages could alleviate this problem.
222+
223+ The exact mechanism of registering the digital signature should be flexible,
224+ with perhaps a level of trust. Users who supply their signature through their
225+ first message into the tracker should be at a lower level of trust to those
226+ who supply their signature to an admin for submission to their user details.
227+
228+
229+ Action
230+ ======
231+
232+ The CGI interface must be changed to:
233+
234+ - authenticate over a secure connection
235+ - use unique tokens as a result of authentication, rather than pass the user's
236+ real credentials (username/password) around for each request (this means
237+ sessions :)
238+ - use the new logical control mechanisms
239+
240+ The mail gateway must be changed to:
241+
242+ - use digital signatures
243+ - use the new logical control mechanisms
204244
245+ The command-line tool must be changed to:
246+
247+ - use the new logical control mechanisms (only allowing write
248+ access by admin users, and read-only by everyone else)
249+
205250
206251Use cases
207252=========
0 commit comments