J Ventura Sep 22, 2022 @ 7:50pm
Steam client security concerns
I see that when the Steam client is started on a computer, both the "steamservice.exe" and the client "steam.exe" are making insecure HTTP connections to remote sites on the internet.

I find this to be an unacceptable risk for my computer. I would expect Steam to convert these and all other connections made to use a secure protocol such as HTTPS very soon. The conversion is simple and low effort. It is very irresponsible of Steam to have not done this to date.
< >
Showing 1-15 of 37 comments
Steam has not updated anything like that in a long time, the only reason modern browsers claim their insecure is because alot of them just removed HTTP from their site links to start without much else. Do you know the amount of sites that are "insecure" because literally Microsoft or Google have literally no idea what deems one actually insure?

Hundreds, and I wish I was joking.
I've seen it so wearingly often that I just started ignore them as honestly Microsoft's warnings cant be trusted when it comes to webpages for junk to start with anyways.
SLG Sep 22, 2022 @ 8:15pm 
Are you opening Steam through a browser?
aiusepsi Sep 24, 2022 @ 5:38am 
There's nothing about using an unencrypted connection which is, by itself, unsafe to the either the client or the server. It's good practice to use encrypted connections where you can, but there are valid reasons to occasionally use unencrypted connections.

I did an experiment; I captured network traffic with Wireshark while Steam was starting up. Exactly one unencrypted http connection was made. Steam sent this to test.steampowered.com:

GET /204 HTTP/1.1 Cache-Control: no-cache Host: test.steampowered.com Accept: text/html,*/*;q=0.9 accept-encoding: gzip,identity,*;q=0 accept-charset: ISO-8859-1,utf-8,*;q=0.7 user-agent: Valve/Steam HTTP Client 1.0

and test.steampowered.com replied with:

HTTP/1.1 204 No Content Accept-Ranges: bytes Content-Length: 0 Content-Type: text/plain ETag: "d41d8cd98f00b204e9800998ecf8427e:1632937655.318639" Last-Modified: Wed, 29 Sep 2021 17:47:35 GMT Server: AkamaiNetStorage Date: Sat, 24 Sep 2022 12:26:12 GMT Connection: keep-alive

There's really nothing dangerous at all about that; basically, it's just like if you clicked on a http://test.steampowered.com/204 link. Judging by the hostname, it looks like they're testing for something specific; one thing you might want to test this way is if you're on a public WiFi network which makes you login through a web portal.

On networks like those, they'll intercept and modify HTTP connections, and other types of connections will fail. A test like this on those kinds of networks will return something other than "204 No Content", so it would be a good way to test for that.
Last edited by aiusepsi; Sep 24, 2022 @ 5:42am
ShelLuser Sep 24, 2022 @ 6:13am 
The use of encryption does not magically make your connections more secure, the thought alone is just ignorant. At best it prevents anyone somewhere along the route to look into the actual data, but then again... a so called "man in the middle" attack is still quite easy, even with the use of HTTPS.

And well, the use of HTTP isn't bad at all. In fact, for some specific usage it's even preferred. Meh, one of the main reasons major browsers like Edge and Chrome are pushing for HTTPS is pure commerce.

Just because a process is using HTTP does not imply insecurity, not at all!
BJWyler Sep 24, 2022 @ 6:18am 
Originally posted by J Ventura:
I see that when the Steam client is started on a computer, both the "steamservice.exe" and the client "steam.exe" are making insecure HTTP connections to remote sites on the internet.

I find this to be an unacceptable risk for my computer. I would expect Steam to convert these and all other connections made to use a secure protocol such as HTTPS very soon. The conversion is simple and low effort. It is very irresponsible of Steam to have not done this to date.
I guess you better stop using Steam right now then, and not start it up until they do make it more secure. In fact, you probably shouldn't respond to this post, either. Doing so might put your system at risk!
RiO Sep 24, 2022 @ 8:31am 
Originally posted by ShelLuser:
The use of encryption does not magically make your connections more secure, the thought alone is just ignorant. At best it prevents anyone somewhere along the route to look into the actual data, but then again... a so called "man in the middle" attack is still quite easy, even with the use of HTTPS.

It prevents anyone to look at the data and prevents anyone from modifying the data.
Which means it also prevents anyone from attempting to inject anything that would result in specific attacks on the software that originally started the request. Like, say, a buffer overflow attack - or a specific attack against a known bug in whatever code the software uses to parse the contents of a request that results in exploitable memory corruption. This type of exploit is a stupidly common attack vector, to the point that many, many man-hours are sunk into patching any vulnerabilities related to it.

The Steam Service (steamservice.exe) runs under the SYSTEM account. It has absolutely zero business making any network connections that are not encrypted. The OP is absolutely right that this is a huge security risk in the event that Valve manages or managed to stuff anything up in how they handle returned responses which could lead to an exploitable vulnerability to achieve remote code execution with full elevated system permissions.


Originally posted by ShelLuser:
And well, the use of HTTP isn't bad at all. In fact, for some specific usage it's even preferred.
There is zero added value for HTTP over HTTPS nowadays. HTTP/2 is stupidly fast compared to HTTP 1.1 and de-facto only allowed over secure connections, meaning HTTP 1.1 can't use it. The speed boost HTTP/2 gives means overhead for encryption on the connection has not just become negligible but downright an absolute non-issue - because a non-encrypted HTTP 1.1 connection literally can be 10 times slower than an encrypted HTTP/2 connection.

Try it out for yourself: http://www.httpvshttps.com/

You are right about one thing though:
The choice for HTTP vs HTTPS is one traditionally centered in commercial reasons.
That is: HTTPS certificates take money and upkeep that businesses are too cheapskate to afford.
Luckily nowadays there are well-received and recognized initiatives like Let's Encrypt that make basic certificate services available for free; if you can't afford to pay for them, or are too much of a penny-pincher to do do.


Originally posted by aiusepsi:
There's nothing about using an unencrypted connection which is, by itself, unsafe to the either the client or the server. It's good practice to use encrypted connections where you can, but there are valid reasons to occasionally use unencrypted connections.

It is only not more unsafe if you work off of the dangerous assumption that the code processing the response will have been written absolutely perfect with no possible errors in it that could serve as an attack vector. As for valid reasons to use unencrypted connections. No; those don't really exist anymore. Maybe if you're still stuck needing to support extremely legacy devices that can't do HTTP/2 and you want to wholly cater your performance profile to them by using unencrypted HTTP/1.1 for e.g. assets like image or video, or something. But that is an outlier and possibly also simply not worth it anymore.
Last edited by RiO; Sep 24, 2022 @ 8:43am
ShelLuser Sep 24, 2022 @ 9:22am 
Originally posted by RiO:
Originally posted by ShelLuser:
The use of encryption does not magically make your connections more secure, the thought alone is just ignorant. At best it prevents anyone somewhere along the route to look into the actual data, but then again... a so called "man in the middle" attack is still quite easy, even with the use of HTTPS.

It prevents anyone to look at the data and prevents anyone from modifying the data.
No, it doesn't.

Because if a person actually has that kind of access to your data stream then it's childishly simple to set up a man in the middle attack: now the data between you and the attacker gets encrypted, the attacked decrypts it, modifies it and then sends it along onto their encrypted connection with the destination.

What you're completely overlooking here is that the encryption process is fully automated, worse yet: it's actually started by exchanging keys between client and server, which gives an attacker all the tools they need to intrude.

HTTPS is merely an encryption layer, no more and no less and in the end it provides 0 extra security.

Computer security isn't a switch you can turn on or off; it's an ever ongoing process.
Crashed Sep 24, 2022 @ 9:46am 
Originally posted by ShelLuser:
The use of encryption does not magically make your connections more secure, the thought alone is just ignorant. At best it prevents anyone somewhere along the route to look into the actual data, but then again... a so called "man in the middle" attack is still quite easy, even with the use of HTTPS.

And well, the use of HTTP isn't bad at all. In fact, for some specific usage it's even preferred. Meh, one of the main reasons major browsers like Edge and Chrome are pushing for HTTPS is pure commerce.

Just because a process is using HTTP does not imply insecurity, not at all!
MITM of HTTPS between your browser and the server terminating the HTTPS connection generally requires compromise of the client because an HTTPS client should verify the certificate returned by the server.

It is possible the HTTP connection as mentioned in a previous post could be a probe to detect network tampering, and as such should not pose a security risk provided the receive buffer and parser are properly hardened against corrupted data exploits.

As for the httpvshttps site, Steam does not appear to have their Akamai CDNs set up to support HTTP/2 so it will only run at HTTP/1.1 performance levels. That site uses http/2 on their demo site, which by the way has a speed very much affected by processor speed; perhaps it's the browser rendering that becomes the bottleneck when https is loaded.
Crashed Sep 24, 2022 @ 9:48am 
Originally posted by ShelLuser:
Originally posted by RiO:

It prevents anyone to look at the data and prevents anyone from modifying the data.
No, it doesn't.

Because if a person actually has that kind of access to your data stream then it's childishly simple to set up a man in the middle attack: now the data between you and the attacker gets encrypted, the attacked decrypts it, modifies it and then sends it along onto their encrypted connection with the destination.

What you're completely overlooking here is that the encryption process is fully automated, worse yet: it's actually started by exchanging keys between client and server, which gives an attacker all the tools they need to intrude.

HTTPS is merely an encryption layer, no more and no less and in the end it provides 0 extra security.

Computer security isn't a switch you can turn on or off; it's an ever ongoing process.
To modify an HTTPS stream the client has to be convinced to trust the attacker's public key. HTTPS websites are secured by certificates that are only issued to the servers that can be proven to be operating on the named domain(s). HTTPS is both encrypted and signed.
Last edited by Crashed; Sep 24, 2022 @ 9:48am
ShelLuser Sep 24, 2022 @ 2:19pm 
Originally posted by Crashed:
MITM of HTTPS between your browser and the server terminating the HTTPS connection generally requires compromise of the client because an HTTPS client should verify the certificate returned by the server.
And yet in a man in the middle that server is the attacker, you were saying?

Most of all, let's not kid ourserves: certificates as you call them are nothing more but public keys either fully trusted and thus self-signed or signed by a trusted authority.

Signing is done through (public) keys.

As for trust... you really don't know what you're talking about: the trust factor is implied by certificates that are stored on your OS: they sign those other certificates. Unfortunately... those are also easily spoofed. Thanks to commerce.

LOOK at your trust factory for a change instead of spouting off nonsense and see that there are dozens of root certificates in your Windows or OSX trust store that do not uphold the same line of reasoning as you do. Weakest link in the chain anyone?

https://i.imgur.com/W3IBI5n.png

Do you really feel safe with that in your Windows trust library?

Also notice the amount of entries in there? Any one of those can issue a "wrong" certificate and lo and behold: that has happened before. In the past few years an increasing number of CA's have been warned about issuing certs for public domains, like google.com.

Sorry for the harsh words but you're completely delusional if you think that HTTPS helps keeping you safe, because it doesn't.
Qbert ⭐ Sep 24, 2022 @ 2:34pm 
Originally posted by aiusepsi:
There's nothing about using an unencrypted connection which is, by itself, unsafe to the either the client or the server. It's good practice to use encrypted connections where you can, but there are valid reasons to occasionally use unencrypted connections.

I did an experiment; I captured network traffic with Wireshark while Steam was starting up. Exactly one unencrypted http connection was made. Steam sent this to test.steampowered.com:

GET /204 HTTP/1.1 Cache-Control: no-cache Host: test.steampowered.com Accept: text/html,*/*;q=0.9 accept-encoding: gzip,identity,*;q=0 accept-charset: ISO-8859-1,utf-8,*;q=0.7 user-agent: Valve/Steam HTTP Client 1.0

and test.steampowered.com replied with:

HTTP/1.1 204 No Content Accept-Ranges: bytes Content-Length: 0 Content-Type: text/plain ETag: "d41d8cd98f00b204e9800998ecf8427e:1632937655.318639" Last-Modified: Wed, 29 Sep 2021 17:47:35 GMT Server: AkamaiNetStorage Date: Sat, 24 Sep 2022 12:26:12 GMT Connection: keep-alive

There's really nothing dangerous at all about that; basically, it's just like if you clicked on a http://test.steampowered.com/204 link. Judging by the hostname, it looks like they're testing for something specific; one thing you might want to test this way is if you're on a public WiFi network which makes you login through a web portal.

On networks like those, they'll intercept and modify HTTP connections, and other types of connections will fail. A test like this on those kinds of networks will return something other than "204 No Content", so it would be a good way to test for that.

Kudos to you

Nice explanation and evidence, have some points :consmile:
Crashed Sep 24, 2022 @ 2:39pm 
Originally posted by ShelLuser:
Originally posted by Crashed:
MITM of HTTPS between your browser and the server terminating the HTTPS connection generally requires compromise of the client because an HTTPS client should verify the certificate returned by the server.
And yet in a man in the middle that server is the attacker, you were saying?

Most of all, let's not kid ourserves: certificates as you call them are nothing more but public keys either fully trusted and thus self-signed or signed by a trusted authority.

Signing is done through (public) keys.

As for trust... you really don't know what you're talking about: the trust factor is implied by certificates that are stored on your OS: they sign those other certificates. Unfortunately... those are also easily spoofed. Thanks to commerce.

LOOK at your trust factory for a change instead of spouting off nonsense and see that there are dozens of root certificates in your Windows or OSX trust store that do not uphold the same line of reasoning as you do. Weakest link in the chain anyone?

https://i.imgur.com/W3IBI5n.png

Do you really feel safe with that in your Windows trust library?

Also notice the amount of entries in there? Any one of those can issue a "wrong" certificate and lo and behold: that has happened before. In the past few years an increasing number of CA's have been warned about issuing certs for public domains, like google.com.

Sorry for the harsh words but you're completely delusional if you think that HTTPS helps keeping you safe, because it doesn't.
Do you need to spread conspiracy theories? If Microsoft was issuing certificates for domains they don't own then that would be a massive scandal.

Someone else can't use that to sign a MITM device since the trust library only contains public keys and not the private keys required to sign a certificate.

The root you showed is a timestamping certificate which is kept solely for the purpose of backwards compatibility with code signing certificates timestamped during its validity and cannot be used to sign website domains.

CAs found to have inappropriately signed server certificates are always intermediates that get revoked by the CA above them, either another intermediate or the root CA.

One could argue HTTPS MITM happens at CDNs but keep in mind in the scope of this conversation the CDN is the webserver and is provably operating publicly on its advertised domain. MITM attacks against HTTPS connections between a client and a site on the public Internet occur when the attacker not only taps the line but installs a malicious root certificate on the client for which the attacker holds the private key and can sign certificates at will.
Last edited by Crashed; Sep 24, 2022 @ 2:44pm
ShelLuser Sep 24, 2022 @ 3:42pm 
Originally posted by Crashed:
Do you need to spread conspiracy theories? If Microsoft was issuing certificates for domains they don't own then that would be a massive scandal.
Thanks for proving yourself to be completely clueless on this topic.

ANY of those entries can sign off on certificates to be abused by others. And that's not all: they can also sign off to delegate responsibilities. You know? Allowing others to sign off for 'm.

I only focussed on Microsoft because of the long last expiration date and that is what makes your reaction hilarious and why I said the above things. Because that entry could never have done any of what you suggested. The certificate is invalid in the first place, there's no way around that.

If you knew what you were talking about you would have recognized the obvious.
Originally posted by ShelLuser:
Originally posted by Crashed:
Do you need to spread conspiracy theories? If Microsoft was issuing certificates for domains they don't own then that would be a massive scandal.
Thanks for proving yourself to be completely clueless on this topic.

ANY of those entries can sign off on certificates to be abused by others. And that's not all: they can also sign off to delegate responsibilities. You know? Allowing others to sign off for 'm.

I only focussed on Microsoft because of the long last expiration date and that is what makes your reaction hilarious and why I said the above things. Because that entry could never have done any of what you suggested. The certificate is invalid in the first place, there's no way around that.

If you knew what you were talking about you would have recognized the obvious.
Thats however not how HTTP code works in the remotest of forms, thats what you call Cookies, HTTP has no power over cookies, the fact you indeed dont know the difference between a privacy setting and a hyper link code line is indeed impressive.

If you knew what you were indeed talking about Shell you'd understand that you can literally open a notepad and type up a HTTP code, I did that in school for webpage design, guess whats funny? I didnt need cookies to do it.
Originally posted by J Ventura:
I see that when the Steam client is started on a computer, both the "steamservice.exe" and the client "steam.exe" are making insecure HTTP connections to remote sites on the internet.

I find this to be an unacceptable risk for my computer. I would expect Steam to convert these and all other connections made to use a secure protocol such as HTTPS very soon. The conversion is simple and low effort. It is very irresponsible of Steam to have not done this to date.
That sounds like your trying to access the standard Steam database so yes it will access the remote off-grid sites for that data, web framework is rather interesting in that some types of coding tokens are needed to access certain pages.

For example: If you get an error that says you have a ASP NET error, thats normal as microsoft has long updated to just .NET protocol instead, thats just what is known as a token-mismatch error, the tokens are the same, its just that the site protocol name is not.

If we took Steam which uses Doctype HTTP format, or known as Document type declaration, this means its using a more modern set of HTTP tokens and codes related to Markup language, meaning that if one was to accept to access the page where ones account is, they'd meet an instant Syntax error as they dont have Steams special HTTP Doctype access framework.

Its funny how these things work but basically your PC is not understanding the off-grid remote sites, simply as it does not have the language HTTP framework to do so, thats rather normal actually if anything.
Last edited by ❤ Sly Succubus ❤; Sep 24, 2022 @ 4:33pm
< >
Showing 1-15 of 37 comments
Per page: 1530 50

Date Posted: Sep 22, 2022 @ 7:50pm
Posts: 37