SSL/TLS v FTP klientovi

<<

gursky

Site Admin

Príspevky: 353

Registrovaný: Pon Nov 13, 2006 3:32 pm

Poslať Štv Mar 18, 2010 6:45 am

SSL/TLS v FTP klientovi

Na vytvorenie SSLsoketu potrebujete akceptovať certifikát servera. To by sa dalo buď tak, že by ste generovali nejakú hlášku používateľovi aby ju akceptoval, alebo inštalovali certifikát ručne.
Najjednoduchší spôsob (a pre potreby cvika dostačujúci) je vyrobiť si takú továreň na SSL Sokety, ktorá akceptuje každý certifikát. Váš klient tak nebude chránený proti Man-in-the-middle-útokom. Takže komu sa to nepáči nech to takto nerobí:
  Kód:
TrustManager[] trustAllCerts = new TrustManager[]{
      new X509TrustManager() {
         public java.security.cert.X509Certificate[] getAcceptedIssuers() {
            return null;
         }
         public void checkClientTrusted( java.security.cert.X509Certificate[] certs, String authType) {
         }
         public void checkServerTrusted( java.security.cert.X509Certificate[] certs, String authType) {
         }
      }};
   SSLContext sc = SSLContext.getInstance("TLS");
   sc.init(null, trustAllCerts, new java.security.SecureRandom());
   SSLSocketFactory faktory = sc.getSocketFactory();

Potom stačí vytvoriť SSLSocket jednou z dvoch možností. Prvá je, že chcete vyrobiť úplne nový socket:
  Kód:
SSLSocket novy = (SSLSocket) faktory.createSocket(ip, port);

Druhá možnosť je, že vytvoríte SSLSocket obalením nešifrovaného soketu:
  Kód:
SSLSocket obalka= (SSLSocket) faktory.createSocket(nešifrovanýSoket, host, port, true);


.. hádam to niekomu pomôže
"Microsoft is not the answer. Microsoft is the question. NO is the answer." - Erik Naggum
<<

caparzo

Príspevky: 13

Registrovaný: Pia Okt 16, 2009 8:41 pm

Bydlisko: Poliakovce

Poslať Štv Mar 18, 2010 10:14 pm

najprv OT:
take nieco
SSLSocket obalka= (SSLSocket) faktory.createSocket(nešifrovanýSoket, host, port, true);

som sa pytal na cviku, ci mozem pouzit.. a dostal som negativnu odpoved, co ma prinutilo hladat dalej.. tak dakujem za stratu bodov
k topicu:
pomoct to pomoze asi kazdemu.. dakujeme
The important thing is not to stop questioning
<<

bwpow

Príspevky: 634

Registrovaný: Str Nov 22, 2006 11:19 am

Bydlisko: Košice

Poslať Pia Mar 19, 2010 12:12 pm

caparzo píše:najprv OT:
take nieco
SSLSocket obalka= (SSLSocket) faktory.createSocket(nešifrovanýSoket, host, port, true);

som sa pytal na cviku, ci mozem pouzit.. a dostal som negativnu odpoved, co ma prinutilo hladat dalej.. tak dakujem za stratu bodov
k topicu:
pomoct to pomoze asi kazdemu.. dakujeme

Na cviku nikto body nestratil. Myslim, ze som povedal, ze kniznicu hotovu nemozno pouzit a taktiez som povedal, ze sa neda vyuzit SSLSocket vytvoreny cez konstruktor. O factory som si nebol isty, kedze Java nie je moja silna stranka, takze som myslim povedal, ze neviem.
Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
<<

bwpow

Príspevky: 634

Registrovaný: Str Nov 22, 2006 11:19 am

Bydlisko: Košice

Poslať Pia Mar 19, 2010 12:26 pm

Este aby som ujasnil mozno nezrovnalosti okolo bodovania:
Jeden bod je za ucast. Dalsie 2 body su za aktivnu pracu na cviceni, co neznamena, ze treba vzdy dokoncit ulohy, hlavne ak kvoli nim je potrebne prehladavat manualy alebo nakodit vela kodu. Tie body su naozaj za to, ze student pocas cvicenia pracuje smerom k rieseniu a nezabava sa na facebooku alebo len tak nesedi. Proste, to su body za snahu.
Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
<<

gursky

Site Admin

Príspevky: 353

Registrovaný: Pon Nov 13, 2006 3:32 pm

Poslať Pia Mar 19, 2010 2:15 pm

este jedna pomoc

Ak budete robit aktivny rezim cez TSL/SSL, tak vyrabate server ktory bude pocuvat na novom porte .. zatial nesifrovany
  Kód:
ServerSocket ssocket = new ServerSocket(novyPort);

Po prikazoch PORT a LIST/RETR sa chce FTP server napojit na vas port takze ho musite pocuvat (idealne v inom vlakne :) )
  Kód:
Socket dataSocket =  ssocket.accept();

potom uz mate soket ktory je este potrebne pomocou vyssie spominanej faktory obalit:
  Kód:
SSLSocket obalka= (SSLSocket) faktory.createSocket(dataSocket, host , dataSocket.getPort(), true);

nasledne by cez vstupny prud obalky mali zacat tiect data
"Microsoft is not the answer. Microsoft is the question. NO is the answer." - Erik Naggum

Späť na PSE1 - Počítačové siete

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software.
Slovenský preklad.