summaryrefslogtreecommitdiff
path: root/docs/design/nicknym.md
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2013-07-25 17:43:39 -0700
committerelijah <elijah@riseup.net>2013-07-25 17:43:39 -0700
commit3e5a1c07518cf16b2c502d69c37f327be046057a (patch)
tree9a8f3b9d7abdeac27b7bf7e8600384f71ea644fb /docs/design/nicknym.md
parent1e39930be1fe13424d5855efb2f4da1d75c8da47 (diff)
added more text about shared secret problems.
Diffstat (limited to 'docs/design/nicknym.md')
-rw-r--r--docs/design/nicknym.md4
1 files changed, 3 insertions, 1 deletions
diff --git a/docs/design/nicknym.md b/docs/design/nicknym.md
index 5731469..53f45c5 100644
--- a/docs/design/nicknym.md
+++ b/docs/design/nicknym.md
@@ -78,7 +78,7 @@ As we move down this list, each measure taken gets more complicated, requires mo
*Why not use DANE/DNSSEC?* DANE is great for discovery and validation of server keys, but there are many reasons why it is not so good for user keys: DNS records are slow to update; DNS queries are observable, unlike HTTP over TLS; it is difficult for a provider to publish thousands of keys in DNS; it is much easier for a client to do a simple HTTP fetch (and more possible for HTML5 clients). Also, RSA Public keys will soon be too big for UDP packets (though this is not true of ECC), so putting keys in DNS will mean putting a URL to a key in DNS, so you might as well just use HTTP anyway.
-*Why not use Shared Secret?* Shared secrets, like with the Socialist Millionaire protocol, are cool in theory but prone to user error and frustration in practice. Was the secret "Invisible Zebra" or "invisibleZebra"? For the special case of advanced users with special security needs, however, a shared secret provides a much stronger validation than other methods of key binding (so long as the validation window is small).
+*Why not use Shared Secret?* Shared secrets, like with the Socialist Millionaire protocol, are cool in theory but prone to user error and frustration in practice. A typical user is not in a position to have established a prior secret with most of the people they need to make first contact with. Shared secrets also cannot be scaled to a group setting. Finally, shared secrets are often typed incorrectly (e.g. was the secret "Invisible Zebra" or "invisibleZebra"? This could be fixed with rules for secret normalization, but this is tricky and language specific). For the special case of advanced users with special security needs, however, a shared secret provides a much stronger validation than other methods of key binding (so long as the validation window is small).
*Why not use Mail-back Verification?* If the provider distributes user keys, there is not any benefit to mail-back verification. The nicknym protocol could potentially benefit from a future enhancement to support mail-back for users on a non-cooperating legacy provider. However, at its best, mail-back is a very weak form of key validation.
@@ -117,6 +117,8 @@ Additional differences include:
As noted above, DANE will be very cool if ever adopted widely, but user keys are probably not a good fit for DNSSEC, because of issues of observability of DNS queries and complexity on the server and client end.
+By relying on the central authority of the root DNS zone, and the authority of TLDs (many of which are of doubtful trustworthiness), DANE potentially suffers from problems of compromised or nefarious authorities. Because DNS queries are not secure, a single user is particularly vulnerable to MiTM attacks that rewrite all their DNS queries. Adopting an alternate DNS query system, like [DNSCurve](http://dnscurve.org/), [DNSCrypt](https://www.opendns.com/technology/dnscrypt/), an alternate HTTPS based API, or restricting DNS queries to a VPN, would go a long way to fix this problem, and would effectively turn any supporting DNS server into a network perspectives notary. Regardless, the other problems with using DANE for user keys remain.
+
Nicknym protocol
==============================