L'autenticazione della password peggiora la messaggistica firmata se eseguita su SSL?

2

Lascia che ci sia un'API pubblica:

  • a base di HTTP
  • via SSL
  • non ci sono browser, solo connessioni tra programmi scritti personalizzati

Il primo schema di autenticazione che mi è venuto in mente è stato ... il client firma i propri messaggi con la chiave privata, il server conferma i messaggi tramite la chiave pubblica. Sembra buono.

Ma perché non usare semplicemente l'autenticazione di login / password in quel caso? So che non è un'idea geniale inviare informazioni segrete sui fili, ma è davvero brutto se tutto viene fatto tramite HTTPS sicuro comunque? Quali sono gli svantaggi di questo metodo?

    
posta Pavel Vlasov 20.02.2013 - 23:49
fonte

3 risposte

4

Fondamentalmente questo non è veramente male, dato che la comunicazione è crittografata. Non c'è più possibilità che la password venga rubata rispetto alla chiave privata.

Tuttavia, le password deboli possono essere "facilmente" indovinate con metodi come la forza bruta.

Quindi la sicurezza del tuo sistema dipenderà dal modo in cui i tuoi utenti conoscono la forza della password.

    
risposta data 21.02.2013 - 01:05
fonte
5

L'autenticazione basata su chiavi asimmetriche è già supportata da SSL sotto il nome "certificato client". In effetti, è coinvolta una firma. Se si desidera utilizzare una chiave asimmetrica del client, si consiglia di utilizzare questa funzione SSL che è già implementata dalle librerie SSL.

L'uso di una chiave asimmetrica per l'autenticazione è utile quando l'identità del client è asserita da una terza parte: un'entità, distinta dal server , rende l'identificazione iniziale (ovvero "certificazione" con certificati ), e il server si basa su questa identificazione. Questa è una separazione di ruoli che possono o non possono essere utili nel tuo contesto. Un altro modo di vederlo è il seguente: quando il client si connette al server, in uno scenario di login + password, il client invia la sua password al server. Pertanto il server impara la password. Una conseguenza è che il client non deve utilizzare la stessa password se si connette a diversi server che non si fidano l'uno dell'altro. Con un certificato client, il client può utilizzare lo stesso certificato con ogni server.

Se non hai bisogno delle funzionalità extra dei certificati, allora una login + password va bene. In realtà, se il client lavora in modo automatico senza una voce utente, la "password" viene memorizzata da qualche parte nel client, non digitata da un essere umano. Pertanto, tale password può essere un gruppo di byte casuali, che sarà molto più robusto rispetto alla ricerca esaustiva di una password memorizzata dall'uomo. In queste condizioni, potresti utilizzare SSL / TLS-PSK che si baserà su questa "chiave pre-condivisa" e evitare la necessità di qualsiasi certificato, né client o server.

Allo stesso modo, se la password è effettivamente digitata o ricordata da un essere umano, prendi in considerazione TLS-SRP che non richiede alcun client o certificato del server e, inoltre, tollera le password di entropia limitata.

    
risposta data 21.02.2013 - 12:43
fonte
1

Se sto interpretando correttamente la tua domanda, quello che stai chiedendo è essenzialmente "Perché non usare solo password invece di chiavi per SSH".

L'unica cosa che di solito è insicura sulle password sono i loro stupidi utenti umani. In genere la forza della password sarà molto più bassa (molto più bassa) rispetto a qualsiasi sistema basato su chiavi. Questo ti apre a più vettori di attacco come la forza bruta, che ovviamente può essere gestita tramite criteri di password corretti ecc.

Versione breve - Niente di sbagliato in modo errato, è solo meno sicuro e devi decidere se è accettabile per te o no.

    
risposta data 21.02.2013 - 01:01
fonte

Leggi altre domande sui tag