-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generate CSR fails when Challenge Password is given #16
Comments
This is caused by a check in
I'm not sure if the challenge password was misunderstood here (or if I am misunderstanding), but the challenge password should not be used or decoded by The way I understand it is that if a certificate is requested to be revoked then the issuer can request confirmation via the previously received challenge password and, once provided the appropriate password, move forward with revoking the certificate. |
From the code it looks like you should be getting an ActionParameterNotSupported message in the response. Is that not showing? Looking at the code snippet above and comment, that does look correct, the OpenBMC implementation doesn’t support a challenge password at this time. “ you can easily pull the challenge password with the rest of the data from a CSR.” this statement seems incorrect to me. This would require the bmc to store the password in plaintext, which is counter to modern security principals. While an argument could be made that this is ok, that would need to be done as part of a patchset to enable this as a feature. unless the error message isn’t propagating (in which case we need to sort that out) this doesn’t look like a bug to me, but a missing feature, and more importantly, a missing piece in the security model for how the bmc can store secrets like this. |
@edtanous the info I added here is based on the PKCS spec for ChallengePassword: https://datatracker.ietf.org/doc/html/rfc2985 in section 5.4.1.
Additionally, using the current implementation of OpenBMC and OpenSSL with the DBus interface (to generate a test LDAP CSR for example):
And then:
returns
Converting
Which is why I assumed that the challengePassword is allowed to be decoded from the CSR. I see what you mean about storing in plaintext, however. Further support in the current implementation:
Lines 93-94:
and
Where the challenge password is added (unless I am mistaken) as an attribute type ( There's a lot I don't know about certificates, so I've just been going off the specs+current implementation and this is how I understand the issue. Hopefully I'm not way off-base! |
I think I see where I got off-track. 😄 I read too fast and see that the point being made was to not save the challengePassword as plaintext (even in the context of CSR encoding). I guess my question then is how would a certificate issuer then decode a challenge password in order to authenticate a certificate revoke request? Either way, shouldn't this also mean that bmcweb wouldn't need to store or decode this challenge since it should only be used by the issuer? Finally, just confirming that the error message does function as expected:
|
Considering OpenBMC doesn't support CRLs at all at this time, I'm going to guess it doesn't. Or I'm not quite understanding what you're getting at. Like I said before, an argument could definitely be made that storing the challenge password on the BMC is reasonable, and if your security model doesn't allow it, users can opt to not use that API capability to no ill effect. I suspect this bug can be closed, and we can continue this discussion in the context of some patches to enable this use case. |
The Generate CSR fails when given Challenge Password.
There is also no information in the Error given to indicate that this is the issue.
The text was updated successfully, but these errors were encountered: