Τι είναι ένας τυχαίος αριθμός ευπάθεια;

Οι υπολογιστές είναι ντετερμινιστικά και επομένως είναι προβλέψιμες. Οι υπολογιστές δεν μπορούν, εντός και των εαυτό τους, δημιουργούν πραγματικά τυχαίων αριθμών.

Κατά την απουσία του από εξωτερικούς παράγοντες, οι υπολογιστές μπορούν να δημιουργηθούν μόνο ψευδο-τυχαία αριθμοί.

Ένα τυχαίο αριθμό ευπάθεια προκύπτει όταν ένα πρόγραμμα που χρησιμοποιεί μια μέθοδος δημιουργίας τυχαίων αριθμών που είναι είτε:

  1. Δεν τυχαία
  2. Προβλεπόμενη

Για να δημιουργήσει καλές τυχαίων αριθμών, ο υπολογιστής πρέπει να έχει δύο πράγματα:

  1. Ένα καλό τυχαίο αριθμό γενιάς αλγόριθμο
  2. Τυχαίο unpredicatable και σπόρων προς σπορά για τον τυχαίο αριθμό γενιάς αλγόριθμο

Τυχαίων Αριθμών Vulnerability Παραδείγματα

Ας εξετάσουμε το ακόλουθο απόσπασμα κώδικα:

  x = rand ()? 

Ο κωδικός που δημιουργείται κακή τυχαίων αριθμών διότι όταν καλείτε rand () ενώπιον σπόρων έχει συσταθεί με srand (), που χρησιμοποιεί την τιμή 1 ως προεπιλογή σπόρων. Κανείς άλλος με το ίδιο μηχάνημα με τον ίδιο compiler που ζητεί RAND (), με σπόρους από 1 θα έχουν την ίδια τυχαία σειρά, όπως μόλις έκανε.

Ας δούμε ένα άλλο απόσπασμα κώδικα:

  srand (ώρα (0))? 
  x = rand ()? 

Ο κώδικας αυτός κάνει έκκληση srand () με την τρέχουσα ώρα ως σπόρων. Ωστόσο, αυτού του κώδικα εξακολουθεί να είναι επισφαλής, διότι:

  1. Η ώρα του συστήματος είναι ένα πολύ κακό σπόρων, επειδή είναι προβλέψιμο σε ένα μικρό φάσμα.
  2. Το ANSI C rand () λειτουργία η ίδια δεν δημιουργεί καλές τυχαίων αριθμών.

Ας εξετάσουμε ένα τρίτο απόσπασμα κώδικα:

  srandom (ώρα (0))? 
  x = τυχαία ()? 

Ο κώδικας αυτός χρησιμοποιεί το BSD τυχαία () και srandom () συναρτήσεις, οι οποίες δημιουργούν πολύ καλύτερα τυχαίων αριθμών από τους προκατόχους του ANSI C. Ωστόσο, αυτός ο κώδικας χρησιμοποιεί ακόμη φορά () για την παραγωγή σπόρων προς σπορά αριθμό. Μια πολύ καλύτερη πηγή για τυχαίων αριθμών για BSD και Linux συστήματα είναι το / dev / τυχαία συσκευή.

Αριθμός σπόρων προς σπορά και Τυχαίων Αριθμών Αδυναμίες

Καλή σπόρων αριθμοί προέρχονται από απρόβλεπτα γεγονότα όπως χρήστη κινήσεις του ποντικιού ή πληκτρολόγηση. Αυτά δεν είναι τέλεια πηγές Τυχαία, όμως. Ανθρώπινη συμπεριφορά είναι κάπως προβλέψιμο και το υλικό του υπολογιστή μπορεί buffer διακόπτει πληκτρολόγιο και το ποντίκι, μειώνοντας τους Τυχαία.

Πολυάριθμες άλλες τυχαίο αριθμό γεννήτριες είναι διαθέσιμα για διάφορες πλατφόρμες και περιβάλλοντα ανάπτυξης. Είναι εξαιρετικά δύσκολο να δημιουργήσουμε μια καλή, και ακόμα πιο δύσκολο να προσδιοριστεί αν η γεννήτρια τυχαίων αριθμών που δημιουργήσατε πραγματικά δημιουργεί τυχαία και απρόβλεπτα αριθμούς. Ο καλύτερος δρόμος για τις περισσότερες εφαρμογές είναι η υλοποίηση ενός υπάρχοντος γεννήτρια τυχαίων αριθμών που έχει αποτελέσει αντικείμενο δημόσιας cryptanalysis.

Τυχαίος αριθμός ευπάθειες έχουν ενδιαφέρον για hackers όταν μπορούν να χρησιμοποιηθούν για να καθορίσει τιμές εισόδου για κρυπτογραφικές λειτουργίες. Αυτό μπορεί να χρησιμοποιηθεί σε cryptanalysis.

Εσφαλμένη χρήση της λειτουργίας κλήσεις rand () και τυχαία () είναι οι συνήθεις αιτίες των τυχαίο αριθμό τρωτών σημείων.

Διάφορες Πηγές πληροφοριών για την παραγωγή τυχαίων αριθμών

Για περισσότερες πληροφορίες σχετικά με τη δημιουργία τυχαίων αριθμών, διαβάστε RFC 1750 - Τυχαία Συστάσεις για την ασφάλεια.

"Όποιος προσπαθεί να παράγει τυχαίους αριθμούς μέσα από καθαρά αριθμητική είναι, βεβαίως, σε ένα κράτος της αμαρτίας." - John Von Neumann.
Writing Secure Code Building Secure Software Ασφαλής και κωδικοποίησης των εμπορευμάτων Ασφαλής Προγραμματισμός Cookbook
Αγορά αυτά τα εξαιρετικά βιβλία για ασφαλή προγραμματισμό σε Amazon.com


Top 5 Free δικτύωση Εργαλεία

Bookmark Τι είναι ένας τυχαίος αριθμός ευπάθεια;

Τελευταίες θέσεις Blog


Αγγλικά Αγγλικά Γερμανικά Γερμανικά Ισπανικά Ισπανικά Γαλλικά Γαλλικά Ιταλικά Ιταλικά Πορτογαλικά Πορτογαλικά Ρωσικά Ρωσικά Ολλανδικά Ολλανδικά
Ελληνικά Ελληνικά Χίντι Χίντι Ιαπωνικά Ιαπωνικά Κορεατικά Κορεατικά Κινεζικά Κινεζικά Κινέζικα (απλοποιημένα) Κινέζικα (απλοποιημένα) Αραβικά Αραβικά

Copyright 2009-Tech FAQ. Με επιφύλαξη κάθε νόμιμου δικαιώματος. Πολιτική Προστασίας Προσωπικών Δεδομένων.