diff options
| author | Lars Magne Ingebrigtsen | 2014-11-24 17:47:00 +0100 |
|---|---|---|
| committer | Lars Magne Ingebrigtsen | 2014-11-24 17:47:00 +0100 |
| commit | 7f311629f0dc2b9f04acabb042347e1baf14fc23 (patch) | |
| tree | fc1007872c04a1b489456de1519f92cdff081bff | |
| parent | f9fcf84a9c6e7a4510a60b41c29cadbef817af14 (diff) | |
| download | emacs-7f311629f0dc2b9f04acabb042347e1baf14fc23.tar.gz emacs-7f311629f0dc2b9f04acabb042347e1baf14fc23.zip | |
* processes.texi (Network Security): Made into its own section and fleshed out
| -rw-r--r-- | doc/lispref/ChangeLog | 5 | ||||
| -rw-r--r-- | doc/lispref/elisp.texi | 1 | ||||
| -rw-r--r-- | doc/lispref/processes.texi | 85 |
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 @@ | |||
| 1 | 2014-11-24 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * processes.texi (Network Security): Made into its own section and | ||
| 4 | fleshed out. | ||
| 5 | |||
| 1 | 2014-11-23 Lars Magne Ingebrigtsen <larsi@gnus.org> | 6 | 2014-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 |
| 2076 | After establishing the connection, the connection is then passed on to | 2080 | @cindex encryption |
| 2077 | the 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 |
| 2079 | check whether the certificate used to establish the identity of the | 2083 | @cindex STARTTLS |
| 2080 | server we're connecting to can be verified. If this can't be done, | 2084 | |
| 2081 | the @acronym{NSM} will query the user whether to proceed with the | 2085 | After establishing a network connection, the connection is then passed |
| 2086 | on to the Network Security Manager (@acronym{NSM}). | ||
| 2087 | |||
| 2088 | @vindex network-security-level | ||
| 2089 | The @code{network-security-level} variable determines the security | ||
| 2090 | level. If this is @code{low}, no security checks are performed. | ||
| 2091 | |||
| 2092 | If this variable is @code{medium} (which is the default), a number of | ||
| 2093 | checks will be performed. If the @acronym{NSM} determines that the | ||
| 2094 | network connection might be unsafe, the user is made aware of this, | ||
| 2095 | and the @acronym{NSM} will ask the user what to do about the network | ||
| 2082 | connection. | 2096 | connection. |
| 2083 | 2097 | ||
| 2084 | The user is given the choice of registering a permanent security | 2098 | The user is given the choice of registering a permanent security |
| 2085 | exception, a temporary one, or whether to refuse the connection | 2099 | exception, a temporary one, or whether to refuse the connection |
| 2086 | entirely. | 2100 | entirely. |
| 2087 | 2101 | ||
| 2102 | Below 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 | ||
| 2107 | If the connection is a @acronym{TLS}, @acronym{SSL} or | ||
| 2108 | @acronym{STARTTLS} connection, the @acronym{NSM} will check whether | ||
| 2109 | the certificate used to establish the identity of the server we're | ||
| 2110 | connecting to can be verified. | ||
| 2111 | |||
| 2112 | While an invalid certificate is often the cause for concern (there may | ||
| 2113 | be a Man-in-the-Middle hijacking your network connection and stealing | ||
| 2114 | your password), there may be valid reasons for going ahead with the | ||
| 2115 | connection anyway. | ||
| 2116 | |||
| 2117 | For instance, the server may be using a self-signed certificate, or | ||
| 2118 | the certificate may have expired. It's up to the user to determine | ||
| 2119 | whether it's acceptable to continue the connection. | ||
| 2120 | |||
| 2121 | @item a self-signed certificate has changed | ||
| 2122 | If you've previously accepted a self-signed certificate, but it has | ||
| 2123 | now changed, that either means that the server has just changed the | ||
| 2124 | certificate, or this might mean that the network connection has been | ||
| 2125 | hijacked. | ||
| 2126 | |||
| 2127 | @item previously encrypted connection now unencrypted | ||
| 2088 | If the connection is unencrypted, but it was encrypted in previous | 2128 | If the connection is unencrypted, but it was encrypted in previous |
| 2089 | sessions, the user will also be notified about this. | 2129 | sessions, this might mean that there is a proxy between you and the |
| 2130 | server that strips away @acronym{STARTTLS} announcements, leaving the | ||
| 2131 | connection unencrypted. This is usually very suspicious. | ||
| 2132 | |||
| 2133 | @item talking to an unencrypted service when sending a password | ||
| 2134 | When connecting to an @acronym{IMAP} or @acronym{POP3} server, these | ||
| 2135 | should usually be encrypted, because it's common to send passwords | ||
| 2136 | over these connections. Similarly, if you're sending email via | ||
| 2137 | @acronym{SMTP} that requires a password, you usually want that | ||
| 2138 | connection 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 |
| 2092 | The @code{network-security-level} variable determines the security level. | 2142 | |
| 2093 | If this is @code{low}, no security checks are performed. | 2143 | If @code{network-security-level} is @code{high}, the following checks |
| 2144 | will be made: | ||
| 2145 | |||
| 2146 | @table @asis | ||
| 2147 | @item a validated certificate changes the public key | ||
| 2148 | Servers change their keys occasionally, and that is normally nothing | ||
| 2149 | to be concerned about. However, if you are worried that your network | ||
| 2150 | connections are being hijacked by agencies who have access to pliable | ||
| 2151 | Certificate Authorities that issue new certificates for third-party | ||
| 2152 | services, you may want to keep track of these changes. | ||
| 2153 | @end table | ||
| 2154 | |||
| 2155 | Finally, if @code{network-security-level} is @code{paranoid}, you will | ||
| 2156 | also be notified the first time the @acronym{NSM} sees any new | ||
| 2157 | certificate. This will allow you to inspect all the certificates from | ||
| 2158 | all the connections that Emacs makes. | ||
| 2094 | 2159 | ||
| 2095 | 2160 | ||
| 2096 | @node Network Servers | 2161 | @node Network Servers |