8 messaggi dal 30 gennaio 2012
Buongiorno a tutta la community.

Sto tentando di documentarmi su quanto in oggetto ma con scarsi risultati pratici.
Spiego meglio il mio problema...
Sto tentando, sulla base di un file WSDL e XSD (di validazione), di costruire un client che dovrebbe consumare un web services veicolando le informazioni crittografando il tutto con SSH.

Nello specifico il client che sto tentando di costruire dovrebbe aderire alle specifiche riportate nel link:
http://certificazionecrediti.mef.gov.it/CertificazioneCredito/homepage/guideWS.xhtml

Ora io ho già acquisito in un progetto Windows form quale test il files WSDL, il quale mi ha generato automaticamente tutte le classi per il mio client per poter consumare il webservices.

Ho capito che per veicolare il tutto in SSH si può utilizzare SSH.NET:
https://sshnet.codeplex.com/

Non ho capito se sia possibile mettere assieme le due cose.
Chiedo qui a voi se qualcuno ha mai sfruttato o implementato client con web services tramite SSH nei propri progetti e se sì in che modo??

Ricordo che parlando di web services il progetto client potrebbe essere di qualunque natura. (consolle, Windows Form, Sito Web, ecc...)

Ringrazio anticipatamente.
Modificato da bozu il 15 giugno 2016 04.33 -
Modificato da bozu il 15 giugno 2016 05.16 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, buongiorno anche a te!
non mi è chiaro come debba intervenire SSH in questa situazione. Spiegalo bene, perché SSH non è un algoritmo di crittografia ma è un protocollo per collegarsi in maniera sicura ad una macchina remota.

Normalmente, un client invia richieste al webservice all'indirizzo IP pubblico del server che lo ospita, usando il protocollo HTTP o HTTPS.

Tu però stai parlando di SSH: non sarà per caso che il webservice è raggiungibile via HTTP(S) solo se i pacchetti transitano attraverso un tunnel SSH stabilito con una macchina remota?

Se è questo il caso, puoi crearti un tunnel con SSH.NET in questo modo:
http://stackoverflow.com/questions/2835646/net-ssh-port-forwarding#answer-11057137
In pratica, tu rivolgi le richieste ad una porta TCP in ascolto su localhost (anziché direttamente all'host remoto) e i pacchetti usciranno dall'altro lato del tunnel e arriveranno al server che ospita il webservice.

ciao,
Moreno
Modificato da BrightSoul il 14 giugno 2016 13.36 -

Enjoy learning and just keep making
8 messaggi dal 30 gennaio 2012
Ho chiesto qui perché essendo un lavoro che non ho mai fatto volevo confrontarmi con qualcuno. Sto tentando di documentarmi infatti.

Mi pare interessante il link postato, provo ad implementarlo appena mi è possibile.

GRAZIE mille.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


provo ad implementarlo appena mi è possibile.

Però ancora non siamo sicuri che il problema da risolvere sia quello di cui ti ho parlato.

Dovresti farti spiegare dal tuo referente a che cosa serva stabilire il collegamento SSH in questo caso. Quando hai la certezza di aver compreso il problema, allora possiamo valutare la soluzione da attuare.

Io per il momento ho semplicemente tirato ad indovinare.

ciao,
Moreno
Modificato da BrightSoul il 14 giugno 2016 20.16 -

Enjoy learning and just keep making
8 messaggi dal 30 gennaio 2012
Ho verificato ed effettivamente il protocollo di trasmissione e' un HTTPS.
Mi e' stato detto che hanno dovuto fornire la chiave pubblica al MEF (Ministero dell'Economia e delle Finanze). Poi assieme ad un loro tecnico, oggi pomeriggio, abbiamo effettuato alcuni test di connettivita' attraverso SOAPUI.
Le due chiavi (pubblica e privata), come anche in Java (la SOGEI del ministero lavora così), sono state inserite in un KeyStore cifrato e protetto a sua volta da password.
Quindi penso che tale sistema con SSH sia soltanto per avere un canale di comunicazione sicuro su cui far girare le informazioni.
Quindi avendo i due files di cui sopra penso che con la documentazione che mi hai fornito dovrei essere (spero) in grado di effettuare alcuni test di connettività da Visual Studio, così come abbiamo fatto oggi da SOAPUI.
Speriamo bene ;) :D

In questo caso comunque mi è sembrato di capire che si', SSH fa da protocollo di comunicazione tra server, però non e' corretto dire che non implementa crittografia. La usa sicuramente, con chiave pubblica e privata, ossia in doppia chiave asimmetrica X.509 (se nn ricordo male lo standard).
Io fornisco a te la mia chiave pubblica, tu a me la tua. Ora, quando io spedisco a te cifro con la tua chiave pubblica, cosi' che tu potrai decifrare (e solo tu), attraverso la tua chiave privata il messaggio. Ovviamente vale anche il viceversa nel caso tu spedisci a me.

Quindi si', SSH e' un protocollo, ma al suo interno vi sono sicuramente dei sistemi crittografici X509 a doppia chiave asimmetrica, ed e' questa sua caratteristica a renderlo cosi' affidabile e sicuro.

Ora ho da capire come funzioni SSH con i Web Services.
Penso che il Web Services funziona con il proxy WSDL fornito, poi tutte le chiamate SOAP saranno veicolate da SSH via HTTP e quindi e' un vero HTTPS :D

Come lo implemento in VS?
Ho il file WSDL che posso sfruttare...
Ho la libreria TSSH quindi ho da studiare.... :D :D
Si accettano suggerimenti.
Modificato da bozu il 14 giugno 2016 23.28 -
Modificato da bozu il 14 giugno 2016 23.51 -
Modificato da bozu il 14 giugno 2016 23.53 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
ma ti hanno parlato loro per la prima volta di SSH?


non e' corretto dire che non implementa crittografia

Non vorrei essere stato frainteso. Volero dire che non è propriamente un algoritmo di crittografia. E' un protocollo che certamente usa un algoritmo di crittografia.


veicolate da SSH via HTTP e quindi e' un vero HTTPS :D

No, ascolta: se è vero che SSH è coinvolto non è sicuramente per via della crittografia che questo protocollo implementa.
Per rendere sicure le chiamate ad un webservice si usano uno od entrambi questi altri sistemi:
  • Sicurezza a livello di trasporto con HTTPS, grazie ad un certificato SSL esposto dal server;
  • Sicurezza a livello di messaggio con un certificato che il client usa per cifrare il contenuto e comunicare la propria identità al server.


Personalmente a me non è mai capitato di consumare un webservice attraverso SSH, è una questione "strana", per questo mi lascia dubbioso.

Non escludo però che qualche ente voglia evitare di esporre il webservice a tutta internet e voglia perciò renderlo raggiungibile soltanto a determinati utenti. In questo caso si può proteggere il webservice dietro un collegamento VPN o attraverso un tunnel SSH. E' fattibile ma a me non è mai capitato di vederlo realizzato.
Se è questo il caso (ma devi fartelo confermare - magari mandagli il link a questa discussione), allora il link che ti ho mandato può essere utile.
In quel caso non dovrai fare altro che effettuare richieste a localhost:tuaporta. Quando il tunnel è attivo, i pacchetti che mandi a localhost arriveranno al server remoto. Dal punto di vista del client non cambia nulla: inviare ad un server remoto o a localhost è uguale. Il tunnel gli è completamente trasparente.

Quando avete fatto le prove con SOAPUI, in che modo avete usato SSH?
Non è che per caso intendi SSL anziché SSH?

ciao,
Moreno
Modificato da BrightSoul il 15 giugno 2016 00.25 -

Enjoy learning and just keep making
8 messaggi dal 30 gennaio 2012
Si' confermo!
Ho confuso io SSH con SSL.
Infatti cio' e' sancito nelle specifiche tecniche postate nel mio primo post.

http://certificazionecrediti.mef.gov.it/CertificazioneCredito/documents/Specifica_interfaccia_WS_fatture.pdf

Pagina 9 paragrafo 2.2
In effetti il tecnico del MEF non ha mai parlato di SSH. Ha parlato solo delle chiavi di cifratura, del KeyStore e di come caricare quest'ultimo su SoapUI.

Quindi il mio post sarebbe comunque ora da rinominare in "Consumare un Web Services in HTTPS SSL" il che mi pare piu' corretto.

IIS usa di suo la versione 3 (anziche' la v.2).
Ora semmai, a me interesserebbe sapere, visto che un web services puo' essere consumato in un qualunque tipo di progetto, posso consumarlo in Windows Form o applicazione console sfruttando il protocollo SSL? Si'? Come? (cerco altra documentazione)

https://support.microsoft.com/it-it/kb/901183
Modificato da bozu il 15 giugno 2016 16.37 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
nel tempo abbiamo avuto altri utenti con problemi simili. C'è un thread qui che ti potrebbe dare informazioni utili.
http://forum.aspitalia.com/forum/post/404763/Problemi-Autenticazione-Web-Service-Dotnet-Utilizza-Protocollo-Https-Autenticazione.aspx?PageIndex=7

E qui un altro:
http://forum.aspitalia.com/forum/post/408193/CSharp-Aggiungere-Header-Certificato-Client-File-Wsdl.aspx?PageIndex=1

In caso prova a contattare privatamente gli utenti che hanno implementato la soluzione, così magari ti possono dare consigli precisi.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.