Hello, internals!
Please throw your votes at the TLS Peer Verification proposal:
https://wiki.php.net/rfc/tls-peer-verification
Voting closes Dec. 24 ... Happy Holidays!
Hi!
Please throw your votes at the TLS Peer Verification proposal:
https://wiki.php.net/rfc/tls-peer-verification
Voting closes Dec. 24 ... Happy Holidays!
I'm not sure what to vote for here, because I like the ideas in the
patch about having a setting for CAfile, which in many distros would by
default enable peer verification and thus make you more secure, but I
don't like the fact that when you compile PHP, you get essentially a
configuration that can not use https at all, since you have no CA file
configured.
I'd like it more if there was an option where if you set cafile or
capath, you get automatic peer verification, but if you don't, you do
not have it. But it may be against the spirit of the RFC?
I know you propose a warning in this case, but judging from the story of
the datetime timezone warning, people would still ignore it. Also
warning is not much help if for some reason you don't know where to get
a cert file. And there's no way to disable peer verification on ini level.
Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227
Thanks for the input -- I'm just happy people are interested in the issue!
Let me address a couple of things ...
you get essentially a configuration that can not use https at all
I wouldn't say this is the really the case. Users still have access to the
same https functionality they've always had. The only difference is that
they now must explicitly acknowledge that, "Yes, what I'm doing is
insecure. I'm aware of it and I choose to continue anyway by specifying
this context option."
But it may be against the spirit of the RFC?
:) Yes ... that's kind of what I'm going for. Basically it's my thought
that many (most?) people using things like file_get_contents('https://')
are completely unaware of this issue in the first place. My thinking here
is that instead of not saying anything and just giving these users a false
sense of security we should at least make mention of the problem instead of
sweeping it under the rug.
people would still ignore it
Almost certainly. In fact, users do this routinely with curl_* because they
don't know any better.
Finally, I think this problem can largely be alleviated with appropriate
documentation. Should the RFC pass I'll work to make sure that any peer
verification changes are well-documented to (hopefully) stem the
inevitable storm of bug reports.
On Mon, Dec 16, 2013 at 8:42 PM, Stas Malyshev smalyshev@sugarcrm.comwrote:
Hi!
Please throw your votes at the TLS Peer Verification proposal:
https://wiki.php.net/rfc/tls-peer-verification
Voting closes Dec. 24 ... Happy Holidays!
I'm not sure what to vote for here, because I like the ideas in the
patch about having a setting for CAfile, which in many distros would by
default enable peer verification and thus make you more secure, but I
don't like the fact that when you compile PHP, you get essentially a
configuration that can not use https at all, since you have no CA file
configured.
I'd like it more if there was an option where if you set cafile or
capath, you get automatic peer verification, but if you don't, you do
not have it. But it may be against the spirit of the RFC?
I know you propose a warning in this case, but judging from the story of
the datetime timezone warning, people would still ignore it. Also
warning is not much help if for some reason you don't know where to get
a cert file. And there's no way to disable peer verification on ini level.Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227
Thanks for the input -- I'm just happy people are interested in the issue!
Let me address a couple of things ...
you get essentially a configuration that can not use https at all
I wouldn't say this is the really the case. Users still have access to the
same https functionality they've always had. The only difference is that
they now must explicitly acknowledge that, "Yes, what I'm doing is
insecure. I'm aware of it and I choose to continue anyway by specifying
this context option."But it may be against the spirit of the RFC?
:) Yes ... that's kind of what I'm going for. Basically it's my thought
that many (most?) people using things like file_get_contents('https://')
are completely unaware of this issue in the first place. My thinking here
is that instead of not saying anything and just giving these users a false
sense of security we should at least make mention of the problem instead of
sweeping it under the rug.people would still ignore it
Almost certainly. In fact, users do this routinely with curl_* because they
don't know any better.Finally, I think this problem can largely be alleviated with appropriate
documentation. Should the RFC pass I'll work to make sure that any peer
verification changes are well-documented to (hopefully) stem the
inevitable storm of bug reports.On Mon, Dec 16, 2013 at 8:42 PM, Stas Malyshev smalyshev@sugarcrm.comwrote:
Hi!
Please throw your votes at the TLS Peer Verification proposal:
https://wiki.php.net/rfc/tls-peer-verification
Voting closes Dec. 24 ... Happy Holidays!
I'm not sure what to vote for here, because I like the ideas in the
patch about having a setting for CAfile, which in many distros would by
default enable peer verification and thus make you more secure, but I
don't like the fact that when you compile PHP, you get essentially a
configuration that can not use https at all, since you have no CA file
configured.
I'd like it more if there was an option where if you set cafile or
capath, you get automatic peer verification, but if you don't, you do
not have it. But it may be against the spirit of the RFC?
I know you propose a warning in this case, but judging from the story of
the datetime timezone warning, people would still ignore it. Also
warning is not much help if for some reason you don't know where to get
a cert file. And there's no way to disable peer verification on ini level.Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227
Morning Internalz,
Daniel, you have to assume that nobody will even read the manual;
because they will not. I'm up for making it safer, but not for breaking
anything at all in a minor version, if we do not bundle the CA file it
would appear to break a bunch of requests that previously worked, that
doesn't seem good enough to me.
We can change the behaviour of the engine, but we cannot change the
behaviour of users code; if a requests works now, regardless of it's
security, it must continue to work with the default settings, therefore,
I suggest that you remove the option to change the behaviour of the
engine without maintaining the behaviour of users code, if the aim is to
make these requests more secure by default, then allowing it to fail, by
any means, defeats the object of making any changes at all.
If I'm wrong, tell me how :)
Cheers
Joe
Thanks for the input -- I'm just happy people are interested in the issue!
Let me address a couple of things ...
you get essentially a configuration that can not use https at all
I wouldn't say this is the really the case. Users still have access to the
same https functionality they've always had. The only difference is that
they now must explicitly acknowledge that, "Yes, what I'm doing is
insecure. I'm aware of it and I choose to continue anyway by specifying
this context option."But it may be against the spirit of the RFC?
:) Yes ... that's kind of what I'm going for. Basically it's my thought
that many (most?) people using things like file_get_contents('https://')
are completely unaware of this issue in the first place. My thinking here
is that instead of not saying anything and just giving these users a false
sense of security we should at least make mention of the problem instead
of
sweeping it under the rug.people would still ignore it
Almost certainly. In fact, users do this routinely with curl_* because
they
don't know any better.Finally, I think this problem can largely be alleviated with appropriate
documentation. Should the RFC pass I'll work to make sure that any peer
verification changes are well-documented to (hopefully) stem the
inevitable storm of bug reports.On Mon, Dec 16, 2013 at 8:42 PM, Stas Malyshev <smalyshev@sugarcrm.com
wrote:
Hi!
Please throw your votes at the TLS Peer Verification proposal:
https://wiki.php.net/rfc/tls-peer-verification
Voting closes Dec. 24 ... Happy Holidays!
I'm not sure what to vote for here, because I like the ideas in the
patch about having a setting for CAfile, which in many distros would by
default enable peer verification and thus make you more secure, but I
don't like the fact that when you compile PHP, you get essentially a
configuration that can not use https at all, since you have no CA file
configured.
I'd like it more if there was an option where if you set cafile or
capath, you get automatic peer verification, but if you don't, you do
not have it. But it may be against the spirit of the RFC?
I know you propose a warning in this case, but judging from the story of
the datetime timezone warning, people would still ignore it. Also
warning is not much help if for some reason you don't know where to get
a cert file. And there's no way to disable peer verification on ini
level.Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227Morning Internalz,
Daniel, you have to assume that nobody will even read the manual;
because they will not. I'm up for making it safer, but not for breaking
anything at all in a minor version, if we do not bundle the CA file it
would appear to break a bunch of requests that previously worked, that
doesn't seem good enough to me.
We can change the behaviour of the engine, but we cannot change
the behaviour of users code; if a requests works now, regardless of it's
security, it must continue to work with the default settings, therefore, I
suggest that you remove the option to change the behaviour of the engine
without maintaining the behaviour of users code, if the aim is to make
these requests more secure by default, then allowing it to fail, by any
means, defeats the object of making any changes at all.If I'm wrong, tell me how :)
Cheers
Joe--
I'm not taking sides, but given that this is a security related change, one
could argue that security fixes should be ok to go in a minor version, even
if they break BC.
--
Ferenc Kovács
@Tyr43l - http://tyrael.hu
Thanks for the input -- I'm just happy people are interested in the issue!
Let me address a couple of things ...
you get essentially a configuration that can not use https at all
I wouldn't say this is the really the case. Users still have access to the
same https functionality they've always had. The only difference is that
they now must explicitly acknowledge that, "Yes, what I'm doing is
insecure. I'm aware of it and I choose to continue anyway by specifying
this context option."But it may be against the spirit of the RFC?
:) Yes ... that's kind of what I'm going for. Basically it's my thought
that many (most?) people using things like file_get_contents('https://')
are completely unaware of this issue in the first place. My thinking here
is that instead of not saying anything and just giving these users a false
sense of security we should at least make mention of the problem instead
of
sweeping it under the rug.people would still ignore it
Almost certainly. In fact, users do this routinely with curl_* because
they
don't know any better.Finally, I think this problem can largely be alleviated with appropriate
documentation. Should the RFC pass I'll work to make sure that any peer
verification changes are well-documented to (hopefully) stem the
inevitable storm of bug reports.On Mon, Dec 16, 2013 at 8:42 PM, Stas Malyshev <smalyshev@sugarcrm.com
wrote:
Hi!
Please throw your votes at the TLS Peer Verification proposal:
https://wiki.php.net/rfc/tls-peer-verification
Voting closes Dec. 24 ... Happy Holidays!
I'm not sure what to vote for here, because I like the ideas in the
patch about having a setting for CAfile, which in many distros would by
default enable peer verification and thus make you more secure, but I
don't like the fact that when you compile PHP, you get essentially a
configuration that can not use https at all, since you have no CA file
configured.
I'd like it more if there was an option where if you set cafile or
capath, you get automatic peer verification, but if you don't, you do
not have it. But it may be against the spirit of the RFC?
I know you propose a warning in this case, but judging from the story of
the datetime timezone warning, people would still ignore it. Also
warning is not much help if for some reason you don't know where to get
a cert file. And there's no way to disable peer verification on ini
level.Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227Morning Internalz,
Daniel, you have to assume that nobody will even read the manual;
because they will not. I'm up for making it safer, but not for breaking
anything at all in a minor version, if we do not bundle the CA file it
would appear to break a bunch of requests that previously worked, that
doesn't seem good enough to me.
We can change the behaviour of the engine, but we cannot change
the behaviour of users code; if a requests works now, regardless of it's
security, it must continue to work with the default settings, therefore, I
suggest that you remove the option to change the behaviour of the engine
without maintaining the behaviour of users code, if the aim is to make
these requests more secure by default, then allowing it to fail, by any
means, defeats the object of making any changes at all.If I'm wrong, tell me how :)
Cheers
Joe--
I'm not taking sides, but given that this is a security related change, one
could argue that security fixes should be ok to go in a minor version, even
if they break BC.
Tyrael,
Okay, but there's no good reason not to implement the fix in the most
backward compatible manner in the first place; breaking BC doesn't make
it any more secure, it just breaks shit.
Additionally when you consider the context, this is not affecting the
behaviour of some rarely used functionality, it would be reckless to
change it's behaviour when retaining compatibly is no problem at all.
Cheers
Joe
Thanks for the input -- I'm just happy people are interested in the
issue!
Let me address a couple of things ...
you get essentially a configuration that can not use https at all
I wouldn't say this is the really the case. Users still have access to
the
same https functionality they've always had. The only difference is that
they now must explicitly acknowledge that, "Yes, what I'm doing is
insecure. I'm aware of it and I choose to continue anyway by specifying
this context option."But it may be against the spirit of the RFC?
:) Yes ... that's kind of what I'm going for. Basically it's my thought
that many (most?) people using things like file_get_contents('https://
')
are completely unaware of this issue in the first place. My thinking
here
is that instead of not saying anything and just giving these users a
false
sense of security we should at least make mention of the problem instead
of
sweeping it under the rug.people would still ignore it
Almost certainly. In fact, users do this routinely with curl_* because
they
don't know any better.Finally, I think this problem can largely be alleviated with appropriate
documentation. Should the RFC pass I'll work to make sure that any peer
verification changes are well-documented to (hopefully) stem the
inevitable storm of bug reports.On Mon, Dec 16, 2013 at 8:42 PM, Stas Malyshev <smalyshev@sugarcrm.com
wrote:
Hi!
Please throw your votes at the TLS Peer Verification proposal:
https://wiki.php.net/rfc/tls-peer-verification
Voting closes Dec. 24 ... Happy Holidays!
I'm not sure what to vote for here, because I like the ideas in the
patch about having a setting for CAfile, which in many distros would by
default enable peer verification and thus make you more secure, but I
don't like the fact that when you compile PHP, you get essentially a
configuration that can not use https at all, since you have no CA file
configured.
I'd like it more if there was an option where if you set cafile or
capath, you get automatic peer verification, but if you don't, you do
not have it. But it may be against the spirit of the RFC?
I know you propose a warning in this case, but judging from the story
of
the datetime timezone warning, people would still ignore it. Also
warning is not much help if for some reason you don't know where to get
a cert file. And there's no way to disable peer verification on ini
level.Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227Morning Internalz,
Daniel, you have to assume that nobody will even read the
manual;
because they will not. I'm up for making it safer, but not for breaking
anything at all in a minor version, if we do not bundle the CA file it
would appear to break a bunch of requests that previously worked, that
doesn't seem good enough to me.
We can change the behaviour of the engine, but we cannot change
the behaviour of users code; if a requests works now, regardless of it's
security, it must continue to work with the default settings, therefore,
I
suggest that you remove the option to change the behaviour of the engine
without maintaining the behaviour of users code, if the aim is to make
these requests more secure by default, then allowing it to fail, by any
means, defeats the object of making any changes at all.If I'm wrong, tell me how :)
Cheers
Joe--
I'm not taking sides, but given that this is a security related change,
one
could argue that security fixes should be ok to go in a minor version,
even
if they break BC.Tyrael,
Okay, but there's no good reason not to implement the fix in the
most backward compatible manner in the first place; breaking BC doesn't
make it any more secure, it just breaks shit.
Additionally when you consider the context, this is not affecting
the behaviour of some rarely used functionality, it would be reckless to
change it's behaviour when retaining compatibly is no problem at all.Cheers
Joe
Hi Joe,
As I mentioned, I'm not saying that we should accept the proposal, I only
replied because you stated that
"I'm up for making it safer, but not for breaking
anything at all in a minor version, if we do not bundle the CA file it
would appear to break a bunch of requests that previously worked, that
doesn't seem good enough to me."
Ofc. I also would prefer if we could improve the situation without
introducing a BC break in a minor version.
--
Ferenc Kovács
@Tyr43l - http://tyrael.hu
Thanks for the input -- I'm just happy people are interested in the
issue!
Let me address a couple of things ...
you get essentially a configuration that can not use https at all
I wouldn't say this is the really the case. Users still have access to
the
same https functionality they've always had. The only difference is that
they now must explicitly acknowledge that, "Yes, what I'm doing is
insecure. I'm aware of it and I choose to continue anyway by specifying
this context option."But it may be against the spirit of the RFC?
:) Yes ... that's kind of what I'm going for. Basically it's my thought
that many (most?) people using things like file_get_contents('https://
')
are completely unaware of this issue in the first place. My thinking
here
is that instead of not saying anything and just giving these users a
false
sense of security we should at least make mention of the problem instead
of
sweeping it under the rug.people would still ignore it
Almost certainly. In fact, users do this routinely with curl_* because
they
don't know any better.Finally, I think this problem can largely be alleviated with appropriate
documentation. Should the RFC pass I'll work to make sure that any peer
verification changes are well-documented to (hopefully) stem the
inevitable storm of bug reports.On Mon, Dec 16, 2013 at 8:42 PM, Stas Malyshev <smalyshev@sugarcrm.com
wrote:
Hi!
Please throw your votes at the TLS Peer Verification proposal:
https://wiki.php.net/rfc/tls-peer-verification
Voting closes Dec. 24 ... Happy Holidays!
I'm not sure what to vote for here, because I like the ideas in the
patch about having a setting for CAfile, which in many distros would by
default enable peer verification and thus make you more secure, but I
don't like the fact that when you compile PHP, you get essentially a
configuration that can not use https at all, since you have no CA file
configured.
I'd like it more if there was an option where if you set cafile or
capath, you get automatic peer verification, but if you don't, you do
not have it. But it may be against the spirit of the RFC?
I know you propose a warning in this case, but judging from the story
of
the datetime timezone warning, people would still ignore it. Also
warning is not much help if for some reason you don't know where to get
a cert file. And there's no way to disable peer verification on ini
level.Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227Morning Internalz,
Daniel, you have to assume that nobody will even read the
manual;
because they will not. I'm up for making it safer, but not for breaking
anything at all in a minor version, if we do not bundle the CA file it
would appear to break a bunch of requests that previously worked, that
doesn't seem good enough to me.
We can change the behaviour of the engine, but we cannot change
the behaviour of users code; if a requests works now, regardless of it's
security, it must continue to work with the default settings, therefore,
I
suggest that you remove the option to change the behaviour of the engine
without maintaining the behaviour of users code, if the aim is to make
these requests more secure by default, then allowing it to fail, by any
means, defeats the object of making any changes at all.If I'm wrong, tell me how :)
Cheers
Joe--
I'm not taking sides, but given that this is a security related change,
one
could argue that security fixes should be ok to go in a minor version,
even
if they break BC.Tyrael,
Okay, but there's no good reason not to implement the fix in the
most backward compatible manner in the first place; breaking BC doesn't
make it any more secure, it just breaks shit.
Additionally when you consider the context, this is not affecting
the behaviour of some rarely used functionality, it would be reckless to
change it's behaviour when retaining compatibly is no problem at all.Cheers
JoeHi Joe,
As I mentioned, I'm not saying that we should accept the proposal, I only
replied because you stated that
"I'm up for making it safer, but not for breaking
anything at all in a minor version, if we do not bundle the CA file it
would appear to break a bunch of requests that previously worked, that
doesn't seem good enough to me."Ofc. I also would prefer if we could improve the situation without
introducing a BC break in a minor version.
Hi Tyrael,
I'm saying that we should, definitely, accept the patch; in this
specific case we can fix the implementation or security issue without
affecting behaviour, so I question whether it is useful or productive to
have a voting option to integrate a fix that changes the behaviour of
very widely used functionality when it's current behaviour can be
retained and made secure by the proposal. I think it would be much
better to remove the option to vote in favour of breaking compatibility
since there is no logical reason, or otherwise genuine need to do so.
Cheers
Joe
I'm saying that we should, definitely, accept the patch; in this
specific case we can fix the implementation or security issue without
affecting behaviour,
Unfortunately that's not true. To fix the security issue REQUIRES
affecting behaviour. Otherwise it's not fixed.
--
Andrea Faulds
http://ajf.me/
I'm saying that we should, definitely, accept the patch; in this
specific case we can fix the implementation or security issue without
affecting behaviour,Unfortunately that's not true. To fix the security issue REQUIRES
affecting behaviour. Otherwise it's not fixed.
If the CA file is present with verification enabled the vast majority of
requests will execute as they do now, but securely. Most of the time, no
evident change. If the CA file is not present change is introduced, lots
of it.
Changing the behaviour of the language from an internals perspective
does not and should not mean changing the behaviour of code unless that
is the intention behind the change, obviously.
Cheers
Joe
I'm saying that we should, definitely, accept the patch; in this
specific case we can fix the implementation or security issue without
affecting behaviour,Unfortunately that's not true. To fix the security issue REQUIRES
affecting behaviour. Otherwise it's not fixed.If the CA file is present with verification enabled the vast majority of
requests will execute as they do now, but securely. Most of the time, no
evident change. If the CA file is not present change is introduced, lots of
it.Changing the behaviour of the language from an internals perspective does
not and should not mean changing the behaviour of code unless that is the
intention behind the change, obviously.Cheers
Joe--
Yes, as I mentioned shipping a CA file would help some users (we can only
guess here, but I think most users would be using the shared CA bundle from
their distro, and only a small percentage would use the one that we
provided).
On the other hand everybody else apart from the browsers seems to be trying
to not ship their own CA bundle anymore.
Python doesn't ship one (even though it was requested:
http://bugs.python.org/issue13655)
Ruby doesn't ship one.
Java has it's own:
http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.htmldistros
try to wrap that away, which can cause bugs like this:
https://bugs.launchpad.net/ubuntu/+source/ca-certificates-java/+bug/920758
Perl doesn't ship one, but has multiple cpan modules which provide CA
bundles.
I stopped looking, but I really think that we should refrain from shipping
a CA bundle and take the burden of maintenance to ourselves.
--
Ferenc Kovács
@Tyr43l - http://tyrael.hu
.
I stopped looking, but I really think that we should refrain from shipping
a CA bundle and take the burden of maintenance to ourselves.
I fully agree. And we already do that for curl, pointing the users to the
curl web site where they maintain it and update it very often.
Cheers,
Pierre
given that this is a security related change, one could argue that
security
fixes should be ok to go in a minor version, even if they break BC.
This was my thought process. In my mind the RFC is about improving security
for users who don't know any better. I'm hoping to avoid the "Are we
allowed to break BC?" discussion.
Adding a CA file to the distribution is exceedingly simple, but this is not
a silver bullet. For example, the Mozilla CA file used by cURL is usually
updated three or four times a year. Even when bundling a CA file it would
only be a matter of time before a distribution's version was out of date.
In the end we can only do so much before users must bear the weight of
maintaining an acceptable level of security themselves.
Thanks for the input -- I'm just happy people are interested in the
issue!Let me address a couple of things ...
you get essentially a configuration that can not use https at all
I wouldn't say this is the really the case. Users still have access to
the
same https functionality they've always had. The only difference is that
they now must explicitly acknowledge that, "Yes, what I'm doing is
insecure. I'm aware of it and I choose to continue anyway by specifying
this context option."But it may be against the spirit of the RFC?
:) Yes ... that's kind of what I'm going for. Basically it's my thought
that many (most?) people using things like file_get_contents('https://')
are completely unaware of this issue in the first place. My thinking here
is that instead of not saying anything and just giving these users a
false
sense of security we should at least make mention of the problem instead
of
sweeping it under the rug.people would still ignore it
Almost certainly. In fact, users do this routinely with curl_* because
they
don't know any better.Finally, I think this problem can largely be alleviated with appropriate
documentation. Should the RFC pass I'll work to make sure that any peer
verification changes are well-documented to (hopefully) stem the
inevitable storm of bug reports.On Mon, Dec 16, 2013 at 8:42 PM, Stas Malyshev <smalyshev@sugarcrm.com
wrote:
Hi!
Please throw your votes at the TLS Peer Verification proposal:
https://wiki.php.net/rfc/tls-peer-verification
Voting closes Dec. 24 ... Happy Holidays!
I'm not sure what to vote for here, because I like the ideas in the
patch about having a setting for CAfile, which in many distros would by
default enable peer verification and thus make you more secure, but I
don't like the fact that when you compile PHP, you get essentially a
configuration that can not use https at all, since you have no CA file
configured.
I'd like it more if there was an option where if you set cafile or
capath, you get automatic peer verification, but if you don't, you do
not have it. But it may be against the spirit of the RFC?
I know you propose a warning in this case, but judging from the story of
the datetime timezone warning, people would still ignore it. Also
warning is not much help if for some reason you don't know where to get
a cert file. And there's no way to disable peer verification on ini
level.Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227Morning Internalz,
Daniel, you have to assume that nobody will even read the manual;
because they will not. I'm up for making it safer, but not for breaking
anything at all in a minor version, if we do not bundle the CA file it
would appear to break a bunch of requests that previously worked, that
doesn't seem good enough to me.
We can change the behaviour of the engine, but we cannot change
the behaviour of users code; if a requests works now, regardless of it's
security, it must continue to work with the default settings, therefore, I
suggest that you remove the option to change the behaviour of the engine
without maintaining the behaviour of users code, if the aim is to make
these requests more secure by default, then allowing it to fail, by any
means, defeats the object of making any changes at all.If I'm wrong, tell me how :)
Cheers
Joe--
I'm not taking sides, but given that this is a security related change,
one could argue that security fixes should be ok to go in a minor version,
even if they break BC.--
Ferenc Kovács
@Tyr43l - http://tyrael.hu
I've been asked to extend the voting period by a week because: holidays. So
instead of Dec. 24 the voting period will now end on Dec. 31.
given that this is a security related change, one could argue that
security
fixes should be ok to go in a minor version, even if they break BC.This was my thought process. In my mind the RFC is about improving
security for users who don't know any better. I'm hoping to avoid the "Are
we allowed to break BC?" discussion.Adding a CA file to the distribution is exceedingly simple, but this is
not a silver bullet. For example, the Mozilla CA file used by cURL is
usually updated three or four times a year. Even when bundling a CA file it
would only be a matter of time before a distribution's version was out of
date. In the end we can only do so much before users must bear the weight
of maintaining an acceptable level of security themselves.Thanks for the input -- I'm just happy people are interested in the
issue!Let me address a couple of things ...
you get essentially a configuration that can not use https at all
I wouldn't say this is the really the case. Users still have access to
the
same https functionality they've always had. The only difference is that
they now must explicitly acknowledge that, "Yes, what I'm doing is
insecure. I'm aware of it and I choose to continue anyway by specifying
this context option."But it may be against the spirit of the RFC?
:) Yes ... that's kind of what I'm going for. Basically it's my thought
that many (most?) people using things like file_get_contents('https://
')
are completely unaware of this issue in the first place. My thinking
here
is that instead of not saying anything and just giving these users a
false
sense of security we should at least make mention of the problem
instead of
sweeping it under the rug.people would still ignore it
Almost certainly. In fact, users do this routinely with curl_* because
they
don't know any better.Finally, I think this problem can largely be alleviated with appropriate
documentation. Should the RFC pass I'll work to make sure that any peer
verification changes are well-documented to (hopefully) stem the
inevitable storm of bug reports.On Mon, Dec 16, 2013 at 8:42 PM, Stas Malyshev <smalyshev@sugarcrm.com
wrote:
Hi!
Please throw your votes at the TLS Peer Verification proposal:
https://wiki.php.net/rfc/tls-peer-verification
Voting closes Dec. 24 ... Happy Holidays!
I'm not sure what to vote for here, because I like the ideas in the
patch about having a setting for CAfile, which in many distros would by
default enable peer verification and thus make you more secure, but I
don't like the fact that when you compile PHP, you get essentially a
configuration that can not use https at all, since you have no CA file
configured.
I'd like it more if there was an option where if you set cafile or
capath, you get automatic peer verification, but if you don't, you do
not have it. But it may be against the spirit of the RFC?
I know you propose a warning in this case, but judging from the story
of
the datetime timezone warning, people would still ignore it. Also
warning is not much help if for some reason you don't know where to get
a cert file. And there's no way to disable peer verification on ini
level.Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227Morning Internalz,
Daniel, you have to assume that nobody will even read the
manual; because they will not. I'm up for making it safer, but not for
breaking anything at all in a minor version, if we do not bundle the CA
file it would appear to break a bunch of requests that previously worked,
that doesn't seem good enough to me.
We can change the behaviour of the engine, but we cannot change
the behaviour of users code; if a requests works now, regardless of it's
security, it must continue to work with the default settings, therefore, I
suggest that you remove the option to change the behaviour of the engine
without maintaining the behaviour of users code, if the aim is to make
these requests more secure by default, then allowing it to fail, by any
means, defeats the object of making any changes at all.If I'm wrong, tell me how :)
Cheers
Joe--
I'm not taking sides, but given that this is a security related change,
one could argue that security fixes should be ok to go in a minor version,
even if they break BC.--
Ferenc Kovács
@Tyr43l - http://tyrael.hu
Please throw your votes at the TLS Peer Verification proposal:
Voting for the TLS Peer Verification RFC is now closed. The RFC has been
accepted and will be merged into 5.6/master over the coming days.