serpico75 Δημοσιεύτηκε Φεβρουάριος 26 #1 Κοινοποίηση Δημοσιεύτηκε Φεβρουάριος 26 (edited) Στο video εδώ , για cyber security, ο David Malan, στο 22:00 περίπου, εξηγεί τη μέθοδο salting. Μεταξύ άλλων, όπως φαίνεται καί στην εικόνα, τα δύο outputs έχουν για αρχή τα salting values. Γιατί πρέπει να έχει το hashing output καί το salting value; Εφοσον, βάζοντας σε δύο ίδια passwords διαφορετικά salting values, ο αλγόριθμος hashing θα έχει ως outputs διαφορετικές τιμές, δεν είναι περιττό να συμπεριληφθεί καί τό salting value σε κάθε output;;; Δεν το καταλαβαίνω. Τελικά πρέπει ή δεν πρέπει (περιττό) να συμπεριληφθεί στο output το salting value; Έγινε επεξεργασία Φεβρουάριος 26 από serpico75 Link to comment Share on other sites More sharing options...
navaho7 Φεβρουάριος 28 #2 Κοινοποίηση Φεβρουάριος 28 όταν πας να κάνεις authentication, πως θα πάρεις το salt για να υπολογίσεις το hash του input; Θα το έχεις ως έξτρα πεδίο στη βάση; Θα μπορούσες, αλλά έτσι χάνει το νόημά του Link to comment Share on other sites More sharing options...
serpico75 Φεβρουάριος 28 Author #3 Κοινοποίηση Φεβρουάριος 28 (edited) Το κάνω παράδειγμα, επειδή και πάλι δεν κατάλαβα. Πάμε... Πριν το hashing: Χρηστης1 username : john password : test Χρηστης2 username : lisa password : test Με το hash algorithm + salt: Ας πούμε ότι: salting χρήστη 1 : 45 salting χρήστη 1 : 46 Οπως το περιγράφει ο καθηγητής στο video, λέει πως τα δύο outputs μετά το hashing+salting , πρέπει ως αρχή να έχουν καί τό salting value. Το password test που έχουν επιλέξει καί οι δύο χρήστες, δεν θα είναι το ίδιο όταν γίνει το hash+salt (έτσι όπως το καταλαβαίνω εγώ, τουλάχιστον). Δηλαδή, άλλη τιμη-output θα δώσει για το test το hashing+45 , και άλλη τιμή για το hashing+46 Ας πούμε για παράδειγμα για το test: hashing function + 45 = 88## hashing function+ 46 = 77@@ Αρα, σαν καταχώρηση στη βάση authentication, για τον χρήστη john είναι αρκετό το 88## , και για τον χρήστη lisa αρκεί το 77@@. Στο video λέει πως πρέπει να καταχωρηθεί στη βάση: 4588## (για john) 4677@@ (για lisa) Αυτό που λες στην απάντησή σου, είναι το ίδιο με αυτό του καθηγητή στο video; Δεν καταλαβαίνω πως το λέτε. Σύμφωνα με το παράδειγμα και τις τιμές που δίνω, μπορείς να μου πεις τι δεν έχω βρει; Έγινε επεξεργασία Φεβρουάριος 28 από serpico75 Link to comment Share on other sites More sharing options...
navaho7 Φεβρουάριος 28 #4 Κοινοποίηση Φεβρουάριος 28 Έστω ότι είσαι ο john Έκανες το λογαριασμό σου, με username john, και password test Στη βάση θα έχει |Username|Password| | john | 88## | Το 88## έχει δημιουργηθεί από μία function που έχει ως ορίσματα τα ("test", "45") Πας να ξανασυνδεθείς. Πως θα γίνει η αυθεντικοποίηση; θα δώσεις το "test" εσύ, μια χαρά. Το salt που θα το βρει το σύστημα για να κάνει σωστό hashing? Επομένως -και με διορθώνω εδώ μιας και με "έβαλες" να διαβάσω τα κατάστιχά μου- έχεις δύο επιλογές: α. Το περνάς ως έξτρα πεδίο στη βάση β. Το κάνεις concatenate στο hash σου. Εφόσον είναι μοναδικό το salt (προφανώς δεν είναι δύο χαρακτήρες μόνο), δε σε νοιάζει αν ο άλλος το βλέπει. Γιατί απλούστατα για 1000 χρήστες που θα έχουν 1000 διαφορετικά salts, θα έπρεπε να δημιουργηθούν 1000 διαφορετικά rainbow tables. Και ήδη το 1 είναι pita TL;DR: Το κάνουμε για εύκολο retrieval του salt του κάθε χρήστη Link to comment Share on other sites More sharing options...
serpico75 Φεβρουάριος 28 Author #5 Κοινοποίηση Φεβρουάριος 28 (edited) Με έπιασες πάνω στη στιγμή που πληκτρολογουσα, για να σου πω αυτό ακριβώς που αναλύεις. Διαβάζοντας καλύτερα την πρώτη σου απάντηση, και βλέποντας καλύτερα το βίντεο. Δύο τρόποι για να έχεις παρέα το salting value, που είναι απαραίτητο για τις συγκρίσεις: α. Το βάζεις μαζί με το hashing output (στο βίντεο και το παράδειγμά μου, το έχουμε στην αρχή - θα μπορούσε ο αλγόριθμος να το έχει προσθήκη στο τέλος, και να το πάρει για σύγκριση ο server απ'το τέλος) β. το έχεις το salting value ως extra πεδίο στην βάση Κατανοητά τα α. και β. Απλά, στην πρώτη σου απάντηση δεν κατάλαβα αυτό που λες ότι, σε περίπτωση που το έχουμε σαν extra πεδίο, ότι χάνει το νοήμά του. Το μόνο που μπορώ να σκεφτώ έτσι όπως το λες είναι ότι, εάν ο hacker βρει/πάρει τη βάση, του δίνεις έτοιμο φαγακι το salting value για να κάνει salting method. Είναι αυτό? ΥΓ Στάσου γιατί βάζοντας καί τό table μέσα, πάμε λίγο παραπάνω, που είχα δει βίντεο πριν λίγο καιρό, και για να συνθέσω το παζλ βάζοντας καί τον πίνακα για να έχω ολοκληρη/πλήρη και σωστή απάντηση, θέλω λίγο χρόνο. Πάντως νομίζω πως κατάλαβα πανω-κατω πως παίζει. Έγινε επεξεργασία Φεβρουάριος 28 από serpico75 Link to comment Share on other sites More sharing options...
navaho7 Φεβρουάριος 28 #6 Κοινοποίηση Φεβρουάριος 28 11 λεπτά πριν, το μέλος serpico75 έγραψε: Απλά, στην πρώτη σου απάντηση δεν κατάλαβα αυτό που λες ότι, σε περίπτωση που το έχουμε σαν extra πεδίο, ότι χάνει το νοήμά του. Το μόνο που μπορώ να σκεφτώ έτσι όπως το λες είναι ότι, εάν ο hacker βρει/πάρει τη βάση, του δίνεις έτοιμο φαγακι το salting value για να κάνει salting method. Είναι αυτό? ήταν λάθος αυτό που σου απάντησα εκεί και προσπάθησα να το αναφέρω και να εξηγήσω ποιο είναι το σωστό, στη δεύτερη απάντηση. Εν ολίγοις, είτε αποθηκεύεις το salt σε ξεχωριστό πεδίο στη βάση σου, είτε το κάνεις concatenate στο hash που έφτιαξες. Δε σε νοιάζει αν το ξέρει ο άλλος γιατί είναι μοναδικό, οπότε δεν τον διευκολύνει σε κάτι 2 Link to comment Share on other sites More sharing options...
serpico75 Φεβρουάριος 28 Author #7 Κοινοποίηση Φεβρουάριος 28 Κατανοητό. Σε ευχαριστώ για τις απαντήσεις & τον χρόνο σου. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now