summaryrefslogtreecommitdiff
path: root/doc/opportunism.known-issues
diff options
context:
space:
mode:
Diffstat (limited to 'doc/opportunism.known-issues')
-rw-r--r--doc/opportunism.known-issues287
1 files changed, 287 insertions, 0 deletions
diff --git a/doc/opportunism.known-issues b/doc/opportunism.known-issues
new file mode 100644
index 000000000..90752dee3
--- /dev/null
+++ b/doc/opportunism.known-issues
@@ -0,0 +1,287 @@
+Known issues with Opportunistic Encryption Claudia Schmeing
+------------------------------------------
+
+
+This is an overview of known issues with OE.
+
+
+This document supplements:
+
+
+FreeS/WAN Quickstart Guide doc/quickstart.html
+
+Opportunism HOWTO doc/opportunism.howto
+
+Opportunism spec doc/opportunism.spec
+
+Internet Draft doc/draft-richardson-ipsec-opportunistic.txt
+
+
+
+* Use the most recent Linux FreeS/WAN 2.x release from ftp.xs4all.nl
+ to try OE.
+
+
+DESIGN LIMITATIONS
+
+
+* Because Opportunistic Encryption relies on DNS:
+ - to authenticate one FreeS/WAN to another, and
+ - to prove that we have the right to protect traffic for a given IP,
+ this authentication/authorization is only as strong as your DNS is
+ secure.
+
+ Without secure DNS, OE protects against passive snooping only.
+ Because the public key and gateway information that FreeS/WAN gets from
+ DNS is not authenticated, a man-in-the-middle attack is still possible.
+ We hope that as DNSsec is widely adopted, OE with strong authentication
+ will become more widespread.
+
+ However, our software does not yet distinguish between strongly and weakly
+ authenticated OE. This information might be useful for defining local
+ security policy.
+
+
+* Denial of service attacks are possible against OE. If you rely on OE rather
+ than VPN to connect several offices, a determined attacker could prevent you
+ from communicating securely.
+
+
+* OE challenges the notion that all IPsec peers are "friends". With OE,
+ strangers can potentially tunnel IPsec packets _through_ your defenses
+ against cleartext packets. This may call for a re-visit to firewall policy.
+
+
+* FreeS/WAN only creates OE connections when it traps an outgoing packet.
+ Since most traffic is two-way, for most traffic, FreeS/WAN 2.x may soon
+ trap an outgoing packet and create an IPsec connection to
+ protect both incoming and outgoing traffic. However, if a local
+ FreeS/WAN box accepts inbound traffic from a remote peer but
+ generates no outbound traffic in response, the local FreeS/WAN will not
+ attempt to initiate OE. Of course, the peer may also initiate OE upon
+ trapping its own outbound traffic.
+
+
+* OE is only as reliable as your DNS is.
+
+ If your DNS service is flaky, you will not be able to reliably establish
+ OE connections to known OE-capable peers.
+
+ If you ping a peer, but your FreeS/WAN does not find a TXT record signifying
+ the peer's ability to respond to OE negotiation), FreeS/WAN will not try to
+ opportunistically initiate, and communication will fallback to clear.
+
+ For more secure and reliable DNS, we recommend that you run DNS
+ within your security perimeter, either on your security gateway, or
+ on a machine to which you have a VPN connection. It is also possible
+ to have your DNS server located elsewhere on your LAN, though this may
+ cause lag on startup.
+
+ This mailing list message explains how to run a local caching name server:
+ http://lists.freeswan.org/pipermail/design/2003-January/004205.html
+
+ See also "Getting DNS through" in opportunism.howto
+ http://lists.freeswan.org/pipermail/design/2002-April/002285.html .
+
+
+
+CURRENT ISSUES
+
+* There are several special issues re: using OE when running FreeS/WAN with
+ kernel native IPsec, introduced in the 2.6 kernel. Please see
+ doc/2.6.known-issues.
+
+* If A and B have an OE connection, but A is rebooted, normally A will try to
+ re-connect to B and (if it has no DNS-related failures) it will succeed.
+ But, if A is set up for responder-only OE, you will have a one-way
+ connection until B notices that its original tunnel has expired. For details
+ see:
+
+ http://lists.freeswan.org/pipermail/design/2002-May/002582.html
+ http://lists.freeswan.org/pipermail/design/2002-June/002610.html
+
+ TIP: If an OE connection isn't behaving, you can recreate it with
+
+ ipsec whack --oppohere sourceIPaddress --oppothere targetIPaddress
+
+
+* There is no good clean facility to delete OE connections.
+ Available are:
+
+ ipsec auto --status to list connections
+ ipsec whack --deletestate to delete by state#.
+
+
+* You may experience seeming gaps at rekey time. Once you generate traffic,
+ you will find that the OE connection returns.
+
+ By default, OE connections are not rekeyed; if they were we'd have a
+ mountain of useless connections. As a consequence, if your OE connection is
+ idle at rekey time, it will go down until you generate further traffic.
+ To ensure prompt rekeying, you can run a ping thorough the OE tunnel.
+
+
+* At the moment, you can only run active OE on one physical interface.
+
+ Active means --routed, to trap outbound packets. It is this route
+ that is a problem.
+
+ Untested theory: you can have multiple active OE conns, for different
+ source addresses, but they all have to point their traffic out the single
+ interface.
+
+ When responding: you can only define one OE connection (per host or subnet)
+ in ipsec.conf, and that conn will apply to one interface. Normally this
+ will be the public interface which your default route uses; it is, however,
+ configurable.
+
+ Theoretically, it might make sense to select between multiple OE conns
+ based on some criterion, such as address ranges. This might be useful for
+ local OE, or in a complex routing scenario.
+
+ Currently, Pluto expects only one OE connection. If you add another,
+ Pluto may choose randomly between them, producing unpredictable results.
+
+
+* Building OE conns between nodes on a LAN is not possible.
+
+ This is a side effect of conflicts about ARP entries
+ in the rt_cache and our "stupid routing tricks".
+ There is no known workaround at this time.
+
+ "Stupid routing tricks" are an ongoing issue, and should
+ go away in a future software revision.
+
+ See these explanations:
+ http://lists.freeswan.org/pipermail/design/2002-April/002285.html
+ http://lists.freeswan.org/pipermail/design/2002-August/003249.html
+
+
+* FreeS/WAN may not correctly follow a CNAME (Canonical Name) trail resulting
+ from reverse DNS delegation.
+
+ Solution: Use a recent Bind 9 (we tested with Bind snap-pre9.3) for the
+ DNS services which the FreeS/WAN box relies on.
+
+ Reason: This Bind correctly implements "implied helper support" for
+ traditional DNS records, and so can follow a properly constructed CNAME
+ record trail which ends in a TXT record. Thus, in cases where a reverse
+ domain has been delegated, FreeS/WAN + Bind 9 can find a TXT record and
+ create an OE connection.
+
+ For more on the problem, see "OLD ISSUES", below.
+
+
+* To make OE operation smoother, we may need a script that runs and warns
+ if we have the reverse DNS records, but not the software running.
+ The reverse records advertise that we can do OE, but when the software is
+ not running this is false advertising.
+
+
+
+OLD ISSUES
+
+* Coterminal OE doesn't work in practise. This includes OE-in-WAVEsec.
+ Solved in 2.02.
+
+ Old diagnosis:
+
+ If you have coterminal OE connections (two OE connections which share
+ one endpoint), you should have use of one of the encrypted links, but it
+ is not clear which one KLIPS will prefer. In particular, the behaviour
+ may not be symmetrical.
+
+ Worse yet, it just seems to trip over itself and be generally
+ unworkable.
+
+ Weird but predictable:
+
+ If you have both a gateway and a host who advertise (via DNS) an
+ ability to do OE you need to be serious about doing host-based
+ OE, or you will be stuck in initiator-only mode. If your host
+ advertises but does not run OE, then when a peer tries to connect to
+ your host, it will fail to clear. The peer will then not try to encrypt
+ traffic bound for that host as it travels to the gateway. To remedy
+ the situation, restart ipsec on the peer (or otherwise flush out
+ the %pass eroute), and ping the peer from your host to initiate
+ OE.
+
+
+* One-way connection was created on rekey. Solved in 2.0.
+
+ If one side (A) has a shorter _keylife_ than the other,
+ and that side also has _rekey=no_, then when the keylife has
+ expired, it will expect that its peer (B) will make a new conn to replace
+ the existing one. Unfortunately, B has no idea.
+
+ B continues to send out encrypted packets on the original connection,
+ while A passes the return packets along in the clear.
+
+ There is a proposed patch for (A) here:
+ http://lists.freeswan.org/pipermail/design/2002-July/003114.html
+
+
+* Failure to look up own host name is a show stopper.
+ Solved in 1.98 and 1.98b.
+
+ Solution: new setting %dnsondemand. Usage:
+
+ leftrsasigkey=%dnsondemand # now in sample ipsec.conf
+ rightrsasigkey=%dnsondemand.
+
+ From man ipsec.conf:
+
+ The value %dnsondemand means the key is to fetched from DNS
+ at the time it is needed.
+
+ If Linux FreeS/WAN can't get the key for your public interface from
+ DNS, it will not keep trying, and you will not be able to do OE.
+
+ The error message is:
+
+ May 14 09:40:24 road Pluto[21210]: failure to fetch key for 193.110.157.18
+ from DNS: failure querying DNS for KEY of 18.157.110.193.in-addr.arpa.:
+ Host name lookup failure
+
+ Workaround: 1 or 2
+ 1. Supply a key in the conn. leftrsasigkey=0s...
+ 2. Fix the KEY lookup failure and try again.
+
+
+* Assertion failure at OE rekey time. Fixed in 2.0pre0. Patch for 1.98b posted
+ at http://lists.freeswan.org/pipermail/design/2002-August/003347.html
+
+
+* 1.91 to 1.94 have serious problems with %trap and %hold bugs. These bugs,
+ introduced while coding the support structure for OE, affect both OE and VPN
+ connections.
+
+
+* OE may not work with reverse delegation (CNAMEs). This problem was once
+ capable of being a show stopper.
+
+ When relying on Bind versions before 9 for local DNS services, FreeS/WAN
+ could not follow a well constructed CNAME trail that ended in a TXT or KEY
+ record. Although OE required both record types, in practise we noticed the
+ problem with the more common TXT lookups, rather than the rarer KEY lookups.
+ Bind 9 largely solves the problem, by correctly seeking TXT records in
+ delegated reverse domains. In addition, OE between two FreeS/WAN 2.02 or
+ later boxes no longer relies on KEY records.
+
+ Old symptoms:
+
+ When a DNS server queried by Linux FreeS/WAN follows a CNAME,
+ it seems to forget what record type it is looking for, and it
+ returns a PTR, despite the fact that another record type was requested.
+
+ Workaround:
+
+ Send your provider KEY and TXT records for direct insertion into the
+ reverse ZONE files, rather than asking your provider to delegate authority
+ using CNAME.
+
+ People who own IP blocks, rather than leasing them, may not
+ experience this problem. If you were assigned IPs more than
+ five years ago, you may own your IPs.
+
+