Initial expired passwords - low level designs

Ratan Gupta ratagupt at linux.vnet.ibm.com
Thu Aug 22 13:19:02 AEST 2019


Hi Joseph,

On 19/08/19 10:32 PM, Joseph Reynolds wrote:
> This is an attempt to over-communicate progress on the [Initial 
> expired passwords design][], currently in review.  This email has the 
> significant and tricky work items needed to implement the design. 
> Emails about the BMCWeb pieces that need to be changed are [here][]; 
> in contrast, this email attempts to decompose the overall design.
>
> [Initial expired passwords design]: 
> https://gerrit.openbmc-project.xyz/c/openbmc/docs/+/23849
> [here][]: 
> https://lists.ozlabs.org/pipermail/openbmc/2019-August/017625.html
>
> The "initial expired passwords design" includes the following work. An 
> understanding of that design is a pre-requisite to understand the 
> items here.
>
> 1. Implement the new EXPIRED_PASSWORD image feature (initially off).  
> This ensures the password is expired for all local users. The right 
> place to do this piece is in Yocto/OpenEmbedded; see 
> https://lists.yoctoproject.org/pipermail/yocto-security/2019-July/000114.html
>
> 2. Enhance BMCWeb to handle Redfish PasswordChangeRequired (reference: 
> https://www.dmtf.org/sites/default/files/standards/documents/DSP0266_1.7.0.pdf 
> ("Redfish Specification" version 1.7.0 or later) section 13.2.6.1).
> This further breaks down into:
>
> 2a. Add the PasswordChangeRequired field to 
> /redfish/v1/SessionManager/Sessions/<session>.  This new field comes 
> from PAM_NEW_AUTHTOK_REQD.
   Are you mentioning the OEM filed in the session schema ? I think that 
we should define a new error message that will tell that password change 
required during creation of the session.
>
> 2b. Add the PasswordChangeRequired field to 
> /redfish/v1/AccountManager/Accounts/<account>.  Does this require 
> D-Bus changes?
   I understand that PasswordChangeRequired filed is supported by the 
redfish in the account schema, but how it would be useful.
   Suppose we have the implementation for the above then how does user 
knows that his password has been expired.
   He has to create the session which should tell that his password has 
been expired.

  2c. Tweak the authority model to handle privilege ConfigureSelf which 
applies only to *your* Session or Account and is intended to encompass 
all the privileges needed change your own expired password.  I am 
pursuing this question in private Redfish forums (issue 1986).

My suggestion is to allow the session to be created with the expired 
password and the session with expired password only allow to change the 
password for that account.
Other redfish interfaces should be restricted to access.
>
> 2d. Tweak the authority for the 
> /redfish/v1/AccountManager/Accounts/<account> "Password" property as a 
> Redfish "property override".  The Password property needs to have a 
> different authority than the other ManagerAccount properties in that 
> same account.
Why do we need property override for the same? User can change it's own 
user configuration eg password etc.  why different authority for the 
password?
Seems I am missing something here.
>
> 3. Enhance phosphor-webui to handle the expired password dialog at 
> login.  This will use the enhanced Redfish APIs. See 
> https://github.com/ibm-openbmc/dev/issues/1048
>
> 4. Enhance Dropbear SSH so a user can change their expired password.  
> See 
> https://lists.ucc.gu.uwa.edu.au/pipermail/dropbear/2016q2/001895.html 
> This piece is optional, but I would like this to be available. The 
> alternative is to use the OpenSSH server instead of Dropbear. The 
> right place to do this piece is in Dropbear.
What about IPMI? As you mentioned we need to support this through IPMI 
https://gerrit.openbmc-project.xyz/c/openbmc/docs/+/23849/3/designs/expired-password.md#98
How does user knows that his password has been expired via inband access 
IPMI?
>
> - Joseph
>
Ratan



More information about the openbmc mailing list