PROPOSAL: I propose that we remove python_gnutls, gnutls, opencdk,
libgcrypt, and
libgpg_error from Sage-5.0. See below for details.
VOTE:
[ ] Yes, remove them!
[ ] No, we need them.
[ ] Woops -- you are confused and didn't realize that ________________.
DETAILS:
The Sage notebook supports a "secure=True" option, which encrypts
communication between the notebook server and clients. This currently
depends on hacked-in support in Twisted for GNUTLS instead of OpenSSL,
because GNUTLS is GPL and OpenSSL is GPL-incompatible. GNUTLS has a
long list of dependencies, all of which we build from source with some
pain.
Twisted does not (and will likely never) officially support using
GNUTLS instead of OpenSSL; we had support with the version of Twisted
in Sage by hacking it in. For the new flask-based notebook for
Sage-5.0 we would have to do this hacking again (for the newer Twisted
spkg). This is holding up the release.
Very few people actually use the notebook in secure=True mode. For
those that do, I think it is reasonable to require them to build
Python with openssl support. Probably Sage doesn't even work without
building it that way, at least on some systems (I'm currently confused
on this point). In the worst case, they will have to ensure that some
openssl headers are installed, and rebuild Python. As long as we
aren't distributing openssl, there are no license issues.
Removing the above 5 packages will save space, make Sage build more
quickly and easily, and make the release manager and developer's job
easier. The only loss in functionality is that some people might not
have support for "secure=True" *out of the box*. For individual users,
I think using ssh tunnels is much better than https anyways. For
localhost users, secure=True is irrelevant. For people setting up a
server who will user secure=True, they *should* get a properly signed
certificate, so they are likely very sophisticated users willing to do
some extra work (incidentally, I have never once in the history of
Sage heard of anybody successfully run a Sage notebook server using
secure=True with a valid non-self-signed certificate!).
When I originally pushed to have secure=True easily available by
default in Sage for all users, I (1) didn't understand that
secure=False is safe on localhost, (2) didn't understand how easy ssh
port forwarding is, and (3) didn't realize how important (and
socially difficult) it is to have a non-self-signed certificate.
-- William
--
William Stein
Professor of Mathematics
University of Washington
http://wstein.org
> Removing the above 5 packages will save space, make Sage build more
> quickly and easily, and make the release manager and developer's job
> easier. The only loss in functionality is that some people might not
> have support for "secure=True" *out of the box*. For individual users,
> I think using ssh tunnels is much better than https anyways. For
> localhost users, secure=True is irrelevant. For people setting up a
> server who will user secure=True, they *should* get a properly signed
> certificate, so they are likely very sophisticated users willing to do
> some extra work (incidentally, I have never once in the history of
> Sage heard of anybody successfully run a Sage notebook server using
> secure=True with a valid non-self-signed certificate!).
>
> When I originally pushed to have secure=True easily available by
> default in Sage for all users, I (1) didn't understand that
> secure=False is safe on localhost, (2) didn't understand how easy ssh
> port forwarding is, and (3) didn't realize how important (and
> socially difficult) it is to have a non-self-signed certificate.
Answer:
[X] Yes, remove them!
... and make as many other things "use what's available on the system if
possible" as possible.
Snark on #sagemath
I do currently run a Sage server on a machine with secure=True, but it
would not be impossibly inconvenient to have it only available to
users with an ordinary account on the same machine (via ssh
tunnelling) if that would be necessary after your proposed change.
In any case, because of firewall issues only those with a normal
account can access it from off campus.
John
> --
> To post to this group, send an email to sage-...@googlegroups.com
> To unsubscribe from this group, send an email to sage-devel+...@googlegroups.com
> For more options, visit this group at http://groups.google.com/group/sage-devel
> URL: http://www.sagemath.org
On 01/09/12 11:39, William Stein wrote:
> ... For people setting up a
> server who will user secure=True, they *should* get a properly signed
> certificate, so they are likely very sophisticated users willing to do
> some extra work (incidentally, I have never once in the history of
> Sage heard of anybody successfully run a Sage notebook server using
> secure=True with a valid non-self-signed certificate!).
>
> When I originally pushed to have secure=True easily available by
> default in Sage for all users, I (1) didn't understand that
> secure=False is safe on localhost, (2) didn't understand how easy ssh
> port forwarding is, and (3) didn't realize how important (and
> socially difficult) it is to have a non-self-signed certificate.
I would argue that self-signed certificates are safer than "valid"
CA-signed ones, since, in both cases there's exactly one opportunity for
a MITM attack and in the latter, you additionally have to secure the
entire CA infrastructure.
That has absolutely no bearing on this issue, though.
The effort needed to keep all this stuff in sage is better spent elsewhere.
Hi Sage-Devel,PROPOSAL: I propose that we remove python_gnutls, gnutls, opencdk,
libgcrypt, and
libgpg_error from Sage-5.0. See below for details.VOTE:
[X ] Yes, remove them!
If this is possible, that would be a very good idea. Where's the
ticket, such that I can give it positive_review :-)
I just spent thirty seconds starting a notebook (bringing my total
notebook usage up to about thirty-seconds-worth): don't you need a
username/password to run sage code?
If there's a bug in the web server software, it could allow "remote"
execution over localhost. Otherwise, it looks to me like you have to log
in to do any damage.
Sending your admin password over the loopback interface unencrypted is
safe, since only root can sniff it.
ssl:443:sslmethod=TLSv1_METHODgrep for strport in run_notebook.py for details, or google for "twisted ssl:443:sslmethod" if you want more details on this.
to the Twisted "strports" configuration in run_notebook.py, as follows:
strport = 'ssl:443:sslmethod=TLSv1_METHOD:%s:%s:interface=%s:privateKey=%s:certKey=%s' ...
I agrees with that... Wouldn't be sufficient to provide a modified python spkg
which presuppose to have ssl installed on the computer ?
Cheers,
Florent
Changes would be:
1. install openssl development libraries (e.g., libssl-dev)
2. install sage
I think that's pretty much it, and everything else should be the same.
Thanks,
Jason
On Mon, Jan 9, 2012 at 8:39 AM, William Stein <wst...@gmail.com> wrote:
> Hi Sage-Devel,
>
> PROPOSAL: I propose that we remove python_gnutls, gnutls, opencdk,
> libgcrypt, and
> libgpg_error from Sage-5.0. See below for details.
>
> VOTE:
>
> [X] Yes, remove them!
How about changing it to protocol='https' instead of ssl=True or
secure=True? Of course, the default would be protocol='http'
Thanks,
Jason
+1
>
> Thanks,
>
> Jason
On Jan 14, 2012 9:00 AM, "Dr David Kirkby" <drki...@gmail.com> wrote:
>
>
>
> On Jan 9, 4:39 pm, William Stein <wst...@gmail.com> wrote:
> > Hi Sage-Devel,
> >
> > PROPOSAL: I propose that we remove python_gnutls, gnutls, opencdk,
> > libgcrypt, and
> > libgpg_error from Sage-5.0. See below for details.
> >
> > VOTE:
> >
> > [ ] Yes, remove them!
> > [ ] No, we need them.
> > [ ] Woops -- you are confused and didn't realize that ________________.
>
> How about adding:
>
> [ ] I understand the issues. I don't want to make a quick decision.
>
>
> > DETAILS:
> >
> > The Sage notebook supports a "secure=True" option, which encrypts
> > communication between the notebook server and clients. This currently
> > depends on hacked-in support in Twisted for GNUTLS instead of OpenSSL,
> > because GNUTLS is GPL and OpenSSL is GPL-incompatible. GNUTLS has a
> > long list of dependencies, all of which we build from source with some
> > pain.
>
> Are those dependencies used elsewhere though?
No, I don't think so.
> If so, you might not be
> able to remove them anyway.
>
> But the GPL issue is one you should not forget.
>
> > Very few people actually use the notebook in secure=True mode. For
> > those that do, I think it is reasonable to require them to build
> > Python with openssl support.
>
> Makes Sage non GPL
No it doesn't. There is a linking-with-system-libraries ckause in the GPL.
>
> > When I originally pushed to have secure=True easily available by
> > default in Sage for all users, I (1) didn't understand that
> > secure=False is safe on localhost, (2) didn't understand how easy ssh
> > port forwarding is
>
> You are missing an important point here. SSH forwarding is easy for
> users if their admin permits it. By default, on a number of systems,
> that wont be true. Both Solaris and CentOS (redhat clone), will not
> allow X forwarding over SSH unless the admin changes the sshd_config
> file.
>
> # X11 tunneling options
> X11Forwarding yes
>
> if that is commented out, or set to "no", then X forwarding wont
> work.
I am *not* talking about X forwarding but port forwarding. They are completely different.
> I don't know how many Linux distributions ship with that by default,
> but I know CentOS does, so I assume Redhat and Oracle Linux. Solaris
> too.
>
> Dave
>
On Jan 14, 2012 9:00 AM, "Dr David Kirkby" <drki...@gmail.com> wrote:
>
>
>
> On Jan 9, 4:39 pm, William Stein <wst...@gmail.com> wrote:
> > Very few people actually use the notebook in secure=True mode. For
> > those that do, I think it is reasonable to require them to build
> > Python with openssl support.
>
> Makes Sage non GPLNo it doesn't. There is a linking-with-system-libraries ckause in the GPL.
1. "can't?" OpenSSL is actually considered to fall into that
category by a lot of people, as explained here [1], which claims that
"most distributions" consider OpenSSL to fall under the operating
system exemption, with two notable exceptions (Debian and FSF). I
don't think we need to depend on this though.
2. We could instead solve this problem by adding an OpenSSL exemption
to the GPL-license on the Sage Notebook, as is discussed in detail at
[3], and there are examples of this listed at [4]. We can do this
because me (and a relatively small number of people) own the copyright
on all GPL'd code in the notebook, and I *think* none of the
dependencies of the notebook are GPL'd. Moreover, the notebook
server doesn't link in the Sage library. The following from the
GPL faq [2] is important: "If the program uses fork and exec to
invoke plug-ins, then the plug-ins are separate programs, so the
license for the main program makes no requirements for them." The
Sage Notebook server uses fork and exec to invoke ssh, which then
invokes Sage itself possibly on another computer.
3. We could also BSD license the Sage notebook. A huge advantage to
this would be that it would make full two-way collaboration with the
new Ipython notebook [5] possible. I'm personally willing to switch
to BSD for the Sage notebook (I have also received emails from many
notebook contributors such as Tom Boothby explicitly giving me
permission to change the license to BSD, so this wouldn't be too
hard).
SUMMARY: The Sage Notebook (in secure mode) is the only part of Sage
that potentially uses openssl. We can modify the notebook license.
By changing the license we can resolve potential license issues.
The only potential weak link would be if there are GPL'd dependencies
for any component of the notebook, but I'm 99% sure there aren't any,
since the world of web development (and javascript) is mostly free of
the GPL "virus". (I like GPL in some cases, but it is viral.)
[1] http://lwn.net/Articles/428111/
[2] http://www.gnu.org/licenses/gpl-faq.html
[3] http://people.gnome.org/~markmc/openssl-and-the-gpl.html
[4] http://en.wikipedia.org/wiki/OpenSSL
[5] http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html
-- William
Unclear, since we have so many options at present. For example, at a
minimum we *could* just delete the *ssl.so module from the Python
build. Then the user who wants to use secure=True would have to
rebuild Python to fix this (via "sage -f python"), or get that ssl
module for Python in some other way.
Users (and internal distributors) can do whatever they want with a
GPL'd program, so long as they don't publicly redistribute it.
-- William
On Sat, Jan 14, 2012 at 9:22 AM, Dr David Kirkby <drki...@gmail.com> wrote:1. "can't?" OpenSSL is actually considered to fall into that
> What part of the GPL? Can you be more specific.
>
> I know there is this clause
>
> "However, as a special exception, the source code distributed need not
> include anything that is normally distributed (in either source or
> binary form) with the major components (compiler, kernel, and so on)
> of the operating system on which the executable runs, unless that
> component itself accompanies the executable. "
>
> But OpenSSL can't be considered to fall into that.
category by a lot of people, as explained here [1], which claims that
"most distributions" consider OpenSSL to fall under the operating
system exemption, with two notable exceptions (Debian and FSF). I
don't think we need to depend on this though.
-- William
Personally I don't see how OpenSSL can be considered a major part of the operating system.
I don't see any reference to "system library" and I certainly would have thought
"totally insignificant" and "major" to have different meanings.
Clearly OpenSSL is not shipped as part of the OS for many.
--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?
I don't see any reference to "system library"
and I certainly would have thought
"totally insignificant" and "major" to have different meanings.
Clearly OpenSSL is not shipped as part of the OS for many.
William Stein <wst...@gmail.com> writes:
> Hi Sage-Devel,
>
> PROPOSAL: I propose that we remove python_gnutls, gnutls, opencdk,
> libgcrypt, and
> libgpg_error from Sage-5.0. See below for details.
Half a year later, it seems nothing came of this, since we still have
all the SPKGs you mentioned being shipped with Sage 5.2. Furthermore we
now depend on OpenSSL being on the system, and on its dev headers being
installed. It looks to me like the situation has worsened.
> VOTE:
>
> [ ] Yes, remove them!
> [ ] No, we need them.
> [ ] Woops -- you are confused and didn't realize that ________________.
Almost everyone in the thread voted to remove these packages. Is that
still the prevailing opinion?
fero <lu...@befair.it> writes:
> IMHO gnutls should be removed from SAGE if it is just used for
> notebook secure=True to provide https connection,
> because this argument could be relegated to the deployment
> enivronment which should be in care of sysadmins that deploy
> SAGE notebook somewhere.
See trac #13392 - http://trac.sagemath.org/sage_trac/ticket/13392