Merge remote branch 'smcv/ready/transient-autoindex'
[ikiwiki.git] / doc / plugins / contrib / unixauth / discussion.mdwn
blob232649863c9dff898737d15c253850bac8648513
1 The security of this plugin scares me. As noted in the plugin
2 documentation, you basically have to use it with SSL, since snooping on the
3 login password doesn't give you an essentially useless account -- it gives
4 you an actual account on the machine!
6 Also, apparently pwauth defers *all* auth attempts if one fails, and it
7 does this by using a lock file, and sleeping after a failed auth attempt.
8 Which is needed to avoid brute-forcing, since this is a significant
9 password.. but how will that interact with ikiwiki? Well, ikiwiki _also_
10 uses a lock file. So, at a minimum, someone can not only try to brute-force
11 the pwauth password, but the ikiwiki processes that stack up due to that
12 will also keep ikiwiki's lock held. Which basically DOSes the wiki for
13 everyone else; noone else can try to log in, or log out, or edit a page,
14 all of which require taking the lock.
16 So I don't think I'll be accepting this plugin into ikiwiki itself..
17 --[[Joey]]
19 Thanks for the comments. That's definitely an undesirable interaction between pwauth and ikiwiki; in my current application it wouldn't be a serious problem, but I'd like this plugin to be general-purpose and safe enough for inclusion in ikiwiki. It's the system-users-are-wiki-users idea I'm married to here, not pwauth itself; can you suggest another approach I might take?
20 -- [[schmonz]]
22 > Have you considered using [[plugins/httpauth]] and then the appropriate apache module?  There are apache modules like [mod_authnz_external](http://unixpapa.com/mod_auth_external.html) that might help.  The advantage of these solutions is that they usually make the security implications explicit.  -- Will
24 Actually, yes. That's how I made sure I had pwauth working to begin with. I'm partial to the form-based approach because I'm not aware of any way to reliably "log out" browsers from HTTP authentication. If that *is* reliably possible, then I worked way too hard for no reason. ;-)
25 -- [[schmonz]]
27 I've added support for [checkpassword](http://cr.yp.to/checkpwd/interface.html), since those generally don't have any rate-limiting cleverness to interfere with ikiwiki's, and made a few other changes. Please check out the plugin docs again and let me know if this is closer to being acceptable.
28 -- [[schmonz]]
30 > I actually think that the rate limiting is a good thing. After all,
31 > ikiwiki doesn't do its own login rate limiting. Just need to find a way
32 > to disentangle the two locks. --[[Joey]]
34 >> Ah, ok, I misunderstood your comment. I'll see what I can figure out. --[[schmonz]]
36 >>> My time's been limited for this, but I just saw [[todo/avoid_thrashing]]. How does that interact with pwauth or checkpassword? --[[schmonz]]
38 >>>> The DOS still happens, it just uses less memory. --[[Joey]]