Entrambi possono essere sicuri, quindi i potenziali attacchi non sono la cosa principale qui.
Le differenze sono nell'identità e nella gestione delle chiavi.
Con PSK (chiave pre-condivisa) ottieni solo l'ID della chiave per il client, non un certificato con attributi X.500 come il nome comune. Quindi per identificare l'identità è necessario collegare le informazioni già note all'ID della chiave.
Con PSK condividi una chiave segreta tra client e server. Ma se ci sono più client o più server, è necessario condividere le chiavi tra molte entità. Con i certificati, ovvero l'infrastruttura a chiave pubblica (PKI o PKIX) creata utilizzando i certificati, è sufficiente disporre di una chiave segreta (o piuttosto privata) per entità. La chiave pubblica può essere considerata affidabile se fa parte di un certificato in una catena di certificati, quindi non è necessario distribuire le chiavi pubbliche.
Come hai già indicato ci sono molte altre opzioni di gestione delle chiavi per i certificati.
Uno svantaggio dell'uso di certificati è che il certificato del server di solito è necessario per includere il nome del server e la connessione potrebbe non essere stabilita su host con nomi diversi.
Per business to business farei sicuramente l'autenticazione client / server usando i certificati. Questa è l'opzione più comune e più flessibile. Assicurati di avere solo quei certificati richiesti (e non tutti i certificati considerati attendibili da un archivio sicuro predefinito).