Mandriva Linux Archives: cooker@mandrivalinux.org
Mandriva Linux: cooker@mandrivalinux.org
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
- From: Vincent Panel
- Subject: Re: [Cooker] proposals: more encryption/auth enhancements
- Date: 30 Apr 2008 15:35:29 -0000
On Wed, Apr 30, 2008 at 4:21 PM, Vincent Danen <vdanen@mandriva.com> wrote: > Was told that cooker would be a better place to discuss, so here we > go... > > -- > Vincent Danen @ http://linsec.ca/ > > > ---------- Forwarded message ---------- > From: Vincent Danen <vdanen@mandriva.com> > To: maintainers@mandriva.com > Date: Tue, 29 Apr 2008 18:29:33 -0600 > Subject: [vdanen@mandriva.com: [Maintainers] proposals: more encryption/auth > enhancements] > I'd like to revisit this. The original pre-2008.0 message is included > for the particulars. > > And I'll tell you why I want to revisit it. It's no secret to anyone > here that I've been developing a server-oriented distro for the last 4.5 > years, where security was the primary "feature". Due to various > circumstances, etc. I've stopped developing Annvix and all my machines > are currently running 2008.1 right now with the aim to move them to CS5 > as soon as it hits beta. > > However, going from Annvix to Mandriva has been a *massive* leap > backwards in terms of security. Annvix evolved so much from the 9.2 > release that I forked, and despite largely tracking cooker since then, > quite a bit of it is different, so I have a different view of things and > I know what's worked for me and what hasn't. You also learn a) a > greater appreciation for those doing the core "stuff" and b) that you > don't always have to be one of the sheep when it comes to this stuff. > =) > > Now, I could easily package pam_passwdqc and stick it in contrib quite > simply. That's no problem. TCB support is a little trickier. TCB > doesn't *need* to be enabled, but it does need to be in main (because > util-linux would need to be patched and there would be a dependency on > libtcb). Also, implementing TCB support *without* blowfish support in > glibc is not really my idea of time well-spent as TCB can work fine with > md5/crypt passwords, but why go through the effort to get a half > implementation? Putting blowfish support in glibc, and then tcb, would > work best. And pam_tcb can replace pam_unix completely without forcing > the use of the /etc/tcb/* layout; you can still use /etc/shadow. > > The effort should be minimal. I already did this years ago for Annvix > so it should be extremely straightforward to do it. And yes, I'm > willing to do the work and testing to make sure it works. > > I just don't want to start and have someone freak out and/or revert my > changes, so I'm bringing this up again. If there is no one violently > against it, then I'll do it. > > -- > Vincent Danen @ http://linsec.ca/ > > > ---------- Forwarded message ---------- > From: Vincent Danen <vdanen@mandriva.com> > To: Anne Nicolas <anne.nicolas@mandriva.com> > Date: Tue, 12 Jun 2007 10:00:10 -0600 > Subject: [Maintainers] proposals: more encryption/auth enhancements > I figured I'd cc maintainers@ on this. I'm not sure if the 2008 roadmap > is already defined or not, or when the projected release date is going > to be, but there are a few very nice enhancements we could add to > Mandriva. None of this is speculation or conjecture; I've been using > all of these things in Annvix for quite some time. (Annvix is my little > test-bed for some of this more radical stuff). > > Everyone knows my big thing/passion is security, and the more proactive > security we can have, the better. > > The first proposal is to add blowfish support to glibc. This would > allow use to use blowfish-based passwords in addition to the traditional > md5 password hash. SUSE currently does this, and has for years. To > enable the use of blowfish support, glibc needs to be patched and so > does shadow-utils. > > http://www.openwall.com/crypt/ > > I've forward ported the shadow-utils patches for blowfish support quite > a while ago and it works great. > > In addition, I think we should drop using pam_unix by default and use > pam_tcb instead. tcb is *much* nicer, and from a user's point of view, > there is absolutely no difference. Essentially, tcb removes /etc/shadow > and replaces it with a directory structure, like /etc/tcb/user/ where > each user has their own shadow file. The benefit here should be > obvious; if some tool is exploitable and has access to /etc/shadow, it > could read not just the user's password hash, but everyone's (because > this is a single file). With tcb, they only can and only ever will be > able to see their own shadow password. Of course, if someone actually > has access to the root user, then all bets are still off, so this is no > different than the current /etc/shadow in that regard, but if, for > instance, you authenticate some website against system accounts, the > file accessed only contains that user's shadow password, and not > everyone's. > > http://www.openwall.com/tcb/ > > tcb works great. Highly recommended. > > Another good pam module to add is pam_passwdqc. > > http://www.openwall.com/passwdqc/ > > This pam module does some very strong (configurable, of course) password > checking and offers passwords as well. It replaces pam_cracklib. Quite > a few distros are starting to use this one as well (maybe not by > default, but packaging them). I think we should use it by default. > > For instance, on Mandriva, you get: > > [root@atlas pam.d]# useradd goo > [root@atlas pam.d]# passwd goo > Changing password for user goo. > New UNIX password: BAD PASSWORD: it's WAY too short > Retype new UNIX password: passwd: all authentication tokens updated > successfully. > > I used the same password (foo) and it allowed it (although, granted, a > normal user couldn't do that). However, on Annvix, using pam_passwdqc, > it's enforced, even for root: > > [root@ares etc]# useradd goo > [root@ares etc]# passwd goo > passwd: updating all authentication tokens for user goo. > > You can now choose the new password or passphrase. > > A valid password should be a mix of upper and lower case letters, > digits, and other characters. You can use a 6 character long > password with characters from at least 3 of these 4 classes, or > a 5 character long password containing characters from all the > classes. An upper case letter that begins the password and a > digit that ends it do not count towards the number of character > classes used. > > A passphrase should be of at least 3 words, 8 to 40 characters > long and contain enough different characters. > > Alternatively, if noone else can see your terminal now, you can > pick this as your password: "person&ride;fourth". > > Enter new password: Weak password: too short. > Try again. > > You can now choose the new password or passphrase. > ... > > Again, using the same password. The length and complexity are > completely controllable and the defaults might be too much for some > people, so something like drakauth should allow it to be configurable. > Configuration is simple: > > [root@ares etc]# grep passwdqc /etc/pam.d/system-auth > password required pam_passwdqc.so min=disabled,12,8,6,5 > max=40 passphrase=3 match=4 similar=deny random=42 enforce=everyone > retry=3 > > Oh, for tcb and blowfish, consider this: > > [root@atlas pam.d]# grep goo /etc/shadow > goo:$1$3kv1oBrG$ywRVf3.jWID0r1YA5rUyH/:13676:0:99999:7::: > > [root@ares etc]# cat /etc/tcb/goo/shadow > > goo:$2a$08$YQbCTXtQQBL84DUjcksHv.DLmeOqPbUzZtfL.T4SleTn.gZ1mNcfS:13676:::::: > > The first is obviously Mandriva with md5 password and the second is > Annvix with tcb and a blowfish password. > > So there is three proposals here, but they all work extremely well > together: > > 1) enable blowfish password support (patches to glibc and shadow-utils) > 2) use pam_tcb instead of pam_unix (easy to incorporate, no patching > needed) > 3) use pam_passwdqc instead of pam_cracklib (easy) > > If we're looking at making some noise about Mandriva and security for > future versions, using AppArmor and writing a tool to configure it is a > good start. Enhancing some of the other stuff would be welcome as well > and show some real progress to security. My opinion of Mandriva > "proactive" security right now is essentially msec, which I think blows. > The reporting features are great, the changing perms and whatnot behind > your back is awful. The security levels could be put to much better use > than defining permissions (i.e. enable/disable apparmor, default > password strength requirements, etc.). > > Having a 2008 or 2008.1 with AppArmor (enabled and easily configurable > out of the box), blowfish passwords, pam_tcb, and pam_unix is a *real* > step towards good security. > > -- > Vincent Danen @ http://linsec.ca/ > > Well, thanks for forwarding this to cooker, but I don't see anything to discuss... what could be the drawback of adding TCB and pam_passwdqc in Mandriva ?
- Replies:
- Re: [Cooker] proposals: more encryption/auth enhancements
- From: Vincent Danen
- Re: [Cooker] proposals: more encryption/auth enhancements
- References:
- [Cooker] proposals: more encryption/auth enhancements
- From: Vincent Danen
- [Cooker] proposals: more encryption/auth enhancements
- Prev by Date: Re: [Cooker] proposals: more encryption/auth enhancements
- Next by Date: Re: [Cooker] proposals: more encryption/auth enhancements
- Previous by thread: Re: [Cooker] proposals: more encryption/auth enhancements
- Next by thread: Re: [Cooker] proposals: more encryption/auth enhancements
- Index(es):
