public key infrastructure – How is the digital certificate sent alongside digital signatures?

Most tutorials on the net only mention sending the digital signature attached to the document, but without the digital signature certificate, it’ll be impossible for receivers to verify the signature. I’m assuming that the digital certificate is somehow sent alongside the signature but I can’t seem to find any source mentioning that.

public key infrastructure – Why is it said that we can obtain a digital signature from a CA when all we obtain from the CA is a certificate?

Several sites, like this states that

You can obtain a digital signature from a reputable certificate
authority such as Sectigo

But digital signature is something you create using a piece of text and your private key using a signing algorithm. How can I obtain a digital signature from a CA? Shouldn’t I just be receiving the digital signing certificate from the CA and creating the digital signature by myself?

tls – Why is my RADIUS Certificate not automatically signed with the root CA Certificate on my iPhone

Please bear in mind that whatever you are trying to use is dependent of mutual support on the server/authenticator and client sides. This is not always trivial to achieve.

Why do I need to trust the server’s certificate if I have the root CA’s certificate installed?

This behaviour is entirely dependent on the client’s implementation (the supplicant). Yes having the server cert signed by the CA should be seen as a significant proof of trust, provided it’s not expired or revoked (if the client checks).

On a windows workstation for example you can either trust CAs specifically or let the user review and accept the server side certificate at the first connection. But if the server side cert is signed by one of the selected CAs, the user doesn’t get a dialog about the cert.

AFAIK the whole point of certificate-based authentication is to prevent MiTM attacks that other methods are vulnerable against.

Conceptually it is instead about mutual authentication, and providing solid proof to the client that the server is being spoofed. It is up to the client to decide what to do with that information. Hopefully and usually it drops the connection. If not, it’s as much at risk of MiTM as if it didn’t use cert based authentication.

There is a username option when selecting the network on the iPhone, which does get matched against a backend SQL database by the freeradius server regardless of that username existing the server accepts the authentication. This page notes that the username is used in inner and outer authentication but to me, that doesn’t seem to make sense as there is no inner and outer identity in EAP-TLS.

Conceptually you could have another EAP authentication dialog within the EAP-TLS channel once that is established. For example EAP-TTLS is often used to protect less secure authentication protocols like PAP. So this is left as an option for the server and client implementations to negotiate through the existing supported protocols and/or custom implementations.
This could also be used for a kind of multi factor authentication whereby a station and a user authenticate separately so that the admin can revoke access to the device or the user independently.

wi fi – How use certificate to connect to Wi-Fi

Background
I have Samsung Galaxy S20 with Android Version 10 installed. I have company provided Cisco Access Point at home. The access point is connected to my home wi-fi router.
In phone’s wi-fi settings i see two networks:
1>MyHome ( My home router wi-fi network)
2>MyCompany (Access point)

Initially when i setup this phone, i installed microsoft intune app and connected to my company’s portal. After connecting to company’s portal, system automatically downloaded certificates and connected to MyCompany Access Point successfully.

Issue
I accidentally click on Forget Network for MyCompany, and now i don’t know how to connect back to MyCompany network.
Under settings -> Biometrics and security -> Other Security Settings ->User Certificates i see the ceritificate(s) are there, but i don’t know how to use this to connect to MyCompany n/w

Smooth root certificate rotation – Information Security Stack Exchange

I am surprised that I couldn’t find one concrete example of how to do root certificate rotation. For example:

  • Root CA has 2 years validity period
  • Intermediate CA has 9 months validity period
  • leaf certificate has a 3 months validity period

The renwal/replace time are:

  • Root CA is going to be replaced every 1 year
  • Intermediate CA is going to be replaced every 6 months
  • leaf certificate is going to be renewed every 2 months

This gives

  • 1 month buffer for service to renew its certificate before the certificate expires.
  • 3 months buffer for intermediate CA to sign new service certificate. By the time the old intermediate CA expire, all the old issued certificates are expired as well.
  • 1 year buffer to distribute the new root certificates to client. We want to give enough time for clients to pull the new root certificate before the old one expires.

Questions:

  • We have root 1 and root 2 overlapped for 1 year, when should we start signing new CSR using root 2 certificate?

If the one year overlapped time is just for cert distribution, by the time root 1 expired, all clients should already have root 2 trusted. However, by the time root 1 expires, we haven’t signed any new server certificates with root 2. It means when the time root 1 expires, all the services will be down. I guess we will need to ensure all services are using cert from root 2 before we can retire root 1? and we also have to ensure all clients have root 2 key before issuing server certificates using root 2? I think that makes sense but in terms of timeline, how should we managed that? In the 1 year overlapped time, maybe we can do 6 months distribution time, and 6 months signing time. so by the time root 1 retire, everything will be running on root 2 already?

And if we are using private CA, (lets say AWS private CA) , do we need to implement a service to ensure things above will happen?

Given that we own all the clients and servers.

2013 – Provided certificate is not valid for encryption/decryption

I am getting this Cert error in code, i installed the SSL Cert in IIS and MMC
Provided certificate is not valid for encryption/decryption. There may be insufficient permissions to its private key in the windows certificate store or the certificate itself may not have the correct purposes. If you only want to use it for signing, set the Use property to Signing (CertificateUse.Signing). at xxx.Internet.FBA.CONTROLTEMPLATES.xxx.FBA.IAMRegisteration.Page_Load(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at SIMAH.Common.BaseClass.Base.OnLoad(EventArgs e)

Restrict CA to issue certficates for one domain or to be able to sign just one server certificate

I have a server and I want my iPhone to connect to it securely. However, I cannot just install the self-signed server certificate on my iPhone. When I install the profile (that’s what they call the certificate), it says “Not verified”.

Normally, you would go to CA Trust settings and enable full trust for the certificate. BUT I deliberately made the certificate with critical,CA:false constraint. That’s the reason it does not show in the CA Trust settings.

Why did I do it — I just need to install the single certificate and I don’t want to totally compromise my iPhone security, if my CA credentials got stolen.

Do this have a solution? iOS probably requires a CA to trust a certificate, but I don’t want a possibility to create certificates at all (beside the one), or at least for another domains.


One potential “solution” might be to create the CA, sign the server certificate and then delete the CA key, as it would not be needed and would live for a shorter time (lower chance to get stolen).

However, people except me wouldn’t be stoked to install it. (I don’t want to buy a certificate as its a home project and I don’t even have a domain name, just the IP address.)

The certificate complies with apple’s current requirements for server certificates. (https://support.apple.com/en-us/HT210176)

curl and wget fail to verify wildcard Let’s Encrypt certificate, but browsers work fine

We’ve obtained a wildcard certificate from Let’s Encrypt for civility.social and *.civility.social, using certbot. This works fine on all browsers and with curl and wget when verifying https://civility.social, or https://graphql.civility.social. The A records for those (sub)domains point to the same server, from which the certbot challenge was completed.

Later we’ve added a subdomain hosted on a different server, meet.. To use the same certificate on a different server, we copied the files making up the wildcard certificate from the original server to meet.. Both servers use NGINX. The problem is that wget and curl fail to fetch anything from meet.civility.social, even though browsers don’t complain. wget fails even with --no-check-certificate.

$ $ wget -v --debug --no-check-certificate https://meet.civility.social
Setting --check-certificate (checkcertificate) to 0
Setting --check-certificate (checkcertificate) to 0
DEBUG output created by Wget 1.20.3 on linux-gnu.

Reading HSTS entries from ~/.wget-hsts
URI encoding = ‘UTF-8’
Converted file name 'index.html' (UTF-8) -> 'index.html' (UTF-8)
--2020-06-26 21:39:15--  https://meet.civility.social/
Resolving meet.civility.social (meet.civility.social)... 157.245.170.94
Caching meet.civility.social => 157.245.170.94
Connecting to meet.civility.social (meet.civility.social)|157.245.170.94|:443... connected.
Created socket 3.
Releasing 0x000055ae59be63e0 (new refcount 1).
Initiating SSL handshake.
SSL handshake failed.
Closed fd 3
Unable to establish SSL connection.


$ curl https://meet.civility.social/
curl: (60) SSL certificate problem: unable to get local issuer certificate

What might be going on here?

Independent C library or function (on Linux) to programmatically generate a self-signed certificate

Is there a simple C library or function to programmatically generate a self-signed Certificate in C on Ubuntu?

One that isn’t OpenSSL on a base Ubuntu system? No.

I am looking for a native small stand-alone library just for this purpose with possibly added functionality but not with the full-weight of TLS implementations such as openssl, boringssl, mbedTls, etc.

It may be possible to isolate some of the code and make it into a standalone method somehow, but I’d discourage this route. It’s unlikely that such a tool or library exists for this task on its own.

Use a known, maintained TLS library for this. Even if it will ever only be generating self-signed certs.