Hot answers tagged

135

This is more of a problem than you think, particularly for a company like Google, because they're a frequent target for this type of shenanigans. But there are several layers of safeguards, and our protection is getting better over time. Your first line of defense is the Certificate Authority. They shouldn't let certificates be signed inappropriately. Each ...


100

A custom CA is required if you want to use https on your corporate intranet. 3rd party CAs can only give you certificates for public domains. They won't give you certificates for intranet.local or any other hostnames which are only routed in your own network. So when you want to have a certificate for your intranet or for the web interface of your own ...


66

It sounds like your issue is that this vulnerability is bigger than you know what to do with. The rules of responsible disclosure, as decribed here, say that you should contact the vendor and negotiate a period of time - between 1 week and 6 months, depending on the depth of the changes required - in which they can implement a patch, revoke and re-issue ...


64

This "Kaspersky Anti-Virus Personal Root Certificate" is the sign that your anti-virus is actively intercepting the connection, in effect running a Man-in-the-Middle attack. This can work because your anti-virus runs locally (on your computer) its own certification authority, and inserted the corresponding CA key in the "trusted store" used by your browsers ...


61

Yup. Yes. (If you consider "My company's admins can change my HTTP(s) traffic" compromise.) Except for some programs that pin their certificate use and fail if another certificate is used. That's pretty much the idea of SSL inspection: Open up SSL/TLS, do some anti-virus-scanning, close up SSL/TLS again. And in place of that "do some anti-virus-scanning" ...


45

You are right assuming the certificate is useless without the private key, so sending it in the mail is no big security risk and is common practice actually. The certificate is supposed to be public, connecting to your website would also provide me with your certificate, so no need to hack your email there. edit When starting the connection the server ...


38

You need to import the root certificate into the trust store for the browser. Once the browser knows you trust this root certificate, all certificates signed by this will show up as trusted. Note that this will only make the connection trusted for you, any others who don't have the root certificate installed will still receive an error.


34

Such a claim is generally quite serious. While reaching out to the vendor in question is a responsible matter, you should certainly consider notifying the relevant root store security teams, since they are responsible for designing, evaluating, and applying the security controls to prevent this, and will likely need to directly work with the CA to ascertain ...


34

The purpose of the warning is that by using HTTPS, there is an expectation of proper security, but a self-signed or expired certificate has vulnerabilities that the user needs to be aware of. The "risk" is that one thinks they are properly secured, but they are not fully secured, as opposed to HTTP, where one knows there is no encryption at all. There ...


30

Self-signed certificates are inherently not trusted by your browser because a certificate itself doesn't form any trust, the trust comes from being signed by a certificate that EVERYONE trusts. Your browser simply doesn't trust your self-signed certificate as if it were a root certificate. To make your browser accept your certificate, go into your browsers ...


29

Yes, what you are getting in the zip file is exactly what every visitor to your site would get every time they start a TLS session - the public keys with certifying information. The private key is the only thing that should be kept hidden from unauthorized access.


27

Installing a root certificate on users browsers, and conducting a MiTM attack on employees is unfortunately a standard practice at many companies. There's a few ways you can detect this. One way is looking for a root CA cert installed on your computer and see if you don't recognize one of the CAs. This of course requires an in-depth knowledge of what ...


25

What you are describing sounds a lot like how I share PGP keys with my friends. It works fine when we're all nerds and adding keys manually and are chatting on the phone while we do it, but this approach doesn't scale very well. CAs solve your second bullet in cases where you need to trust the connection the first time, in an automated way - which turns out ...


24

Congratulations! Sounds like a major find. First, generate some proof. The github.com SSL certificate sounds like a great start. Make sure you keep all the network traces you need to show exactly what happened. You need to determine if you broke any laws or T&Cs while doing this. If the CA does not have a bug bounty, you almost certainly did. In that ...


24

Security difference First, let's talk about SSL (now called TLS by the way), which adds the 'S' at the end of HTTPS and is in charge of "securing the communication". The clue to answer this question is indeed to fully understand what we mean by "securing the communication". SSL, no matter if it is a self-signed certificate which is being used or one signed ...


21

There is a standard for that, and, more generally, for all communications with a PKI. It is called CMP. Revocation requests are specified in section 5.3.9. Now, finding a PKI that actually implements CMP... this may be challenging.


19

You need to prove DNS ownership before someone will sign a certificate for a given domain name. Just creating a CSR with the domain of Google won't be enough. If a certificate authority actually provided you a valid Cert for a domain you did not prove ownership of, that CA would be distrusted by people immediately and their root certs would be removed ...


19

The CRL's and also the OCSP responses are signed by the CA. This means any kind of manipulation will already be detected even if the CRL or OCSP response is transferred using an insecure transport. Thus the protection against tampering which is offered by https is not needed.


18

When unsure, you can also contact CERT: https://forms.cert.org/VulReport/ They have experience in dealing with even very serious security vulnerabilities, and are generally considered a trusted party. At least they can confirm that your assessment of the vulnerability is correct, and document your part in finding it. While CERT generally advises you to ...


18

CA signed certs are not actually more secure than self-signed certs, in the sense that the level of encryption is the same. But there is a big difference in the level of trust between the two. Visitors to a site using a self-signed cert have to trust that the cert was generated by the site owner, simply because the site says it is. There is no easy way to ...


17

Certificates are a matter of trust. CA are supposed to be trustful globaly so we can rely on them even if we don't know each other. In cases where you are communicating with only people you know or .... yourself, like when you are responsible of a network of different machines, you can choose to rely on yourself more than to rely on a CA that in fact, you ...


16

A digital signature, like all cryptographic algorithm, does not solve problems, it just moves them around. Take care that signatures are NOT encryption. If someone tried to explain signatures as a kind of encryption, then go find them and hit them in the teeth with a wrench, repeatedly. Tell them that they are unworthy, and I am disappointed with them. This ...


14

Theoretically, X.509 chains are unlimited in length. The Basic Constraints extension can apply a per-chain limit; this is used mostly for CA that agree to issue a sub-CA certificate but want to constraint that sub-CA to issue only end-entity certificates. Implementations may have limitations. In fact, with some carefully crafted certificates, one can make a ...


13

All certificates are signed in whole (protected against changes), so you can't change the name, or any other data inside it. The certificate of the server you connect to is signed by the issuer certificate, which in turn may be signed by other certificates higher up, this is the certificate chain. The top, aka root is signed by itself. If you make any ...


13

There is no technical/specification limit imposed on the length of certificate chains. (However, there are X509v3 attributes which can impose policy-based limits on the length of a certificate chain for a CA; see the pathLenConstraint field of Basic Constraints, RFC 5280, Section 4.2.1.9.) With longer chains, verifying clients need to perform a little more ...


12

Simply put, the webmaster of the site uploads the certificate to CloudFlare. See this article for details. The Keyless mode doesn't have this requirement. It uses an on premise key server instead, to provide the private key of the server. See the diagram here for details on how this works. For free accounts Cloudflare state in their blog: For all ...


12

Does Google's decision mean that it would be prudent for me to also delete or disable the root CA from my machine? Dunno. Symantec ain't being too helpful. Theoretically it should not hurt but something seems to be broken in clients. Also: Vendors don't seem to agree on this. I've whipped up a quick script and parsed four trust stores (Apple, ...


11

Intentionally "spying" on yourself for debugging purposes, using proxy tools like Fiddler or Charles to capture https traffic. These tools are often used by mobile app developers, among others, to debug client-server communications. A root CA can be generated and installed on a mobile device, a computer set as that device's http proxy, and all web traffic, ...


11

It's not about the trust in the certificate itself, but about the process of verification. First: feasibility. If a certificate is renewed/compromised would you expect the for example a bank to launch worldwide ad campaign "we have just changed our certificate, please update your smartphones, browsers, etc."? It's impossible to achieve on a massive scale. ...


10

As pointed out in other answers, the reason why you see "Kaspersky Anti-Virus Personal Root Certificate" is because Kaspersky intercepts the connection, in order to scan for malware. Now, the reason why it isn't the case for Google websites in Chrome is not related to certificate pinning: Chrome does not perform pin validation when the certificate ...



Only top voted, non community-wiki answers of a minimum length are eligible