Re: [Development] Removal/deprecation of OpenSSL 1 in Qt

2023-12-07 Thread Ville Voutilainen
On Thu, 7 Dec 2023 at 12:33, Giuseppe D'Angelo
 wrote:
> * For how long is QNX going to support OpenSSL 1? Is OpenSSL 3 support
> on the radar?

Yes, it's on the radar for QNX 8, which is not released yet.

> Is there an online resource showing their commitment at
> maintaining it? Is there the possibility of just building+shipping
> OpenSSL 3 outside of what it's provided by the base OS?

Well, like it is on Linux distros, building and shipping it as a
replacement is not easy,
and building and shipping it alongside is not easy either.

> * For how long are *we* going to support QNX and OpenSSL 1 on there?

Until QNX 8 ships.

> * What about other platforms?

Maybe we should keep OpenSSL1 support in 6.5 throughout the lifetime
of that LTS.

> * Can we put this "contract" in the docs?

Sure seems like it would be a good idea to revisit this for the next
LTS in any case. Make that the point
where we drop OpenSSL1 regardless of whether Blackberry has managed to
ship QNX 8. That's different
from doing it in a patch release, or backporting the drop to
everywhere. We can plausibly say at that
point that we'll just drop it.

> > I don't quite follow why the revert "must" include making OpenSSL1
> > entirely an opt-in.
> > That doesn't change anything in how we build our release packages, at
> > the end of the day.
> > Innocent users should just build with an OpenSSL3-enabled system.
>
> Innocent users may have their own build scripts that pull OpenSSL 1 and
> build Qt against that, without realizing that they're playing with fire.
> We should never expose users to insecure defaults, hence the opt-in
> flag, and a build error if you ask for autodetection and only OpenSSL 1
> is found.

Well, okay then. Patch it first so that the opt-in supersedes
autodetection but the autodetection
is still there, then patch coin so that everything in it that needs
this uses the opt-in, then drop
the autodetection.
-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Removal/deprecation of OpenSSL 1 in Qt

2023-12-07 Thread Giuseppe D'Angelo via Development

Il 07/12/23 13:55, Kevin Kofler via Development ha scritto:

Why is that Qt's problem? Qt does not and cannot check that all security
updates for all dependencies have been applied, even when using a branch
supported by upstream, so I do not see why this case would be any different.


Because
1) Qt should never use unsafe 3rdparty dependencies;
2) this is different code from the supported version. We're choosing to 
keep and maintain code, in Qt, in order to support a library that has 
reached EOL;

3) OpenSSL is by far the most security-sensitive code that we use.

My 2 c,
--
Giuseppe D'Angelo | giuseppe.dang...@kdab.com | Senior Software Engineer
KDAB (France) S.A.S., a KDAB Group company
Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com
KDAB - Trusted Software Excellence



smime.p7s
Description: Firma crittografica S/MIME
-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Removal/deprecation of OpenSSL 1 in Qt

2023-12-07 Thread Thiago Macieira
On Thursday, 7 December 2023 04:55:48 PST Kevin Kofler via Development wrote:
> Qt should just use whatever OpenSSL is installed on the system and be done
> with it. Chances are that any OpenSSL 1 it finds will be from some LTS
> distro with backported security fixes anyway. 

I only agree partially with this statement, based on the previous paragraph.

The problem is that OpenSSL 1 and 3 have differing APIs, so supporting both 
means extra work for us. It's not a matter of just washing our hands, even if 
OpenSSL were "just another third-party dependency" -- it isn't, it's the 
single most security-relevant one. In fact, this is closer to support for 
Windows 9x/Me back in the day, where keeping this added to the maintenance of 
the other, more recent and more relevant configurations.

So here's what I propose as a compromise:
* we keep the code alive in the repository, for now
* we set a deadline for re-review, based on cost of maintenance and relevance
* we make it clear to users we do not test this, not even that it compiles
* but we advise we will take care of security issues stemming from our own 
  code as we've always done

That would put OpenSSL 1 support in the same bucket as FreeBSD or HaikuOS or 
Sparc processor support: whoever is using this[1] must supply patches.

I propose we re-review once a year.

[1] that may include the Qt Company if their commercial interests call for it.
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Cloud Software Architect - Intel DCAI Cloud Engineering


smime.p7s
Description: S/MIME cryptographic signature
-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Removal/deprecation of OpenSSL 1 in Qt

2023-12-07 Thread Kevin Kofler via Development
Giuseppe D'Angelo via Development wrote:
> Innocent users may have their own build scripts that pull OpenSSL 1 and
> build Qt against that, without realizing that they're playing with fire.
> We should never expose users to insecure defaults, hence the opt-in
> flag, and a build error if you ask for autodetection and only OpenSSL 1
> is found.

Why is that Qt's problem? Qt does not and cannot check that all security 
updates for all dependencies have been applied, even when using a branch 
supported by upstream, so I do not see why this case would be any different. 
Especially because not every OpenSSL 1 out there is going to be insecure 
(due to LTS distros etc.). And neither is every OpenSSL 3 out there going to 
be secure. (Just because updates are available from upstream does not 
automatically mean they are going to be installed.)

Qt should just use whatever OpenSSL is installed on the system and be done 
with it. Chances are that any OpenSSL 1 it finds will be from some LTS 
distro with backported security fixes anyway. And if the OpenSSL in use is 
actually insecure, that is something purely between upstream (OpenSSL) and 
downstream (the distro/OS, the application developer, and/or the end user), 
and hence completely out of the scope of Qt. Same as for any other third-
party dependency.

As long as Qt does not bundle an insecure OpenSSL, I do not see the issue 
here.

Kevin Kofler

-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Removal/deprecation of OpenSSL 1 in Qt

2023-12-07 Thread Giuseppe D'Angelo via Development

Hello,

On 07/12/2023 09:50, Ville Voutilainen wrote:

Well, this is straightforward in the sense that QNX doesn't support
openssl3 yet.
Dropping OpenSSL1 support is dropping support for TLS on QNX, and we don't
want to do that.


Sure, this is the premise of my mail, revert the change.

What about the rest?

* For how long is QNX going to support OpenSSL 1? Is OpenSSL 3 support 
on the radar? Is there an online resource showing their commitment at 
maintaining it? Is there the possibility of just building+shipping 
OpenSSL 3 outside of what it's provided by the base OS?


* For how long are *we* going to support QNX and OpenSSL 1 on there?

* What about other platforms?

* Can we put this "contract" in the docs?



I don't quite follow why the revert "must" include making OpenSSL1
entirely an opt-in.
That doesn't change anything in how we build our release packages, at
the end of the day.
Innocent users should just build with an OpenSSL3-enabled system.


Innocent users may have their own build scripts that pull OpenSSL 1 and 
build Qt against that, without realizing that they're playing with fire. 
We should never expose users to insecure defaults, hence the opt-in 
flag, and a build error if you ask for autodetection and only OpenSSL 1 
is found.


Thank you,
--
Giuseppe D'Angelo | giuseppe.dang...@kdab.com | Senior Software Engineer
KDAB (France) S.A.S., a KDAB Group company
Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com
KDAB - Trusted Software Excellence



smime.p7s
Description: S/MIME Cryptographic Signature
-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Removal/deprecation of OpenSSL 1 in Qt

2023-12-07 Thread Ville Voutilainen
On Thu, 30 Nov 2023 at 12:52, Giuseppe D'Angelo via Development
 wrote:
>
> Hi,
>
> OpenSSL 1 has reached EOL last September:
>
> > https://www.openssl.org/blog/blog/2023/09/11/eol-111/
>
>
> Qt has supported OpenSSL 3 for a while, and so last week I pushed a
> patch to drop OpenSSL 1 support from Qt. "This has made a lot of people
> very angry and been widely regarded as a bad move."
>
>
> It turns out that not every platform officially supported by Qt ships
> OpenSSL 3 yet. Some of these platforms are promising to maintain OpenSSL
> 1 for a little while longer, for instance Ubuntu 20.04 LTS:
>
> > https://canonical.com/blog/running-openssl-1-1-1-after-eol-with-ubuntu-pro
>
>
> How to move forward from here: "revert the patch", sure, but also not so
> fast:
>
> * First and foremost, I'd like a semi-formal insurance from Qt SSL
> maintainers that they're willing to maintain OpenSSL 1 code in Qt as
> long as needed. This should be done publicly, in docs + blog posts,
> because users are going to depend on this information.
>
> * For "how long" is that exactly? Also a very good question. Can we
> gather 1) which supported platforms are still offering only OpenSSL 1,
> and 2) for how long do they plan to support OpenSSL 1, and 3) for how
> long Qt would like to support these platforms? (Basically, assessing
> whether the "insurance" above is realistic)
>
> * Then, a plain revert isn't a good idea either: the whole point of the
> original commit is that using OpenSSL 1 is outright dangerous if you
> don't know what you're doing. (Using unmaintained security-sensitive
> code is a terrible idea). Therefore, a revert must also include make
> OpenSSL 1 entirely opt-in (cmake switch), and not using any automatic
> detection whatsoever: users of Qt should never ever be enabling it "by
> accident".

Well, this is straightforward in the sense that QNX doesn't support
openssl3 yet.
Dropping OpenSSL1 support is dropping support for TLS on QNX, and we don't
want to do that.

I don't quite follow why the revert "must" include making OpenSSL1
entirely an opt-in.
That doesn't change anything in how we build our release packages, at
the end of the day.
Innocent users should just build with an OpenSSL3-enabled system.
-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Removal/deprecation of OpenSSL 1 in Qt

2023-12-05 Thread Ahmad Samir

On 30/11/23 12:49, Giuseppe D'Angelo via Development wrote:

Hi,

OpenSSL 1 has reached EOL last September:


https://www.openssl.org/blog/blog/2023/09/11/eol-111/



Qt has supported OpenSSL 3 for a while, and so last week I pushed a
patch to drop OpenSSL 1 support from Qt. "This has made a lot of people
very angry and been widely regarded as a bad move."


It turns out that not every platform officially supported by Qt ships
OpenSSL 3 yet. Some of these platforms are promising to maintain OpenSSL
1 for a little while longer, for instance Ubuntu 20.04 LTS:


https://canonical.com/blog/running-openssl-1-1-1-after-eol-with-ubuntu-pro





See this thread started by Albert on the kde-distributions ML about the same 
issue
https://mail.kde.org/pipermail/distributions/2023-November/001459.html

Typically when you plan to support EOL software, you do the extra work on your 
own, that should include e.g. patching Qt to get that support back, and you 
maintain the patches to Qt code on your own too. That is my understanding of how 
corporate Linux support works, and it's confirmed by what Jan Grulich posted in a 
reply to the above KDE ML thread: 
https://mail.kde.org/pipermail/distributions/2023-December/thread.html


(pipermail doesn't show links to the rest of the thread if it spans multiple 
months).



How to move forward from here: "revert the patch", sure, but also not so
fast:

* First and foremost, I'd like a semi-formal insurance from Qt SSL
maintainers that they're willing to maintain OpenSSL 1 code in Qt as
long as needed. This should be done publicly, in docs + blog posts,
because users are going to depend on this information.

* For "how long" is that exactly? Also a very good question. Can we
gather 1) which supported platforms are still offering only OpenSSL 1,
and 2) for how long do they plan to support OpenSSL 1, and 3) for how
long Qt would like to support these platforms? (Basically, assessing
whether the "insurance" above is realistic)



[...]


* Then, a plain revert isn't a good idea either: the whole point of the
original commit is that using OpenSSL 1 is outright dangerous if you
don't know what you're doing. (Using unmaintained security-sensitive
code is a terrible idea). Therefore, a revert must also include make
OpenSSL 1 entirely opt-in (cmake switch), and not using any automatic
detection whatsoever: users of Qt should never ever be enabling it "by
accident".



Just stating the obvious: I agree, must be opt-in with a clear disclaimer "You're 
on your own, if it breaks, you get to keep the pieces".


[...]


My 2p's worth.

Regards,
Ahmad Samir



OpenPGP_signature
Description: OpenPGP digital signature
-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Removal/deprecation of OpenSSL 1 in Qt

2023-11-30 Thread Giuseppe D'Angelo via Development

Il 30/11/23 11:49, Giuseppe D'Angelo via Development ha scritto:


It turns out that not every platform officially supported by Qt ships
OpenSSL 3 yet. Some of these platforms are promising to maintain OpenSSL
1 for a little while longer,


Orthogonal but related, the patch kind of exposed a serious CI 
configuration problem: if SSL support gets accidentally disabled, the CI 
will still pass for a given configuration.


I guess CI configurations are simply using autodetection, and if SSL 
stops being detected for whatever reason (say, we break a cmake file), 
then the build just proceeds under QT_NO_SSL. If that's the case, should 
just always enforce SSL presence at Qt configure time?


(And should this enforcement be generalized to other important 3rd 
parties for which autotests exist? E.g. image formats.)


Thank you,
--
Giuseppe D'Angelo | giuseppe.dang...@kdab.com | Senior Software Engineer
KDAB (France) S.A.S., a KDAB Group company
Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com
KDAB - Trusted Software Excellence



smime.p7s
Description: Firma crittografica S/MIME
-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


[Development] Removal/deprecation of OpenSSL 1 in Qt

2023-11-30 Thread Giuseppe D'Angelo via Development

Hi,

OpenSSL 1 has reached EOL last September:


https://www.openssl.org/blog/blog/2023/09/11/eol-111/



Qt has supported OpenSSL 3 for a while, and so last week I pushed a 
patch to drop OpenSSL 1 support from Qt. "This has made a lot of people 
very angry and been widely regarded as a bad move."



It turns out that not every platform officially supported by Qt ships 
OpenSSL 3 yet. Some of these platforms are promising to maintain OpenSSL 
1 for a little while longer, for instance Ubuntu 20.04 LTS:



https://canonical.com/blog/running-openssl-1-1-1-after-eol-with-ubuntu-pro



How to move forward from here: "revert the patch", sure, but also not so 
fast:


* First and foremost, I'd like a semi-formal insurance from Qt SSL 
maintainers that they're willing to maintain OpenSSL 1 code in Qt as 
long as needed. This should be done publicly, in docs + blog posts, 
because users are going to depend on this information.


* For "how long" is that exactly? Also a very good question. Can we 
gather 1) which supported platforms are still offering only OpenSSL 1, 
and 2) for how long do they plan to support OpenSSL 1, and 3) for how 
long Qt would like to support these platforms? (Basically, assessing 
whether the "insurance" above is realistic)


* Then, a plain revert isn't a good idea either: the whole point of the 
original commit is that using OpenSSL 1 is outright dangerous if you 
don't know what you're doing. (Using unmaintained security-sensitive 
code is a terrible idea). Therefore, a revert must also include make 
OpenSSL 1 entirely opt-in (cmake switch), and not using any automatic 
detection whatsoever: users of Qt should never ever be enabling it "by 
accident".



Thank you,

--
Giuseppe D'Angelo | giuseppe.dang...@kdab.com | Senior Software Engineer
KDAB (France) S.A.S., a KDAB Group company
Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com
KDAB - Trusted Software Excellence


smime.p7s
Description: Firma crittografica S/MIME
-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development