From patchwork Thu Jan 10 07:11:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jimmy Chen X-Patchwork-Id: 1022762 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="C1Jiz8ap"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="tFcGgtbk"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43Zxy91qrHz9sMp for ; Thu, 10 Jan 2019 18:12:01 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:Subject: Message-ID:Date:From:MIME-Version:Reply-To:Cc:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=/VGNE6sgSOvjiAgQnU4uCLyyiOz0DvIEw8/hrdU3lnY=; b=C1Jiz8apw+R0FDI09Kls+/j9ew F6kFqXuhro3OY6CV4xFUiY4muyDlcTXuChvErMIdJj3tr1WP19qaFtS0ye1B8SqjTvQk+uQgylMya /B7FwgZ4bjq7R/czIJq/MzjlMTz4V9Q3vHBxGVSNaEwZP4JPfGMpMYGdE7VgcPotrAqzjypGY6MHW G879rg5OmYtE8TfQY2uS0SbID9sU+UIzxHULPLPVU4oC4SzppU0RnE4LFOKWS2OFtuW1to+Ow2UCQ QppThZ2Y/CzXZB8GE9nyjpIU4+l5LwOxV+G2Y5nJKP62GssDn33ZrZZbHX/eiD/F5beoQKBzcY7bW ZwqJhn0w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1ghUUp-0003OD-2B; Thu, 10 Jan 2019 07:11:19 +0000 Received: from mail-yb1-xb2e.google.com ([2607:f8b0:4864:20::b2e]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1ghUUm-0003Nn-9l for hostap@lists.infradead.org; Thu, 10 Jan 2019 07:11:18 +0000 Received: by mail-yb1-xb2e.google.com with SMTP id o73so4056246ybc.0 for ; Wed, 09 Jan 2019 23:11:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=OEesD8qB36+/kKtHtPk0YTFo8S7xikcAkOoeZxQbCHk=; b=tFcGgtbkA5WOnpqv/ueG4StbPkX7L7hXJLgbKC2i0CjLz24VTrKv43zChMpdZptaTR f+rwRInxxoVsL5CinXYceLLvF7yLfD1HHBvgrJTieG6hUmuJd3pSbONEmV0oVJzZFQLW bCYu75ujCdvl+PiAXIqORrdswcs3f024bTUoTYQq4PdqOeioxuvil6JN1NDj4lAzbiHj 5bYUSzQHPvxDMwV23DOWAmXTskR8KPVAj5uRZED5H3egRDDabMixKf2NT2o0tZgY7NZL MP+Gc+EdHfSPkTUnOALOLd6Os5uxKMf2OsPHMHfa7QNvIINflwD175oZmcJnUamFjebv N/TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=OEesD8qB36+/kKtHtPk0YTFo8S7xikcAkOoeZxQbCHk=; b=eW+odqKvfa11uIwNBxgqTcNrUCVz0irRHRL3EUn+nkU6JivowD4I0KW/OoTUUWINFT /oq2hoeUUpUlBtPfe1njdahirXufcUy0VWEyTIHwGJJpR3jLmMTpDOga5e8MOWwopMK6 +znw4r0YITovv0jEKOODCRVBMmKLJ5KwGQkUKVWnDVYu9baRE+3mx/xB2c479t8r63XO 33mkBJIg6KyKFVWIqmYMONsbtyliPIhuKZZ5VKq4OzSTnlaSWqtaBMkT/HBGXKZT4FU/ JvtkX1s0kKVxlBwF7AuHRj187T6GvcrjjWT+rAfoMx/AvayxIxnLfy117CgYmEQGTgK3 gLKw== X-Gm-Message-State: AJcUukdic3usDYBvyrD+hW/N9tkI8WO8Tq9j/jPYjFF5Ed3DSMN12Y2Q lOEF3n0zf8VLNlSBnmWQza+kJRzTSCY2V0HeSImz8vdOc2BJbg== X-Google-Smtp-Source: ALg8bN6K5qGDWRdbXy4XL3Xw7UOT+vIj4u691Er5Jh7mSKKfN6ibVd47U/iAPlj4b02ZTW2eUOP9eA9tlemkjmVfmRE= X-Received: by 2002:a5b:142:: with SMTP id c2mr8690194ybp.435.1547104272591; Wed, 09 Jan 2019 23:11:12 -0800 (PST) MIME-Version: 1.0 From: Jimmy Chen Date: Thu, 10 Jan 2019 15:11:01 +0800 Message-ID: Subject: PATCH: P2P randomized MAC address support To: hostap@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190109_231116_369284_762614C5 X-CRM114-Status: GOOD ( 17.41 ) X-Spam-Score: -15.8 (---------------) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-15.8 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:b2e listed in] [list.dnswl.org] -7.5 USER_IN_DEF_DKIM_WL From: address is in the default DKIM white-list -0.0 SPF_PASS SPF: sender matches SPF record -7.5 USER_IN_DEF_SPF_WL From: address is in the default SPF white-list -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.5 ENV_AND_HDR_SPF_MATCH Env and Hdr From used in default SPF WL Match -0.1 DKIMWL_WL_MED DKIMwl.org - Whitelisted Medium sender X-BeenThere: hostap@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Hi, To enhance privacy, we try to hide the real MAC address of P2P interface. These two patches would provide P2P randomized MAC address support. Best regards, Jimmy From 98f217240eb38735c0b6eeef611daa1cd7acc732 Mon Sep 17 00:00:00 2001 From: Jimmy Chen Date: Thu, 29 Nov 2018 16:46:43 +0800 Subject: [PATCH 2/2] p2p: support random interface address To enhance privacy, generate a ramdom interface for each group. There are two configurations are introduced: * p2p_interface_random_mac_addr enable interface random MAC address feature, default disable. Change-Id: I519629eb8520a15e6f2d158cf3b9a4058f66e124 Signed-off-by: Jimmy Chen --- wpa_supplicant/config.c | 1 + wpa_supplicant/config.h | 10 ++++++++++ wpa_supplicant/config_file.c | 3 +++ wpa_supplicant/p2p_supplicant.c | 26 ++++++++++++++++++++++++++ 4 files changed, 40 insertions(+) diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c index caecfd15b..f5c606703 100644 --- a/wpa_supplicant/config.c +++ b/wpa_supplicant/config.c @@ -4847,6 +4847,7 @@ static const struct global_parse_data global_fields[] = { { INT_RANGE(coloc_intf_reporting, 0, 1), 0 }, { INT(p2p_device_random_mac_addr), 0 }, { STR(p2p_device_persistent_mac_addr), 0 }, + { INT(p2p_interface_random_mac_addr), 0 }, }; #undef FUNC diff --git a/wpa_supplicant/config.h b/wpa_supplicant/config.h index 6e009e836..f735671a6 100644 --- a/wpa_supplicant/config.h +++ b/wpa_supplicant/config.h @@ -1498,6 +1498,16 @@ struct wpa_config { */ char *p2p_device_persistent_mac_addr; + /** + * p2p_interface_random_mac_addr - P2P Interface MAC address policy default + * + * 0 = use permanent MAC address + * 1 = use random MAC address on creating the interface. + * + * By default, permanent MAC address is used. + */ + int p2p_interface_random_mac_addr; + }; diff --git a/wpa_supplicant/config_file.c b/wpa_supplicant/config_file.c index ea45ed398..1e1c53085 100644 --- a/wpa_supplicant/config_file.c +++ b/wpa_supplicant/config_file.c @@ -1533,6 +1533,9 @@ static void wpa_config_write_global(FILE *f, struct wpa_config *config) if (config->p2p_device_persistent_mac_addr) fprintf(f, "p2p_device_persistent_mac_addr=%s\n", config->p2p_device_persistent_mac_addr); + if (config->p2p_interface_random_mac_addr) + fprintf(f, "p2p_interface_random_mac_addr=%d\n", + config->p2p_interface_random_mac_addr); } #endif /* CONFIG_NO_CONFIG_WRITE */ diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index 8d0d1ad5a..836673463 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -2075,6 +2075,13 @@ static int wpas_p2p_add_group_interface(struct wpa_supplicant *wpa_s, return -1; } + if (wpa_s->conf->p2p_interface_random_mac_addr) { + random_mac_addr(wpa_s->pending_interface_addr); + wpa_printf(MSG_DEBUG, "P2P: Generate random MAC address " MACSTR " for the group", + MAC2STR(wpa_s->pending_interface_addr)); + } + + if (force_ifname[0]) { wpa_printf(MSG_DEBUG, "P2P: Driver forced interface name %s", force_ifname); @@ -2153,6 +2160,25 @@ wpas_p2p_init_group_interface(struct wpa_supplicant *wpa_s, int go) wpas_p2p_clone_config(group_wpa_s, wpa_s); + if (wpa_s->conf->p2p_interface_random_mac_addr) { + if (wpa_drv_set_mac_addr(group_wpa_s, wpa_s->pending_interface_addr) < 0) { + wpa_msg(group_wpa_s, MSG_INFO, + "Failed to set random MAC address"); + wpa_supplicant_remove_iface(wpa_s->global, group_wpa_s, 0); + return NULL; + } + + if (wpa_supplicant_update_mac_addr(group_wpa_s) < 0) { + wpa_msg(group_wpa_s, MSG_INFO, + "Could not update MAC address information"); + wpa_supplicant_remove_iface(wpa_s->global, group_wpa_s, 0); + return NULL; + } + + wpa_printf(MSG_DEBUG, "P2P: Using random MAC address " MACSTR " for the group", + MAC2STR(wpa_s->pending_interface_addr)); + } + return group_wpa_s; } -- 2.20.1.97.g81188d93c3-goog