From patchwork Tue Dec 14 05:59:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Selva Nair X-Patchwork-Id: 2165 Return-Path: Delivered-To: patchwork@openvpn.net Delivered-To: patchwork@openvpn.net Received: from director11.mail.ord1d.rsapps.net ([172.30.191.6]) by backend41.mail.ord1d.rsapps.net with LMTP id YJigNN7NuGF+WAAAqwncew (envelope-from ) for ; Tue, 14 Dec 2021 12:01:18 -0500 Received: from proxy18.mail.ord1d.rsapps.net ([172.30.191.6]) by director11.mail.ord1d.rsapps.net with LMTP id 0H9KGt/NuGFIAgAAvGGmqA (envelope-from ) for ; Tue, 14 Dec 2021 12:01:19 -0500 Received: from smtp29.gate.ord1d ([172.30.191.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by proxy18.mail.ord1d.rsapps.net with LMTPS id EDjzGd/NuGEJLwAATCaURg (envelope-from ) for ; Tue, 14 Dec 2021 12:01:19 -0500 X-Spam-Threshold: 95 X-Spam-Score: 0 X-Spam-Flag: NO X-Virus-Scanned: OK X-Orig-To: openvpnslackdevel@openvpn.net X-Originating-Ip: [216.105.38.7] Authentication-Results: smtp29.gate.ord1d.rsapps.net; iprev=pass policy.iprev="216.105.38.7"; spf=pass smtp.mailfrom="openvpn-devel-bounces@lists.sourceforge.net" smtp.helo="lists.sourceforge.net"; dkim=fail (signature verification failed) header.d=sourceforge.net; dkim=fail (signature verification failed) header.d=sf.net; dkim=fail (signature verification failed) header.d=gmail.com; dmarc=fail (p=none; dis=none) header.from=gmail.com X-Suspicious-Flag: YES X-Classification-ID: 7420db9a-5cff-11ec-8ce6-525400f257a9-1-1 Received: from [216.105.38.7] ([216.105.38.7:60266] helo=lists.sourceforge.net) by smtp29.gate.ord1d.rsapps.net (envelope-from ) (ecelerity 4.2.38.62370 r(:)) with ESMTPS (cipher=DHE-RSA-AES256-GCM-SHA384) id 79/20-16728-EDDC8B16; Tue, 14 Dec 2021 12:01:18 -0500 Received: from [127.0.0.1] (helo=sfs-ml-2.v29.lw.sourceforge.com) by sfs-ml-2.v29.lw.sourceforge.com with esmtp (Exim 4.94.2) (envelope-from ) id 1mxBA1-0003KQ-Bj; Tue, 14 Dec 2021 17:00:17 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-2.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mxB9y-0003Jx-Qe for openvpn-devel@lists.sourceforge.net; Tue, 14 Dec 2021 17:00:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=4yDZKUqNKgJvIiICOzdcc6m6aKrqPp+zbt9RnmhM+nw=; b=CFfMp2Co3SRr7wzARVq9vkO2oi uHIFYwGhXtbfmpO7znTruK0R8932qx0/gDt6TQ/Z1VgT0vKtk+f9d2pjcLPW3fFQ9OwSWUuoNuJgW 36jo+Lp87M6dx+nozn1E6Kx/iHc5UaSCsrKny8948DODatniFEnR4GRWqR8vb2rbq3Us=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id: Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=4yDZKUqNKgJvIiICOzdcc6m6aKrqPp+zbt9RnmhM+nw=; b=lm8tLGW9ksnGSKNHP0Xoh0+KNr 6hjLNsWoEXl+vcAXxJMkBu32Fpui7I/Z6CTbcPvEkuFgFH/4Bb9V7pQOGG6EsUbSTCh89Fu3g/UKh o2t4vSUYwbpfSNbtXGW3I/3OCX/2wZLGfho/p25CIqDUt/0aKWJqIW9IHUYWx2GeXzzg=; Received: from mail-io1-f43.google.com ([209.85.166.43]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.92.3) id 1mxB9p-0000bM-96 for openvpn-devel@lists.sourceforge.net; Tue, 14 Dec 2021 17:00:14 +0000 Received: by mail-io1-f43.google.com with SMTP id z26so25274153iod.10 for ; Tue, 14 Dec 2021 09:00:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4yDZKUqNKgJvIiICOzdcc6m6aKrqPp+zbt9RnmhM+nw=; b=FIajLGUSKD2+xtJ9LEBJNf3qOpm50v96gzFMnC80aOOCoM/KZgUAgY58Yo2NEqahKz KatztPQbGju6KvahZvgTXNNfmrxj0nf1RV+qubWgFAjXewP00+araIDo9hhMB1/3CQxb xRrkRBzZQZJpnxubrXMI8qVkkP0nFbAK3o8PCe+Si5iGd8w+d2ar9CZImqEEwhirgu9I vlN3DTYHWiKCpacR5Jarp1cbaCJoJwli4AmbiOZfHra1adn3slA1lAZv0uRVtpEp9ngg u+GNDL4KPa+QWfhi4r5f8ivZMVjEbrFaerWbAeRxlIxX+wNwoidQuXYexNHyCSOs+1V0 1mpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4yDZKUqNKgJvIiICOzdcc6m6aKrqPp+zbt9RnmhM+nw=; b=GMO71qZhA0UknUB2p5HYP97wtM3kI441MTzUOsbbDO7isKauM4siXY+Q2TJXONd3tX DdcGjGqC1jcKX+3vp04NcplUgCvY3vSh5+Mx22nPOFhUAplQqVhLmBWNIaeITECMzehw j34JYnq0YvB0GayXUYvaYyvKRd3n88Lexv+RrfCNAm7USgAnbN1p5KFA5PHnPVqR1bSD 8Yel6fK8pstZGl1yfsFbaa7wWLa74gDoA7SKBB4NBN8gFTjeY3aCovPRHHxN27xJkkCo v7OpqX8Q7ndckmcHn8Edi/HItUnS8avWT0P/A4SSGx4A4nCV5vOodSKDUlcJ/pYmBHrH bvlQ== X-Gm-Message-State: AOAM532w6yp/cUXHzdwiPL0VE6RmbGK7HXmM/qX+qwp9G/R2heA59KnP er2F12FZvJZ2GlOUJuh/wHzflckGBwg= X-Google-Smtp-Source: ABdhPJyNGfTm0GT30WWAZcYd+QlvBY2qRwx5r76NUm3vM8OzEOn+Hzq5Nj1m5uAVq7iKo5D0ivMoTw== X-Received: by 2002:a02:b085:: with SMTP id v5mr3828080jah.776.1639501199584; Tue, 14 Dec 2021 08:59:59 -0800 (PST) Received: from uranus.home.sansel.ca (bras-vprn-tnhlon4053w-lp130-02-70-51-223-8.dsl.bell.ca. [70.51.223.8]) by smtp.gmail.com with ESMTPSA id e9sm178778ilm.44.2021.12.14.08.59.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Dec 2021 08:59:59 -0800 (PST) From: selva.nair@gmail.com To: openvpn-devel@lists.sourceforge.net Date: Tue, 14 Dec 2021 11:59:20 -0500 Message-Id: <20211214165928.30676-11-selva.nair@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211214165928.30676-1-selva.nair@gmail.com> References: <20211214165928.30676-1-selva.nair@gmail.com> MIME-Version: 1.0 X-Spam-Report: Spam detection software, running on the system "util-spamd-1.v13.lw.sourceforge.com", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: From: Selva Nair Support for padding algorithms in management-client is indicated in the optional argument to --management-external-key as "pkcs1", "pss" etc. We currently use it only for an early exit based on heuris [...] Content analysis details: (-0.2 points, 6.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.166.43 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [selva.nair[at]gmail.com] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.166.43 listed in wl.mailspike.net] -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-Headers-End: 1mxB9p-0000bM-96 Subject: [Openvpn-devel] [PATCH v3 10/18] Respect algorithm support announced by management client X-BeenThere: openvpn-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: openvpn-devel-bounces@lists.sourceforge.net X-getmail-retrieved-from-mailbox: Inbox From: Selva Nair Support for padding algorithms in management-client is indicated in the optional argument to --management-external-key as "pkcs1", "pss" etc. We currently use it only for an early exit based on heuristics that a required algorithm may not be handled by the client. When signature is requested we do not check whether the padding is indeed supported by the client. This leads to situations like the client announcing nopadding support but we request pss signature. Here we add a check while requesting signature as well. If the padding treat it as an error instead of submitting the request to the management-interface regardless. This change is made only when xkey provider is in use, though such a check would be appropriate always. Signed-off-by: Selva Nair Acked-By: Arne Schwabe --- src/openvpn/xkey_helper.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/openvpn/xkey_helper.c b/src/openvpn/xkey_helper.c index b2546cec..d63943d2 100644 --- a/src/openvpn/xkey_helper.c +++ b/src/openvpn/xkey_helper.c @@ -146,6 +146,8 @@ xkey_management_sign(void *unused, unsigned char *sig, size_t *siglen, unsigned char enc[EVP_MAX_MD_SIZE + 32]; /* 32 bytes enough for digest inf structure */ size_t enc_len = sizeof(enc); + unsigned int flags = management->settings.flags; + if (!strcmp(alg.op, "DigestSign")) { dmsg(D_LOW, "xkey_management_sign: computing digest"); @@ -166,7 +168,7 @@ xkey_management_sign(void *unused, unsigned char *sig, size_t *siglen, strncpynt(alg_str, "ECDSA", sizeof(alg_str)); } /* else assume RSA key */ - else if (!strcmp(alg.padmode, "pkcs1")) + else if (!strcmp(alg.padmode, "pkcs1") && (flags & MF_EXTERNAL_KEY_PKCS1PAD)) { /* management interface expects a pkcs1 encoded digest -- add it */ if (!encode_pkcs1(enc, &enc_len, alg.mdname, tbs, tbslen)) @@ -178,17 +180,17 @@ xkey_management_sign(void *unused, unsigned char *sig, size_t *siglen, strncpynt(alg_str, "RSA_PKCS1_PADDING", sizeof(alg_str)); } - else if (!strcmp(alg.padmode, "none")) + else if (!strcmp(alg.padmode, "none") && (flags & MF_EXTERNAL_KEY_NOPADDING)) { strncpynt(alg_str, "RSA_NO_PADDING", sizeof(alg_str)); } - else if (!strcmp(alg.padmode, "pss")) + else if (!strcmp(alg.padmode, "pss") && (flags & MF_EXTERNAL_KEY_PSSPAD)) { openvpn_snprintf(alg_str, sizeof(alg_str), "%s,hashalg=%s,saltlen=%s", "RSA_PKCS1_PSS_PADDING", alg.mdname,alg.saltlen); } else { - msg(M_NONFATAL, "Unsupported RSA padding mode in signature request<%s>", + msg(M_NONFATAL, "RSA padding mode unknown or not supported by management-client <%s>", alg.padmode); return 0; }