aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/emacs/ChangeLog5
-rw-r--r--doc/emacs/emacs.texi1
-rw-r--r--doc/emacs/misc.texi103
-rw-r--r--doc/lispref/ChangeLog2
-rw-r--r--doc/lispref/elisp.texi1
-rw-r--r--doc/lispref/processes.texi103
-rw-r--r--etc/ChangeLog4
-rw-r--r--etc/NEWS4
8 files changed, 119 insertions, 104 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index aa9804fa94c..198de4f2636 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,8 @@
12014-11-24 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * misc.texi (Gnus Summary Buffer): Move the Network Security
4 Manager stuff here from the lispref manual.
5
12014-11-21 Eli Zaretskii <eliz@gnu.org> 62014-11-21 Eli Zaretskii <eliz@gnu.org>
2 7
3 * maintaining.texi (Version Control Systems): Move "@end itemize" 8 * maintaining.texi (Version Control Systems): Move "@end itemize"
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 702aa64bc25..66b10145e06 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -189,6 +189,7 @@ Advanced Features
189* Sending Mail:: Sending mail in Emacs. 189* Sending Mail:: Sending mail in Emacs.
190* Rmail:: Reading mail in Emacs. 190* Rmail:: Reading mail in Emacs.
191* Gnus:: A flexible mail and news reader. 191* Gnus:: A flexible mail and news reader.
192* Network Security:: Managing the network security.
192* Document View:: Viewing PDF, PS and DVI files. 193* Document View:: Viewing PDF, PS and DVI files.
193* EWW:: A web browser in Emacs. 194* EWW:: A web browser in Emacs.
194* Shell:: Executing shell commands from Emacs. 195* Shell:: Executing shell commands from Emacs.
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index af5ced77b52..2295414aa55 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -249,6 +249,109 @@ Search forward for articles containing a match for @var{regexp}.
249Exit the summary buffer and return to the group buffer. 249Exit the summary buffer and return to the group buffer.
250@end table 250@end table
251 251
252
253@node Network Security
254@section Network Security
255@cindex Network Security Manager
256@cindex encryption
257@cindex SSL
258@cindex TLS
259@cindex STARTTLS
260
261After establishing a network connection, the connection is then passed
262on to the Network Security Manager (@acronym{NSM}).
263
264@vindex network-security-level
265The @code{network-security-level} variable determines the security
266level. If this is @code{low}, no security checks are performed.
267
268If this variable is @code{medium} (which is the default), a number of
269checks will be performed. If the @acronym{NSM} determines that the
270network connection might be unsafe, the user is made aware of this,
271and the @acronym{NSM} will ask the user what to do about the network
272connection.
273
274The user is given the choice of registering a permanent security
275exception, a temporary one, or whether to refuse the connection
276entirely.
277
278Below is a list of the checks done on the @code{medium} level.
279
280@table @asis
281
282@item unable to verify a @acronym{TLS} certificate
283If the connection is a @acronym{TLS}, @acronym{SSL} or
284@acronym{STARTTLS} connection, the @acronym{NSM} will check whether
285the certificate used to establish the identity of the server we're
286connecting to can be verified.
287
288While an invalid certificate is often the cause for concern (there may
289be a Man-in-the-Middle hijacking your network connection and stealing
290your password), there may be valid reasons for going ahead with the
291connection anyway.
292
293For instance, the server may be using a self-signed certificate, or
294the certificate may have expired. It's up to the user to determine
295whether it's acceptable to continue the connection.
296
297@item a self-signed certificate has changed
298If you've previously accepted a self-signed certificate, but it has
299now changed, that either means that the server has just changed the
300certificate, or this might mean that the network connection has been
301hijacked.
302
303@item previously encrypted connection now unencrypted
304If the connection is unencrypted, but it was encrypted in previous
305sessions, this might mean that there is a proxy between you and the
306server that strips away @acronym{STARTTLS} announcements, leaving the
307connection unencrypted. This is usually very suspicious.
308
309@item talking to an unencrypted service when sending a password
310When connecting to an @acronym{IMAP} or @acronym{POP3} server, these
311should usually be encrypted, because it's common to send passwords
312over these connections. Similarly, if you're sending email via
313@acronym{SMTP} that requires a password, you usually want that
314connection to be encrypted. If the connection isn't encrypted, the
315@acronym{NSM} will warn you.
316
317@end table
318
319If @code{network-security-level} is @code{high}, the following checks
320will be made:
321
322@table @asis
323@item a validated certificate changes the public key
324Servers change their keys occasionally, and that is normally nothing
325to be concerned about. However, if you are worried that your network
326connections are being hijacked by agencies who have access to pliable
327Certificate Authorities that issue new certificates for third-party
328services, you may want to keep track of these changes.
329@end table
330
331Finally, if @code{network-security-level} is @code{paranoid}, you will
332also be notified the first time the @acronym{NSM} sees any new
333certificate. This will allow you to inspect all the certificates from
334all the connections that Emacs makes.
335
336The following additional variables can be used to control
337@acronym{NSM} details.
338
339@table @code
340@item nsm-settings-file
341@vindex nsm-settings-file
342The @acronym{NSM} stores details on the connections in this file. It
343defaults to @file{~/.emacs.d/network-security.data}.
344
345@item nsm-save-host-names
346@vindex nsm-save-host-names
347By default, host names will not be saved per non-@code{STARTTLS}
348connection. Instead a host/port hash is used to identify connections.
349This means that one can't casually read the settings file to see what
350servers the user has connected to. If this variable is @code{t}, host
351names will be saved in the file, too.
352@end table
353
354
252@node Document View 355@node Document View
253@section Document Viewing 356@section Document Viewing
254@cindex DVI file 357@cindex DVI file
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 57c5c65a96a..b0da266d53a 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -3,6 +3,8 @@
3 * processes.texi (Network Security): Made into its own section and 3 * processes.texi (Network Security): Made into its own section and
4 fleshed out. 4 fleshed out.
5 (Network Security): Mention more NSM variables. 5 (Network Security): Mention more NSM variables.
6 (Processes): Moved the Network Security Manager stuff to the Emacs
7 manual.
6 8
72014-11-23 Lars Magne Ingebrigtsen <larsi@gnus.org> 92014-11-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
8 10
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 754140e587c..fa665da34a4 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -1299,7 +1299,6 @@ Processes
1299* System Processes:: Accessing other processes running on your system. 1299* System Processes:: Accessing other processes running on your system.
1300* Transaction Queues:: Transaction-based communication with subprocesses. 1300* Transaction Queues:: Transaction-based communication with subprocesses.
1301* Network:: Opening network connections. 1301* Network:: Opening network connections.
1302* Network Security:: Managing the network security.
1303* Network Servers:: Network servers let Emacs accept net connections. 1302* Network Servers:: Network servers let Emacs accept net connections.
1304* Datagrams:: UDP network connections. 1303* Datagrams:: UDP network connections.
1305* Low-Level Network:: Lower-level but more general function 1304* Low-Level Network:: Lower-level but more general function
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index c93288f2028..0952cc15f03 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -52,7 +52,6 @@ Processes}.
52* System Processes:: Accessing other processes running on your system. 52* System Processes:: Accessing other processes running on your system.
53* Transaction Queues:: Transaction-based communication with subprocesses. 53* Transaction Queues:: Transaction-based communication with subprocesses.
54* Network:: Opening network connections. 54* Network:: Opening network connections.
55* Network Security:: Managing the network security.
56* Network Servers:: Network servers let Emacs accept net connections. 55* Network Servers:: Network servers let Emacs accept net connections.
57* Datagrams:: UDP network connections. 56* Datagrams:: UDP network connections.
58* Low-Level Network:: Lower-level but more general function 57* Low-Level Network:: Lower-level but more general function
@@ -2074,108 +2073,6 @@ The connection type: @samp{plain} or @samp{tls}.
2074@end defun 2073@end defun
2075 2074
2076 2075
2077@node Network Security
2078@section Network Security
2079@cindex Network Security Manager
2080@cindex encryption
2081@cindex SSL
2082@cindex TLS
2083@cindex STARTTLS
2084
2085After establishing a network connection, the connection is then passed
2086on to the Network Security Manager (@acronym{NSM}).
2087
2088@vindex network-security-level
2089The @code{network-security-level} variable determines the security
2090level. If this is @code{low}, no security checks are performed.
2091
2092If this variable is @code{medium} (which is the default), a number of
2093checks will be performed. If the @acronym{NSM} determines that the
2094network connection might be unsafe, the user is made aware of this,
2095and the @acronym{NSM} will ask the user what to do about the network
2096connection.
2097
2098The user is given the choice of registering a permanent security
2099exception, a temporary one, or whether to refuse the connection
2100entirely.
2101
2102Below is a list of the checks done on the @code{medium} level.
2103
2104@table @asis
2105
2106@item unable to verify a @acronym{TLS} certificate
2107If the connection is a @acronym{TLS}, @acronym{SSL} or
2108@acronym{STARTTLS} connection, the @acronym{NSM} will check whether
2109the certificate used to establish the identity of the server we're
2110connecting to can be verified.
2111
2112While an invalid certificate is often the cause for concern (there may
2113be a Man-in-the-Middle hijacking your network connection and stealing
2114your password), there may be valid reasons for going ahead with the
2115connection anyway.
2116
2117For instance, the server may be using a self-signed certificate, or
2118the certificate may have expired. It's up to the user to determine
2119whether it's acceptable to continue the connection.
2120
2121@item a self-signed certificate has changed
2122If you've previously accepted a self-signed certificate, but it has
2123now changed, that either means that the server has just changed the
2124certificate, or this might mean that the network connection has been
2125hijacked.
2126
2127@item previously encrypted connection now unencrypted
2128If the connection is unencrypted, but it was encrypted in previous
2129sessions, this might mean that there is a proxy between you and the
2130server that strips away @acronym{STARTTLS} announcements, leaving the
2131connection unencrypted. This is usually very suspicious.
2132
2133@item talking to an unencrypted service when sending a password
2134When connecting to an @acronym{IMAP} or @acronym{POP3} server, these
2135should usually be encrypted, because it's common to send passwords
2136over these connections. Similarly, if you're sending email via
2137@acronym{SMTP} that requires a password, you usually want that
2138connection to be encrypted. If the connection isn't encrypted, the
2139@acronym{NSM} will warn you.
2140
2141@end table
2142
2143If @code{network-security-level} is @code{high}, the following checks
2144will be made:
2145
2146@table @asis
2147@item a validated certificate changes the public key
2148Servers change their keys occasionally, and that is normally nothing
2149to be concerned about. However, if you are worried that your network
2150connections are being hijacked by agencies who have access to pliable
2151Certificate Authorities that issue new certificates for third-party
2152services, you may want to keep track of these changes.
2153@end table
2154
2155Finally, if @code{network-security-level} is @code{paranoid}, you will
2156also be notified the first time the @acronym{NSM} sees any new
2157certificate. This will allow you to inspect all the certificates from
2158all the connections that Emacs makes.
2159
2160The following additional variables can be used to control
2161@acronym{NSM} details.
2162
2163@table @code
2164@item nsm-settings-file
2165@vindex nsm-settings-file
2166The @acronym{NSM} stores details on the connections in this file. It
2167defaults to @file{~/.emacs.d/network-security.data}.
2168
2169@item nsm-save-host-names
2170@vindex nsm-save-host-names
2171By default, host names will not be saved per non-@code{STARTTLS}
2172connection. Instead a host/port hash is used to identify connections.
2173This means that one can't casually read the settings file to see what
2174servers the user has connected to. If this variable is @code{t}, host
2175names will be saved in the file, too.
2176@end table
2177
2178
2179@node Network Servers 2076@node Network Servers
2180@section Network Servers 2077@section Network Servers
2181@cindex network servers 2078@cindex network servers
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 867e4f5f09c..5d616129ad0 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
12014-11-24 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * NEWS: Mention NSM.
4
12014-11-23 Lars Magne Ingebrigtsen <larsi@gnus.org> 52014-11-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 6
3 * NEWS: Mention `url-request-noninteractive'. 7 * NEWS: Mention `url-request-noninteractive'.
diff --git a/etc/NEWS b/etc/NEWS
index da2edb66e42..6cad6a37c1b 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -49,6 +49,10 @@ Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
49 49
50* Changes in Emacs 25.1 50* Changes in Emacs 25.1
51 51
52** Network security (TLS/SSL certificate validity and the like) is
53added via the new Network Security Manager (NSM) and controlled via
54the `network-security-level' variable.
55
52** C-h l now also lists the commands that were run. 56** C-h l now also lists the commands that were run.
53 57
54** The new M-s M-w key binding uses eww to search the web for the 58** The new M-s M-w key binding uses eww to search the web for the