[strongSwan-dev] CERT payload (X.509 certificates) validation issue
Andreas Steffen
andreas.steffen at strongswan.org
Sat Jan 6 00:28:57 CET 2018
Hi Ravi,
locally loaded certificate are always trusted even if the X.509
trustchain is not complete. This also allows the use of self-signed
certificates.
Regards
Andreas
On 05.01.2018 14:10, Ravikumar Chennaparapu wrote:
> Hi Andreas,
>
> We did some analysis and observed that issue is only seen if we use same
> certificates on both sides.
>
> We observed that when verify_trust_chain invokes issued_by, it is always
> referencing local certificate instead the peer certificate which is
> tampered.
>
> Local certificate is valid one so validation is successful and tunnel
> got established with tampered peer certificate.(only certificate
> signature content is modified).
>
> Could you check this from your side. If needed more info regarding this
> issue, please let me know.
>
> Thanks and Regards,
> Ravi
>
>
>
>
>
> On Thu, Jan 4, 2018 at 5:49 PM, Ravikumar Chennaparapu
> <ravikumar.ece at gmail.com <mailto:ravikumar.ece at gmail.com>> wrote:
>
> Hi Andreas,
>
> Thanks for the quick reply.
>
> Could you point out the code where peer remote cert validation
> happens for CERT payload?
>
> Regards,
> Ravi
>
>
>
> On Thu, Jan 4, 2018 at 2:18 AM, Andreas Steffen
> <andreas.steffen at strongswan.org
> <mailto:andreas.steffen at strongswan.org>> wrote:
>
> Hi Ravi,
>
> we are not adding received certificates to any trusted cache.
> Per default remote certificates are never trusted and are
> temporarily
> added to the auth_cfg object of the IKE_SA. Full X.509 trust chain
> verification then happens at a later stage.
>
> Regards
>
> Andreas
>
>
> On 03.01.2018 14:47, Ravikumar Chennaparapu wrote:
>
> Hi,
>
> We found an issue with strongswan 5.2.2; peer is accepting
> CERT payload
> even though digital signature field in CERT payload is
> tampered.
>
> As per the below code, there is no validation for the peer's
> pub key
> certificate; peer's public key is added to the cache without any
> validation. We do see this as a security vulnerability,
> could you check
> this? Is our understanding correct ?
>
>
> static void process_x509(cert_payload_t *payload, auth_cfg_t
> *auth,
> cert_encoding_t encoding, bool *first)
> {
> certificate_t *cert;
> char *url;
>
> cert = try_get_cert(payload);
> if (cert)
> {
> if (*first)
> { /* the first is an end entity certificate */
> DBG1(DBG_IKE, "received end entity cert \"%Y\"",
> cert->get_subject(cert));
> auth->add(auth, AUTH_HELPER_SUBJECT_CERT, cert);
> *first = FALSE;
> }
> else
> {
> DBG1(DBG_IKE, "received issuer cert \"%Y\"",
> cert->get_subject(cert));
> auth->add(auth, AUTH_HELPER_IM_CERT, cert);
> }
> }
> else if (encoding == ENC_X509_HASH_AND_URL)
> {
> /* we fetch the certificate not yet, but only if
> * it is really needed during authentication */
> url = payload->get_url(payload);
> if (!url)
> {
> DBG1(DBG_IKE, "received invalid hash-and-url "
> "encoded cert, ignore");
> return;
> }
> url = strdup(url);
> if (*first)
> { /* first URL is for an end entity certificate */
> DBG1(DBG_IKE, "received hash-and-url for end entity cert
> \"%s\"",
> url);
> auth->add(auth, AUTH_HELPER_SUBJECT_HASH_URL, url);
> *first = FALSE;
> }
> else
> {
> DBG1(DBG_IKE, "received hash-and-url for issuer cert
> \"%s\"", url);
> auth->add(auth, AUTH_HELPER_IM_HASH_URL, url);
> }
> }
> }
>
> Thanks and Regards,
> Ravi
>
>
> --
> ======================================================================
> Andreas Steffen
> andreas.steffen at strongswan.org
> <mailto:andreas.steffen at strongswan.org>
> strongSwan - the Open Source VPN Solution!
> www.strongswan.org <http://www.strongswan.org>
> Institute for Networked Solutions
> University of Applied Sciences Rapperswil
> CH-8640 Rapperswil (Switzerland)
> ===========================================================[INS-HSR]==
>
>
>
--
======================================================================
Andreas Steffen andreas.steffen at strongswan.org
strongSwan - the Open Source VPN Solution! www.strongswan.org
Institute for Networked Solutions
HSR University of Applied Sciences Rapperswil
CH-8640 Rapperswil (Switzerland)
===========================================================[INS-HSR]==
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2945 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.strongswan.org/pipermail/dev/attachments/20180106/fdb7f31f/attachment.bin>
More information about the Dev
mailing list