Tratto da Wikipedia , ecco il pretesto alla mia domanda:
A certificate authority (CA) is an organization that stores public keys and their owners and every party in a communication trusts this organization (and knows its public key). When the user's web browser receives the public key from www.bank.example it also receives a digital signature of the key (with some more information, in a so-called X.509 certificate). The browser already possesses the public key of the CA and consequently can verify the signature, trust the certificate and the public key in it: since www.bank.example uses a public key that the certification authority certifies, a fake www.bank.example can only use the same public key. Since the fake www.bank.example does not know the corresponding private key, it cannot create the signature needed to verify its authenticity.
Ho capito che le autorità di certificazione aiutano a contrastare gli attacchi man-in-the-middle, ma non capisco il motivo di spendere soldi per usare il certificato di un'autorità di certificazione se i browser eseguono semplicemente l'hardcode delle chiavi pubbliche della CA per convalidarlo al di fuori di HTTPS comunicazioni che sembrano essere in qualche modo dipendenti dal browser perché ... supponendo che io usi la crittografia RSA con il padding SHA1 e OAEP sul mio server, non è altrettanto sicuro se io :
- Genera una coppia di chiavi privata e pubblica secondaria
- Mantieni segreto la chiave secondaria, scrivila da qualche parte e bloccala all'interno di un deposito
- Firma sempre la chiave pubblica primaria del mio server con la chiave privata secondaria
- Hardcode la chiave pubblica secondaria nelle mie applicazioni client
- Utilizza la mia chiave pubblica secondaria per verificare se il server è il server che dicono di essere controllando che la chiave pubblica che mi hanno emesso sia firmata con la mia chiave privata secondaria?
Sto pensando di usare questo modello su un server socket TCP in cui posso specificare il mio protocollo ed essenzialmente essere il mio "browser" ...
Essenzialmente, è tutto questo dietro a una CA? E 'piuttosto triste ... sembra onestamente come una truffa in denaro quando puoi diventare la tua CA. Voglio dire, se la CA è compromessa, i browser devono essere riparati, le chiavi riemesse, ecc. Se la mia applicazione client viene compromessa, non devo aspettare che il buco sia chiuso, posso spingere rapidamente un nuovo pubblico / privato coppia di chiavi e invia la chiave pubblica della mia pseudo-CA alle applicazioni client.