Sono un po 'confuso sull'utilizzo di OpenSSL nel mio servizio web Delphi in relazione alle crittografie disponibili per una connessione HTTPS.Utilizzo di OpenSSL nel webservice di Delphi - protocolli e cifrari disponibili
Setup:
- mio webservice gira su server di un cliente. OpenSSL è installato lì. Il webservice utilizza Indy (un TIdHTTPWebBrokerBridge) e le DLL OpenSSL (con TIdServerIOHandlerSSLOpenSSL) per caricare il certificato del client applicazioni
- nostro Android/iOS si collegano a questo webservice su HTTPS
- Il cliente ha configurato un dominio e IP che gli utenti di app può connettersi e raggiungere il mio webservice. Se testiamo quel dominio usando per es. the SSLLabs server test otteniamo una panoramica delle crittografie e dei protocolli supportati (SSLLabs simula anche l'handshake da dispositivi e browser e mostra quali cifrari sono stati negoziati).
Domanda: C'è qualcosa il mio webservice (in combinazione con OpenSSL) ha a che fare/può fare per influenzare le cifre disponibili per la stretta di mano tra il TLS app e webservice? C'è qualcosa di aggiuntivo che deve essere configurato con OpenSSL?
Ho pensato che la risposta fosse "no", cioè che è solo l'impostazione del server che (nella stretta di mano con l'app tramite Android/iOS) determina quale cifratura utilizzare da quelle disponibili del server. Questa è una supposizione corretta? O mi manca qualcosa?
(In realtà, non sono realmente interessato a limitare o espandere i codici disponibili, ma il client insiste che qualcosa "dovrebbe essere fatto" in/con il webservice/OpenSSL per farlo comunicare "in sicurezza" con le app Il test SSLLabs mostra che il loro dominio solo supporta TLS 1.0 e le crittografie con il meccanismo di scambio di chiavi RSA, quindi ad esempio nessun segreto di inoltro perfetto. A me sembra che qualcosa debba essere risolto in ogni caso.
Note:
This SO question suggerisce io possa avere a che fare qualcosa, ma non ha risposte.
Ho inviato an earlier somewhat related question, ma questo non ha risposte.
This SO post stati OpenSSL onori privilegiate cifra del cliente, non del server, durante l'handshake SSL, che ancora una volta indicano che ci sono cose che posso fare?
Avevo qualche dubbio se questa domanda è nella posizione corretta qui (anche perché Why we are not customer support), ma poiché questo potrebbe essere rilevante per più programmatori, ho deciso di inserirlo in SO.
Grazie per la risposta, Michael. Ora ho un posto dove iniziare. Potrei modificare la tua risposta più tardi con esempi di codice reali. –
Non ci sono cose come un 'TIdServerIOHandlerSSLOpenSSL.SSLOptions.DHParamsFile' nella mia versione attuale Delphi XE2 con Indy 10.5.8.0. Ho provato qualcosa come l'hack protetto in quel post Embarcadero per accedere al contesto, ma non ha nemmeno le proprietà dei parametri DH. –
Uso Delphi XE6 con Indy 10.6.0.5122. Puoi scaricare la versione più recente di Indy su www.indyproject.org e scoprire come si usa esattamente DHParamsFile. In realtà, il contenuto di questo file è caricato in memoria e viene inserito in Context (funzioni API OpenSSL: BIO_new_mem_buf, PEM_read_bio_DHparams, SSL_CTX_set_tmp_dh). –