aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen2014-11-24 17:47:00 +0100
committerLars Magne Ingebrigtsen2014-11-24 17:47:00 +0100
commit7f311629f0dc2b9f04acabb042347e1baf14fc23 (patch)
treefc1007872c04a1b489456de1519f92cdff081bff
parentf9fcf84a9c6e7a4510a60b41c29cadbef817af14 (diff)
downloademacs-7f311629f0dc2b9f04acabb042347e1baf14fc23.tar.gz
emacs-7f311629f0dc2b9f04acabb042347e1baf14fc23.zip
* processes.texi (Network Security): Made into its own section and fleshed out
-rw-r--r--doc/lispref/ChangeLog5
-rw-r--r--doc/lispref/elisp.texi1
-rw-r--r--doc/lispref/processes.texi85
3 files changed, 81 insertions, 10 deletions
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 5cc85aa60dc..3df6bfce1ea 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,8 @@
12014-11-24 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * processes.texi (Network Security): Made into its own section and
4 fleshed out.
5
12014-11-23 Lars Magne Ingebrigtsen <larsi@gnus.org> 62014-11-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 7
3 * processes.texi (Network): Mention the new :warn-unless-encrypted 8 * processes.texi (Network): Mention the new :warn-unless-encrypted
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index fa665da34a4..754140e587c 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -1299,6 +1299,7 @@ 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.
1302* Network Servers:: Network servers let Emacs accept net connections. 1303* Network Servers:: Network servers let Emacs accept net connections.
1303* Datagrams:: UDP network connections. 1304* Datagrams:: UDP network connections.
1304* Low-Level Network:: Lower-level but more general function 1305* Low-Level Network:: Lower-level but more general function
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index 3c9da5c64cd..fcf5e8dc84a 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -52,6 +52,7 @@ 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.
55* Network Servers:: Network servers let Emacs accept net connections. 56* Network Servers:: Network servers let Emacs accept net connections.
56* Datagrams:: UDP network connections. 57* Datagrams:: UDP network connections.
57* Low-Level Network:: Lower-level but more general function 58* Low-Level Network:: Lower-level but more general function
@@ -2072,25 +2073,89 @@ The connection type: @samp{plain} or @samp{tls}.
2072 2073
2073@end defun 2074@end defun
2074 2075
2076
2077@node Network Security
2078@section Network Security
2075@cindex Network Security Manager 2079@cindex Network Security Manager
2076After establishing the connection, the connection is then passed on to 2080@cindex encryption
2077the Network Security Manager (@acronym{NSM}). If the connection is a 2081@cindex SSL
2078@acronym{TLS} or @acronym{STARTTLS} connection, the @acronym{NSM} will 2082@cindex TLS
2079check whether the certificate used to establish the identity of the 2083@cindex STARTTLS
2080server we're connecting to can be verified. If this can't be done, 2084
2081the @acronym{NSM} will query the user whether to proceed with the 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
2082connection. 2096connection.
2083 2097
2084The user is given the choice of registering a permanent security 2098The user is given the choice of registering a permanent security
2085exception, a temporary one, or whether to refuse the connection 2099exception, a temporary one, or whether to refuse the connection
2086entirely. 2100entirely.
2087 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
2088If the connection is unencrypted, but it was encrypted in previous 2128If the connection is unencrypted, but it was encrypted in previous
2089sessions, the user will also be notified about this. 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.
2090 2140
2091@vindex network-security-level 2141@end table
2092The @code{network-security-level} variable determines the security level. 2142
2093If this is @code{low}, no security checks are performed. 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.
2094 2159
2095 2160
2096@node Network Servers 2161@node Network Servers