<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Security</title>
        <link>http://blogs.ugidotnet.org/rgm/category/Security.aspx</link>
        <description>Security</description>
        <language>it-IT</language>
        <copyright>Gian Maria  Ricci</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>Limitare le info che si danno all'utente in caso di errore</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2008/08/25/93811.aspx</link>
            <description>Ho trovato un link: http://www.stupidcubicle.com/ dovrebbe contenere materiale per geek :), il problema è che quando ci vado trovo questo        Ok, è vero che da queste informazioni non si ricava nulla, ma fare vedere gli spezzoni di codice a tutti è un bug di sicurezza. L'utente non sviluppatore dovrebbe vedere una semplice pagina di scuse tipo "Sorry, the application has encountered an error", loggare l'errore tipo con elmah, e non far vedere a nessuno il codice che c'è dietro. A livello di security dare un messaggio di errore cosi dettagliato è una cattiva pratica.  alk.&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/93811.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2008/08/25/93811.aspx</guid>
            <pubDate>Mon, 25 Aug 2008 15:57:55 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2008/08/25/93811.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/93811.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/93811.aspx</trackback:ping>
        </item>
        <item>
            <title>Mamma mia quanto odio queste cose</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2007/11/27/89969.aspx</link>
            <description>Debbo usare un programma che gestisce un hardware, il fornitore da un tool ma peccato che dica questo
We are happy to inform that ***** works normally under Windows Vista, however, the UAC (User Access Control) will need to be disabled. A new version will be released later on, which will work under Windows Vista with UAC enabled.
Perchè debbono essere felici??? Debbo disabilitare la UAC per poter lavorare con il loro prodotto??? Ma la sicurezza cosa è un opzione?? Sono felici di dirmi che ora posso lavorare con il loro prodotto al costo di un sistema più insicuro..mamma mia.....
Alk.&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/89969.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2007/11/27/89969.aspx</guid>
            <pubDate>Tue, 27 Nov 2007 13:48:07 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2007/11/27/89969.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/89969.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/89969.aspx</trackback:ping>
        </item>
        <item>
            <title>Login sicura</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2007/10/27/89238.aspx</link>
            <description>In un precedente post ho parlato di come cifrare una stringa in javascript con RSA ora è arrivato il momento di mostrare un utilizzo pratico di questa tecnica. Il controllo login standard di asp.net 2.0 è infatti poco sicuro perché spedisce la password dell'utente in chiaro e quindi dovrebbe essere sempre utilizzato in contesto https. Purtroppo per hosting a "poco prezzo" ma in generale se non si ha a disposizione https, sarebbe comunque doveroso non far girare per la rete le credenziali dell'utente in chiaro. Per fare questo si procede in questo modo, ecco come si presenta la pagina di login.
      &amp;lt;script language="javascript" src="RSA/BigInt.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;        &amp;lt;script language="javascript" src="RSA/Barrett.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;        &amp;lt;script language="javascript" src="RSA/RSA.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;        &amp;lt;script language="javascript" type="text/javascript"&amp;gt;            function EncryptPassword() {                           var EncExponent = document.getElementById("encryptionExponent").value;               var DecExponent = "";               var EncModulus= document.getElementById("modulus").value;               setMaxDigits(130);               key = new RSAKeyPair(EncExponent, DecExponent, EncModulus);                               document.getElementById("EncryptedPassword").value =                     encryptedString(key, document.getElementById("Login1$Password").value);                document.getElementById("Login1$Password").value = "*********";            }        &amp;lt;/script&amp;gt;...         &amp;lt;asp:Login ID="Login1" runat="server" OnAuthenticate="OnLoggingIn" OnLoggedIn="OnLoggedIn"&amp;gt;         &amp;lt;/asp:Login&amp;gt;         &amp;lt;asp:HiddenField ID="encryptionExponent" runat="server" /&amp;gt;         &amp;lt;asp:HiddenField ID="modulus" runat="server" /&amp;gt;         &amp;lt;asp:HiddenField ID="EncryptedPassword" runat="server" /&amp;gt;
			Come si può vedere si importano i file js che implementano l'algoritmo RSA, poi si crea una semplice funzione che genera una nuova chiave crittografica dalla chiave pubblica mantenuta negli hiddenfield encryptionExponent e modulus, con questa chiave pubblica si può cifrare il contenuto della textbox password, e sostituire al suo contenuto una bella serie di asterischi, la password cifrata viene invece messa in un hiddenfield chiamato EncryptedPassword. Il code behind è altrettanto semplice e può essere consultato nell'esempio accluso. Nell'evento load viene generato un nuovo RsaCryptoServiceProvider, esportata la sua parte pubblica, inserita negli appositi ridde field ed infine messo in sessione
if (!IsPostBack) {    RSACryptoServiceProvider provider = new RSACryptoServiceProvider();   RSAParameters publicKey = provider.ExportParameters(true);   encryptionExponent.Value = BitConverter.ToString(publicKey.Exponent).Replace("-", "");   modulus.Value = BitConverter.ToString(publicKey.Modulus).Replace("-", "");   Session["key"] = provider; }
L'altro evento degno di nota è invece l'OnLoggingIn del controllo login, dove bisogna fare la decrittazione della password e l'autenticazione.
public void OnLoggingIn(Object sender, AuthenticateEventArgs e) {   TextBox userTextBox = (TextBox) Login1.FindControl("UserName");   String password = DecryptPassword();   e.Authenticated = Membership.ValidateUser(userTextBox.Text, password);}
Come si può vedere non si fa altro che decrittare e delegare il tutto alla ValidateUser della membership, il gioco è cosi fatto.
Alk. (Scarica l'esempio)&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/89238.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2007/10/27/89238.aspx</guid>
            <pubDate>Sat, 27 Oct 2007 09:43:44 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2007/10/27/89238.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/89238.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/89238.aspx</trackback:ping>
        </item>
        <item>
            <title>Controllare prima di fare :D</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2007/10/24/89174.aspx</link>
            <description>Se vi interessa cifrare stringhe da Javascript in RSA da passare al codice lato server questo posto potrà esservi utile. &lt;A href="http://blogs.ugidotnet.org/rgm/archive/2007/10/24/89174.aspx"&gt;(Clicca per leggere)&lt;/A&gt;&lt;BR/&gt;&lt;BR/&gt;
Alk.&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/89174.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2007/10/24/89174.aspx</guid>
            <pubDate>Wed, 24 Oct 2007 09:13:10 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2007/10/24/89174.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/89174.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/89174.aspx</trackback:ping>
        </item>
        <item>
            <title>L’avvento</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2007/10/18/89025.aspx</link>
            <description>Il mondo è veramente cambiato, egli verrà su un debugger di fuoco e brucerà i bug con i suoi infiniti poteri, nessun buco di sicurezza potrà tollerare il suo sguardo. Egli ha creato il mondo dall'assembly e nel momento del giudizio i giusti cammineranno assieme a lui verso il Codice promesso.
Alk.&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/89025.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2007/10/18/89025.aspx</guid>
            <pubDate>Thu, 18 Oct 2007 08:53:15 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2007/10/18/89025.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/89025.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/89025.aspx</trackback:ping>
        </item>
        <item>
            <title>Validare gli input dell’utente seconda parte</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2007/10/10/88868.aspx</link>
            <description>Seconda parte del post su come validare gli input dell'utente. In questa parte si mostra come utilizzare Castle.Winsor per gestire il file di configurazione dove memorizzare le regole di validazione.

Alk.&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/88868.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2007/10/10/88868.aspx</guid>
            <pubDate>Wed, 10 Oct 2007 15:03:50 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2007/10/10/88868.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/88868.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/88868.aspx</trackback:ping>
        </item>
        <item>
            <title>Validare sempre gli input dell’utente</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2007/10/09/88830.aspx</link>
            <description>In questi giorni mi sto dilettando un po di sicurezza, ieri ho postato un tip su come cifrare la querystring, oggi volevo postare una semplice tecnica per fare validazione custom dei parametri in querystring e post. La tecnica non è nulla di eccezionale, ma può essere interessante.
(clicca per leggere)

Alk.&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/88830.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2007/10/09/88830.aspx</guid>
            <pubDate>Tue, 09 Oct 2007 09:55:44 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2007/10/09/88830.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/88830.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/88830.aspx</trackback:ping>
        </item>
    </channel>
</rss>