Archive for August, 2006

Wireless PC Security

Posted on the August 24th, 2006 under Development Life by Marco Trova

In una società di consulenza dove ho lavorato, c’era l’usanza, piuttosto goliardica, di approfittare della temporanea assenza del collega consulente dal suo pc per spedire alle liste di distribuzione pubbliche dell’azienda confessioni personali, outing inattesi, ecc. del tutto falsi. :-)

Al primo giorno di lavoro sono stato subito informato dell’usanza, ci sono comunque caduto anch’io ma mi son chiesto che strano comportamento.. quasi da caserma..

Poi, dopo un po’ ho capito che era un sistema per garantire una policy di sicurezza che prevedeva di “locckare” il pc appena lo si lasciava sguarnito.

In quella società di consulenza non ci lavoro più (ho perso il privilegio di avere addirittura 1000 colleghi, meeting al Forum di Assago, ecc. ) ma l’usanza di locckare il pc non l’ho persa.

Quando ho visto lo scorso anno ho visto l’articolo di coding4fun di Scott Hanselman and Bryan Batchelder ho avuto il classico prurito da gadget :-) Che bell’oggettino l’”USB Wireless PC Lock”.

Appena ne ho l’occasione me lo compro, mi son detto: purtroppo presso il classico Mediaworld costava troppo. Visti i prezzi pagati dai colleghi USA non era il caso.

Quando l’ho visto su ebay ed il prezzo era giusto (sui 20€) ho preso l’occasione al volo.

In effetti, come descritto nell’articolo, il software fornito non è adeguato e scarsamente usabile: basti pensache che non è possibile utilizzare un utente e password della macchina o di dominio. E’ consigliabile utilizzare o estendere il software sviluppato dagli autori: USBWiSec. Scott ha allora cercato e trovato la classe di Jan Axelson per l’utilizzo della “USB Human Interface Device”, in .NET.

Attorno al software sono nati un progetto su Sourceforge dedicato sostanzialmente allo sviluppo di plungins (son già 9), che vanno dalla disabilitazione della combinazione ctrl-alt-del allo zittimento dell’audio del pc, al controllo del Messenger o Skype (Away mode).

E’ nata anche la community WirelessDefender.net con code samples e l’immancabile animatissimo Forum.

Adesso non debbo più fare ctrl-alt-canc e rimettere la password quando mi avvicino al mio pc locckato. La qualità della mia vita è aumentata! :-D

Ci rinuncio: è impostare il Timeout nelle con tcpClient e la Socket class

Posted on the August 22nd, 2006 under Development Life by Marco Trova

Sembra facile realizzare un semplice client tcp/ip: se ci si limita all’apertura di una connessione e la gestione delle eccezioni lo è certamente. Altra complessità è implementare un protocollo.

Volevo realizzare un semplice port scanner, cioè aprire una porta TCP/IP per verificarne la raggiungibilità.

Il problema è che non è possibile impostare il timeout. Ecco il codice di una semplice Console Application.

using System; using System.Net; using System.Net.Sockets; using System.Threading; namespace tcpopenport { internal class Program { private static void Main(string[] args) { string _host = "85.18.94.43"; int _port = 9000; int _timeout = 0; IPEndPoint iep = new IPEndPoint(IPAddress.Parse(_host), _port); TcpClient tcpclient = new TcpClient(); tcpclient.ExclusiveAddressUse = true; tcpclient.SendTimeout = _timeout; tcpclient.ReceiveTimeout = _timeout; try { tcpclient.Connect(_host, _port); Console.WriteLine("Connesso!"); } catch (Exception ex) { Console.WriteLine("Errore: " + ex.Message); } Console.ReadLine(); } } }

Nella documentazione è riportato che il valore da impostare è in millisecondi, ma deve esserci qualche errore negli esempi, visto che sembra che sia impostato in secondi: http://msdn2.microsoft.com/en-us/library/system.ne…

Feedback?