<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Desktop Applications</title><link>https://www.dotnetzone.gr:443/cs/forums/80/ShowForum.aspx</link><description>Θέματα για όσους φτιάχνουν τα πρώτα τους Desktop Applications σε .NET Framework</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: UserName Validation</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/27098.aspx</link><pubDate>Tue, 27 Mar 2007 02:45:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:27098</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/27098.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=27098</wfw:commentRss><description>&lt;P&gt;Θέτεις πολλά ερωτήματα σε ένα post οπότε ας τα δούμε από την αρχή...&lt;/P&gt;
&lt;P&gt;Ως προς το user validation, όπως είπαν και οι προηγούμενοι, μια καλή λύση - και απλούστερη σε σχέση με το encryption - είναι ο μηχανισμός του hashing αρκεί να μην έχεις ως απαίτηση την ανάκτηση του password καθώς δεν αποθηκεύεται πουθενά με την αρχική του μορφή.&lt;/P&gt;
&lt;P&gt;Ως προς το διάβασμα από τη βάση, ισχύει ο γενικός κανόνας ότι θα πρέπει να&amp;nbsp;κρατάς τα credentials όσο το δυνατόν λιγότερο στη μνήμη.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ως προς τη βάση και τα data, γενικά δεν κρυπτογραφούνται τα δεδομένα στο σύνολό τους γιατί κάτι τέτοιο, αν και εφικτό, έχει μεγάλο κόστος ως προς το performance. Θα πρέπει να ξεχωρίσεις τα πιο ευαίσθητα και να κρυπτογραφίσεις αυτά.&lt;/P&gt;
&lt;P&gt;Πάντως γενικότερα, η υπόθεση του security δεν λύνεται απλά με μερικές συνταγές και δεν είναι κάτι που αφορά μόνο την εφαρμογή σου και τη βάση. Είναι ένα θέμα που αφορά τη συνολική σχεδίαση του συστήματος και ξεκινάει από πολύ μικρές λεπτομέρειες (όπως πχ χρήση του SecureString αντί του String) και φτάνει μέχρι την φυσική πρόσβαση στο s/w και h/w. &lt;/P&gt;
&lt;P&gt;Αυτό που μπορείς να κάνεις για να αντιμετωπίσεις το πρόβλημα πιο ορθολογικά, είναι αρχικά&amp;nbsp;να αναλύσεις από ποιές απειλές θες να προστατέψεις το σύστημά σου. Από τον hacker; Τον κακόβουλο power user; Τον περίεργο adminitrator; Τι&amp;nbsp;"ζημιά"&amp;nbsp;μπορεί να σου κάνει ο καθένας από αυτούς; Συμφέρει να επενδύσεις χρόνο και κόπο για να προστατέψεις το σύστημά σου για τις απειλές που θα προσδιορίσεις; Ένα σύστημα ποτέ δεν μπορεί να είναι 100% secure, οπότε καλό είναι να αποφασίσεις μέχρι πιο βαθμό θα προσπαθήσεις να το προστατέψεις, να συμφιλιωθείς με το ενδεχόμενο να συμβεί η στραβή και να καταστρώσεις σχέδιο για την επόμενη μέρα...&lt;/P&gt;</description></item><item><title>Απ: UserName Validation</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/27083.aspx</link><pubDate>Mon, 26 Mar 2007 22:16:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:27083</guid><dc:creator>gspiros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/27083.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=27083</wfw:commentRss><description>Υπάρχουν 2 τρόποι κωδικοποίησης.&lt;br&gt;
1) το encrypt - decrypt, όπου ένα κείμενο το μετατρέπεις μέσω ενός
αλγορίθμου σε κινέζικα και ύστερα με τον "αντίστροφο" αλγόριθμο το
μετατρέπεις ξανά στο πρωτότυπο κείμενο.&lt;br&gt;
2) το hash αυτό που ουσιαστικά κάνει είναι να μετατρέπει το κείμενο σε
κινέζικα μέσα από μονόδρομο αλγόριθμο. Δεν μπορείς δηλαδή (θεωρητικά)
αν έχεις το hashed κείμενο να το μετατρέψεις στο αρχικό.&lt;br&gt;&lt;br&gt;
Όταν θέλεις να κάνεις logon και επιβεβαίωση κωδικού μέσω hash αυτό που
κάνει το πρόγραμμα είναι να χρησιμοποιεί τον ίδιο μονόδρομο αλγόριθμο
και ύστερα να ελέγχει τα δύο hashed κείμενα (το αποθηκευμένο στην βάση
και αυτό που δίνει ο χρήστης)&lt;br&gt;
Σκέψου το σαν μια συνάρτηση που δίνει το τετράγωνο του αριθμού:&lt;br&gt;
&lt;table style="border-collapse:collapse;width:111pt;" border="0" cellpadding="0" cellspacing="0" width="148"&gt;
&lt;/table&gt;
364755343^2 (=1,33046Ε+17)&lt;br&gt;&lt;br&gt;Το να υπολογίσεις το τετράγωνο είναι πολύ εύκολο. Μπορεί να σου πάρει μερικά λεπτά αν το κάνεις με το χέρι, αλλά αν προσπαθήσεις να υπολογίσεις την ρίζα του αποτελέσματος, πιθανότατα να χρειαστείς αρκετή ώρα.&lt;br&gt;Φαντάσου τώρα ότι έχεις ένα αριθμό με περισσότερα από 100ψηφία...&lt;br&gt;Οι hash αλγόριθμοι βέβαια είναι "περισσότερο" μονόδρομοι απ' ότι αυτός του υπολογισμού του τετραγώνου, αυτό ήταν απλά ένα παράδειγμα.&lt;br&gt;
 &lt;br&gt;Δεν νομίζω να έχεις πρόβλημα (ακόμα και αν κάνεις SELECT), αρκεί να μην σώζεις πουθενά τον κωδικό. Εγώ τουλάχιστον με SELECT δουλεύω...&lt;br&gt;Ελπίζω να βοήθησα.&lt;br&gt;</description></item><item><title>Απ: UserName Validation</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/26622.aspx</link><pubDate>Sun, 18 Mar 2007 22:29:19 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:26622</guid><dc:creator>mdtgr</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/26622.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=26622</wfw:commentRss><description>&lt;P&gt;Τα περιεχόμενα ενός Table όπου αποθηκεύονται UserNames &amp;amp; Passwords νομίζω ότι μόνο ένας administrator πρέπει να τα βλέπει αλλιώς ο καθένας μπορεί να βρει συνδυασμούς UserName &amp;amp; Passwords με ανεξέλεγκτα αποτελέσματα.&lt;/P&gt;
&lt;P&gt;Μήπως όμως θα μπορούσες να μου εξηγήσεις περισσότερο τι σημαίνει hash? Και ποιός είναι ο καλύτερος τρόπος να διαβάζω το συγκεκριμένο table&amp;nbsp;να συγκρίνω τα περιεχόμενα των UserNameTextBox &amp;amp; PasswordTextBox και&amp;nbsp;να επιτρέπω την πρόσβαση στην εφαρμογή μόνο στο σωστό συνδυασμό UserName &amp;amp; Password&lt;/P&gt;</description></item><item><title>Απ: UserName Validation</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/26620.aspx</link><pubDate>Sun, 18 Mar 2007 21:02:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:26620</guid><dc:creator>Panagiotis Kefalidis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/26620.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=26620</wfw:commentRss><description>&lt;P&gt;Υπάρχει κάποιος συγκεκριμένος λόγος για τον οποίο δεν θα ήθελες να βλέπουν τα δεδομένα της βάσης?Μην ξεχνάς ότι τα δεδομένα είναι του χρήστη κι όχι δικά σου, οπότε δεν μπορείς να τον περιορίσεις να κάνει οτιδήποτε θέλει μ'αυτά, ακόμα και να τα μεταφέρει μελλοντικά σε ανταγωνιστική εφαρμογή.&lt;/P&gt;
&lt;P&gt;Εάν θέλεις μπορείς να κρυπτογραφήσεις τα δεδομένα των password.Μπορείς να τα κάνεις hash και κάθε φορά που ο χρήστης δίνει ενα password να συγκρίνεις τα 2 hashes ώστε να δεις εάν το password ήταν σωστό. Έτσι προστατεύεις και το password όπου και να το δει κάποιος, δεν μπορεί να καταλάβει τι γίνεται, γιατί είναι hashed.&lt;/P&gt;</description></item><item><title>UserName Validation</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/26619.aspx</link><pubDate>Sun, 18 Mar 2007 20:43:42 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:26619</guid><dc:creator>mdtgr</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/26619.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=26619</wfw:commentRss><description>&lt;P&gt;Φτιάχνω μια εφαρμογή και ξεκινάει με LoginForm. Ποιός είναι κατά τη γνώμη σας ο καλύτερος τρόπος για User Validation; Πως είναι καλύτερα να διαβάσω τον πίνακα στην βάση, με Select, με Reader ή κάτι άλλο; Πως μπορώ να αποφύγω να ανοίξει κάποιος τη βάση και τον πίνακα και να δει τα data (encryption???). Υπάρχουν διαθέσιμα links;&lt;/P&gt;</description></item></channel></rss>