Pull request for branch yem-root-passwd
Hello Peter, All,
As requested, here's the re-spin of the second-part of the 'root-paswd' series.
Note however these few changes since the previous iteration:
Changes v4 -> v5:
- drop patch #1, applied upstream (Peter)
- make the password-encoding scheme generic (ie. not root-speific)
- rebase on-top current master
The following changes since commit a45871bfc6a3f800548954dd364b5f53e81804ab:
target: add option to set the root password (2012-12-30 18:00:16 +0100)
are available in the git repository at:
git://gitorious.org/buildroot/buildroot.git yem-root-passwd
Yann E. MORIN (1):
target: add different methods to encode passwords
system/Config.in | 62 +++++++++++++++++++++++++++++++++++++++++++++++++---- system/system.mk | 3 +- 2 files changed, 59 insertions(+), 6 deletions(-)
Regards,
Yann E. MORIN
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 target: add different methods to encode passwords
Passwords can be encoded in different ways (from the weakest to the strongest): des, md5, sha-256, sha-512
Add a choice entry to select the method, defaulting to 'md5'.
---
Previously, this was specific to encode the root password. I have made it generic (ie. not root-specific), in case buildroot needs to encode other passwords in the future (eg. when packages can create users, for which I've just sent an RFC)
--- system/Config.in | 62 +++++++++++++++++++++++++++++++++++++++++++++++++---- system/system.mk | 3 +- 2 files changed, 59 insertions(+), 6 deletions(-)
system/Config.in +57 -5
@@ -12,6 +12,60 @@ config BR2_TARGET_GENERIC_ISSUE help Select system banner (/etc/issue) to be displayed at login. +choice + bool "Passwords encoding" + default BR2_TARGET_GENERIC_PASSWD_MD5 + help + Choose the password encoding scheme to use when Buildroot + needs to encode a password (eg. the root password, below). + + Note: this is used at build-time, and *not* at runtime. + +config BR2_TARGET_GENERIC_PASSWD_DES + bool "des" + help + Use standard 56-bit DES-based crypt(3) to encode passwords. + + Old, wildly available, but also the weakest, very susceptible to + brute-force attacks. + +config BR2_TARGET_GENERIC_PASSWD_MD5 + bool "md5" + help + Use MD5 to encode passwords. + + The default. Wildly available, and pretty good. + Although pretty strong, MD5 is now an old hash function, and + suffers from some weaknesses, which makes it susceptible to + brute-force attacks. + +config BR2_TARGET_GENERIC_PASSWD_SHA256 + bool "sha-256" + help + Use SHA256 to encode passwords. + + Very strong, but not ubiquitous, although available in glibc + for some time now. Choose only if you are sure your C library + understands SHA256 passwords. + +config BR2_TARGET_GENERIC_PASSWD_SHA512 + bool "sha-512" + help + Use SHA512 to encode passwords. + + Extremely strong, but not ubiquitous, although available in glibc + for some time now. Choose only if you are sure your C library + understands SHA512 passwords. + +endchoice # Passwd encoding + +config BR2_TARGET_GENERIC_PASSWD_METHOD + string + default "des" if BR2_TARGET_GENERIC_PASSWD_DES + default "md5" if BR2_TARGET_GENERIC_PASSWD_MD5 + default "sha-256" if BR2_TARGET_GENERIC_PASSWD_SHA256 + default "sha-512" if BR2_TARGET_GENERIC_PASSWD_SHA512 + config BR2_TARGET_GENERIC_ROOT_PASSWD string "Root password" default ""
@@ -22,11 +76,9 @@ config BR2_TARGET_GENERIC_ROOT_PASSWD and root will need no password to log in. WARNING! WARNING! - Although pretty strong, MD5 is now an old hash function, and - suffers from some weaknesses, which makes it susceptible to attacks. - It is showing its age, so this root password should not be trusted - to properly secure any product that can be shipped to the wide, - hostile world. + You should not trust this password to properly secure any product that + can be shipped to the wide, hostile world, depending on the type of + password encoding you choose above (especially if you choose md5 or des). WARNING! WARNING! The password appears in clear in the .config file, and may appear
system/system.mk +2 -1
@@ -1,8 +1,9 @@ TARGET_GENERIC_HOSTNAME:=$(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME)) TARGET_GENERIC_ISSUE:=$(call qstrip,$(BR2_TARGET_GENERIC_ISSUE)) TARGET_GENERIC_ROOT_PASSWD:=$(call qstrip,$(BR2_TARGET_GENERIC_ROOT_PASSWD)) +TARGET_GENERIC_PASSWD_METHOD:=$(call qstrip,$(BR2_TARGET_GENERIC_PASSWD_METHOD)) ifneq ($(TARGET_GENERIC_ROOT_PASSWD),) -TARGET_GENERIC_ROOT_PASSWD_HASH=$(shell mkpasswd -m md5 "$(TARGET_GENERIC_ROOT_PASSWD)") +TARGET_GENERIC_ROOT_PASSWD_HASH=$(shell mkpasswd -m "$(TARGET_GENERIC_PASSWD_METHOD)" "$(TARGET_GENERIC_ROOT_PASSWD)") endif TARGET_GENERIC_GETTY:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) TARGET_GENERIC_GETTY_BAUDRATE:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE))
Signature · 1 line
1.7.2.5
PATCH 1/1 target: add different methods to encode passwords
Peter, All,
Quoted 4 lines · On Sunday 30 December 2012 Yann E. MORIN wrote:
Passwords can be encoded in different ways (from the weakest to the strongest): des, md5, sha-256, sha-512
Add a choice entry to select the method, defaulting to 'md5'.
Ping?
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 target: add different methods to encode passwords
In reply to Yann E. MORINQuoted 6 lines · Yann E. MORIN
Passwords can be encoded in different ways (from the weakest to the strongest): des, md5, sha-256, sha-512
Add a choice entry to select the method, defaulting to 'md5'.
Signed-off-by "Yann E. MORIN" <[email protected]>
However i'd like to see an option where the root password is untouched, probably as default.
A slippy finger might get a bad surprise when upgrading to a new buildroot version and sees it's skeleton root password zapped away to nothing by surprise - an error that might take some time to get noticed and might even get shipped.
Regards.
PATCH 1/1 target: add different methods to encode passwords
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Gustavo" == Gustavo Zacarias <[email protected]> writes:
Quoted 6 lines · Yann E. MORIN
Quoted 6 lines
Passwords can be encoded in different ways (from the weakest to the strongest): des, md5, sha-256, sha-512
Add a choice entry to select the method, defaulting to 'md5'.
Signed-off-by "Yann E. MORIN" <[email protected]>
Gustavo> Tested-by: Gustavo Zacarias <[email protected]>
Gustavo> However i'd like to see an option where the root password is untouched, Gustavo> probably as default.
Gustavo> A slippy finger might get a bad surprise when upgrading to a Gustavo> new buildroot version and sees it's skeleton root password Gustavo> zapped away to nothing by surprise - an error that might take Gustavo> some time to get noticed and might even get shipped. Regards.
Hmm, the root passwd stuff should only only be active if the default rootfs skeleton is used (so no passwd). I see that's not the case today, will fix.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/1 target: add different methods to encode passwords
Peter, Gustavo, All,
Quoted 10 lines · On Friday 04 January 2013 Peter Korsgaard wrote:
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Gustavo" == Gustavo Zacarias <[email protected]> writes:
Quoted 4 lines · Yann E. MORIN
Quoted 4 lines
Passwords can be encoded in different ways (from the weakest to the strongest): des, md5, sha-256, sha-512
Add a choice entry to select the method, defaulting to 'md5'.
Gustavo> However i'd like to see an option where the root password is untouched, Gustavo> probably as default.
Quoted 8 lines
Gustavo> A slippy finger might get a bad surprise when upgrading to a Gustavo> new buildroot version and sees it's skeleton root password Gustavo> zapped away to nothing by surprise - an error that might take Gustavo> some time to get noticed and might even get shipped. Regards.
Hmm, the root passwd stuff should only only be active if the default rootfs skeleton is used (so no passwd). I see that's not the case today, will fix.
OK, I'm on it.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'