How to reject a certificate with access_denied?
Christian Schmidt
schmidt at digadd.de
Wed Jun 8 11:54:11 UTC 2022
On 07/06/2022 15:02, Matt Caswell wrote:
>
>
> On 07/06/2022 13:46, Michael Richardson wrote:
>> Matt Caswell <matt at openssl.org> wrote:
>> > On 06/06/2022 18:08, Christian Schmidt wrote:
>> >> Hi,
>> >> I am building a server application that allows a user to log
>> in by
>> >> providing a certificate. In order to do custom checks, I have
>> added a
>> >> verify callback to my code to check the certificate on top of its
>> >> cryptographic features (CA Valid, etc).
>> >> If the certificate does not pass my extended checks, I would
>> like to
>> >> return the access_denied alert as per RFC8446 section 6.2:
>> >> access_denied: A valid certificate or PSK was received, but when
>> >> access control was applied, the sender decided not to proceed
>> with
>> >> negotiation.
>> >> However, I can't find a way to generate this alert in openssl,
>> although
>> >> openssl can handle receiving it.
>> >> How do I make a callback return a non-defined (as in not
>> defined in the
>> >> headers) alert?
>>
>> > This is not currently possible.
>>
>> > OpenSSL has an internal table which maps verify errors to TLS
>> alerts:
>>
>> >
>> https://github.com/openssl/openssl/blob/9f3626f2473bdce53e85eba96e502e950e29e16f/ssl/statem/statem_lib.c#L1350-L1394
>>
>>
>> > Unfortunately there are no entries in this table that map to the
>> > access_denied alert.
>>
>> Would extensions to this list be welcome?
>> Should Christian send a PR?
>
> I would be happy to review such a PR - although it would only be applied
> to master and not 3.0 or 1.1.1. Any PR could only be in the form of
> additions to the table (not modifications to existing entries), so as
> not to break existing behaviour.
By PR, do you mean Problem Report or Pull Request?
Because after reading up on it, it seems that a Pull Request would
require a CLA, and I am not willing to sign any contract under US law (I
have no idea of implications, and a lawyer to explain these is not
reasonably affordable for roughly two LOC). The things I know it for are
unreasonable laws (I suppose an Access Denied alert might be
patentable/copyrightable under US law, while it wouldn't under EU law),
ridiculously off compensations (which seems a risk to me - I do no know
if someone holds a patent/copyright on the alert from the RFC, and do
not know how to check), and violating Europeans' constitutional laws
(see the discussion around safe harbor agreements / GDPR).
Best regards,
Christian
More information about the openssl-users
mailing list