[gopher] Adding TLS and/or SSL support to Gopher

William Orr will at worrbase.com
Sat Apr 25 05:00:26 UTC 2015


On 4/23/15 7:40 PM, Philipp Schafft wrote:
> Good morning!
> 
> On Thu, 2015-04-23 at 12:18 -0700, simple at sdf.org wrote:
>> New thread for an important topic :)
>>
>> Looking in my OS's /etc/services file it appears there are several
>> available ports in the 700-799 range:
>>
>> #                   703               Unassigned
>> #                   708               Unassigned
>> #                 717-728             Unassigned
>> #                   703               Unassigned
>> #                   708               Unassigned
>> #                 717-728             Unassigned
>> #                 732-740             Unassigned
>> #                   743               Unassigned
>> #                 745-746             Unassigned
>> #                 755-756             Unassigned
>> #                   766               Unassigned
>> #                   768               Unassigned
>> #                 778-779             Unassigned
>> #                 781-785             Unassigned
>> #                   786               Unassigned
>> #                   787               Unassigned
>> #                 788-799             Unassigned
> 
> I'm not sure another port needs to be assigned.
> Please see RFC2817 and RFC2818 as reference.
> Also consider the way cups does it. Beside supporting RFC2817 it detects
> TLS clients and can handle both kinds on the same port.

CUPS/anything that uses STARTLS, etc.

> 
> 
>> As for implementation of the concept, I feel it should be done in a way
>> that doesn't shut out existing gopher clients/servers.
>>
>> Perhaps adopting some sort of external client+server proxy model would be
>> the best starting point such that, for example, someone with a lynx(1)
>> browser could install a "secure_gopher" proxy on their computer such that
>> their now local port 70 requests are SSL-wrapped and sent on to a
>> corresponding "secure_gopher" proxy server listening on the new gopherS
>> TLS encrypted port (785 maybe?). Probably it's already doable using
>> opensshd and SOCKS, just need to pick a port.
>>
>> The above approach would not preclude others from basically incorporating
>> the proxy model into their new clients and servers for an all-in-one
>> solution.
> 
> I think using proxys will not improve the situation much:
> you can already have that. Also it is prone to security problems such as
> that the client is not aware of the TLS link. There are many known
> attacks to such proxified setups.
> 
> 
>> For making it officially part of Gopher World I think it means a new RFC
>> for "secure gopher" or at least adding the spec to the existing gopher
>> RFC; I don't know which would be easier.
> 
> I would kind of implement it in a RFC that is considered an addition to
> the existing one.
> 
> 
> Two little notes:
>       * SSL is dead. There is no secure configuration left. So please
>         keep it to TLS.
>       * Vhosting should be kept in mind. Gopher doesn't really support
>         this but there is no reason not to use multiple hostnames for
>         the same server. In this case TLS is used this may become
>         relevant as certs may differ. See RFC2817 and RFC6066.

HTTP does this with Server Name Indication. That would be a good way to
approach the problem in gopher
(https://en.wikipedia.org/wiki/Server_Name_Indication).

I'd be happy to help implement this in some client/server as well.
LibreSSL has added their libtls family of functions, which aims to
reduce the difficulty of writing software that uses TLS. The API isn't
wholly stable yet, but it's a much better starting point than the
madness which is OpenSSL's API.

> 
> 
> 
> _______________________________________________
> Gopher-Project mailing list
> Gopher-Project at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/gopher-project
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/gopher-project/attachments/20150424/776adf15/attachment.sig>


More information about the Gopher-Project mailing list