[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