Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/uvm uvm(9): Enable swap encryption by default.



details:   https://anonhg.NetBSD.org/src/rev/9adcf7a57a11
branches:  trunk
changeset: 379507:9adcf7a57a11
user:      riastradh <riastradh%NetBSD.org@localhost>
date:      Thu Jun 03 20:18:06 2021 +0000

description:
uvm(9): Enable swap encryption by default.

For machines where the performance impact of swapping before the
system has an opportunity to process `vm.swap_encrypt=0' in
/etc/sysctl.conf, you can disable it again by adding

options         VMSWAP_DEFAULT_PLAINTEXT

to the kernel config.

diffstat:

 share/man/man4/options.4 |  12 +++++++++++-
 sys/uvm/files.uvm        |   3 ++-
 sys/uvm/uvm_swap.c       |   9 +++++++--
 3 files changed, 20 insertions(+), 4 deletions(-)

diffs (78 lines):

diff -r 01bd244f083c -r 9adcf7a57a11 share/man/man4/options.4
--- a/share/man/man4/options.4  Thu Jun 03 20:17:37 2021 +0000
+++ b/share/man/man4/options.4  Thu Jun 03 20:18:06 2021 +0000
@@ -1,4 +1,4 @@
-.\"    $NetBSD: options.4,v 1.518 2021/03/14 02:56:07 rin Exp $
+.\"    $NetBSD: options.4,v 1.519 2021/06/03 20:18:06 riastradh Exp $
 .\"
 .\" Copyright (c) 1996
 .\"    Perry E. Metzger.  All rights reserved.
@@ -2203,6 +2203,16 @@ for details.
 .It Cd options VMSWAP
 Enable paging device/file support.
 This option is on by default.
+.It Cd options VMSWAP_DEFAULT_PLAINTEXT
+Store swap in plaintext, not encrypted, which may expose secrets if the
+underlying nonvolatile medium is disclosed.
+This option is off by default; it is available only for extremely slow
+machines where the performance impact of swapping early at boot
+outweighs the security risks.
+Swap encryption can still be turned on dynamically with the
+.Em vm.swap_encrypt
+.Xr sysctl 7
+knob.
 .It Cd options PDPOLICY_CLOCKPRO
 Use CLOCK-Pro, an alternative page replace policy.
 .El
diff -r 01bd244f083c -r 9adcf7a57a11 sys/uvm/files.uvm
--- a/sys/uvm/files.uvm Thu Jun 03 20:17:37 2021 +0000
+++ b/sys/uvm/files.uvm Thu Jun 03 20:18:06 2021 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.uvm,v 1.36 2020/08/04 06:10:27 skrll Exp $
+#      $NetBSD: files.uvm,v 1.37 2021/06/03 20:18:06 riastradh Exp $
 
 #
 # UVM options
@@ -8,6 +8,7 @@ defflag opt_uvmhist.h           UVMHIST_PRINT: KE
 defparam opt_uvmhist.h         UVMHIST_MAPHIST_SIZE UVMHIST_PDHIST_SIZE
 defflag opt_uvm.h              UVMMAP_COUNTERS
 defparam opt_uvm.h             UVM_RESERVED_PAGES_PER_CPU
+defflag opt_vmswap.h           VMSWAP_DEFAULT_PLAINTEXT
 defflag opt_vmswap.h           VMSWAP : aes
 defflag opt_readahead.h                READAHEAD_STATS
 defflag opt_ubc.h              UBC_STATS
diff -r 01bd244f083c -r 9adcf7a57a11 sys/uvm/uvm_swap.c
--- a/sys/uvm/uvm_swap.c        Thu Jun 03 20:17:37 2021 +0000
+++ b/sys/uvm/uvm_swap.c        Thu Jun 03 20:18:06 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: uvm_swap.c,v 1.204 2021/05/23 00:36:36 mrg Exp $       */
+/*     $NetBSD: uvm_swap.c,v 1.205 2021/06/03 20:18:06 riastradh Exp $ */
 
 /*
  * Copyright (c) 1995, 1996, 1997, 2009 Matthew R. Green
@@ -30,11 +30,12 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.204 2021/05/23 00:36:36 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.205 2021/06/03 20:18:06 riastradh Exp $");
 
 #include "opt_uvmhist.h"
 #include "opt_compat_netbsd.h"
 #include "opt_ddb.h"
+#include "opt_vmswap.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -210,7 +211,11 @@ static struct workqueue *sw_reg_workqueu
 
 /* tuneables */
 u_int uvm_swapisfull_factor = 99;
+#if VMSWAP_DEFAULT_PLAINTEXT
 bool uvm_swap_encrypt = false;
+#else
+bool uvm_swap_encrypt = true;
+#endif
 
 /*
  * prototypes



Home | Main Index | Thread Index | Old Index