ΠΛΗΡΟΦΟΡΊΕς: Αποθήκευση ιδιωτικών και δημόσιων κλειδιών για το MSMQ

Ισχύει για: Windows Server, version 2004, all editionsWindows Server, version 1903, all editionsWindows Server 2019, all editions

Σύνοψη


Σε αυτό το άρθρο περιγράφονται η αποθήκευση ιδιωτικών και δημόσιων κλειδιών που χρησιμοποιούνται από την ουρά μηνυμάτων της Microsoft (MSMQ) για τον έλεγχο ταυτότητας και την κρυπτογράφηση μηνυμάτων.

Περισσότερες πληροφορίες


Τα ζεύγη κλειδιών (δημόσια-ιδιωτικά) βρίσκονται στο κρυπτογραφικό API, ένα αντικείμενο κοντέινερ κλειδιού. Οι εφαρμογές δεν χρειάζεται να γνωρίζουν πού και πώς υλοποιείται το κοντέινερ κλειδιών. Το αντικείμενο κοντέινερ κλειδιών πρέπει να είναι ένα αδιαφανές αντικείμενο που περιέχει τα πλήκτρα και είναι προσβάσιμο από δημοσιευμένες διασυνδέσεις.Η βασική υπηρεσία παροχής κρυπτογράφησης (CSP) υλοποιεί τα κοντέινερ κλειδιών στο μητρώο. Η υπηρεσία CSP μπορεί να βρίσκεται στο HKEY_CURRENT_USER ή HKEY_LOCAL_MACHINE. Η θέση προσδιορίζεται με τη μεταβίβαση μιας σημαίας στο CryptAcquireContext. Άλλες CSP μπορούν να εφαρμόσουν το κοντέινερ κλειδιών σε διαφορετική θέση, όπως μια έξυπνη κάρτα. Το MSMQ δεν αναλαμβάνει τίποτα σχετικά με τη θέση των κλειδιών και λειτουργεί πάντα με το κρυπτογραφικό API, ποτέ απευθείας με τα ίδια τα πλήκτρα.Το MSMQ χρησιμοποιεί τη βάση CSP για να έχει κρυπτογραφημένα ή αποκρυπτογραφημένα δεδομένα. Ενώ η τρέχουσα υλοποίηση για την CSP τοποθετεί τα ιδιωτικά κλειδιά στο HKLM\Software\Microsoft\Cryptography\MachineKeys\MSMQ, αυτό δεν θα πρέπει να είναι σχετικές πληροφορίες για οποιαδήποτε εφαρμογή.Όσο για τον έλεγχο ταυτότητας, είναι σύνηθες σφάλμα να πιστεύετε ότι τα ιδιωτικά και τα δημόσια κλειδιά βρίσκονται στο πιστοποιητικό. Ένα πιστοποιητικό είναι ένα δημόσιο στοιχείο πληροφοριών. Δεν έχει σημασία ποιος θα λάβει το πιστοποιητικό. Ωστόσο, το ιδιωτικό κλειδί είναι ένα πιο μυστικό στοιχείο πληροφοριών που πρέπει να διατηρείται σε μια θέση που είναι όσο το δυνατόν ασφαλέστερη.Για κάθε πιστοποιητικό, θα πρέπει να υπάρχει κάποιο κοντέινερ κλειδιών που να σχετίζεται με αυτό. Αυτό το κοντέινερ κλειδιών περιέχει τα δημόσια και ιδιωτικά κλειδιά που σχετίζονται με το πιστοποιητικό. Ένα αντίγραφο του δημόσιου κλειδιού τοποθετείται επίσης στο πιστοποιητικό μαζί με πολλά άλλα τμήματα πληροφοριών.Το κρυπτογραφικό API ορίζει επίσης ένα αντικείμενο που ονομάζεται χώρος αποθήκευσης πιστοποιητικών. Ένας χώρος αποθήκευσης πιστοποιητικών περιέχει πιστοποιητικά και πρόσθετες πληροφορίες σχετικά με κάθε πιστοποιητικό (για παράδειγμα, πληροφορίες σχετικά με τα κλειδιά που σχετίζονται με το πιστοποιητικό). Αυτές οι πληροφορίες είναι μια αναγνώριση της συγκεκριμένης CSP που χρησιμοποιείται με το πιστοποιητικό και την ταυτοποίηση του συγκεκριμένου κοντέινερ κλειδιού που συσχετίζεται με το πιστοποιητικό.Ένας χώρος αποθήκευσης πιστοποιητικών μπορεί να βρίσκεται σε πολλά σημεία, το μητρώο, ένα αρχείο, μια μνήμη και πολλά άλλα. Το MSMQ αποθηκεύει το εσωτερικό πιστοποιητικό σε ένα χώρο αποθήκευσης πιστοποιητικών στην περιοχή HKCU\Software\Microsoft\MSMQ\CertStore. Τα συσχετισμένα κλειδιά βρίσκονται στο HKCU\Software\Microsoft\Cryptography\UserKeys\MSMQ. Αυτές οι θέσεις δεν πρέπει επίσης να είναι συναφείς με οποιαδήποτε εφαρμογή. Το MSMQ λειτουργεί πάντα με το κρυπτογραφικό API, ποτέ απευθείας με τα ίδια τα πλήκτρα.Το MSMQ αποθηκεύει επίσης το δημόσιο κλειδί μιας διαχείρισης ουράς (τμ) στο χώρο αποθήκευσης πληροφοριών ουράς μηνυμάτων (MQIS). Οι εφαρμογές μπορούν να ανακτήσουν αυτό το δημόσιο κλειδί καλώντας το MQGetMachineProperties () με PROPID_QM_ENCRYPTION_PK. Ο τηλεφωνικός χρήστης θα πρέπει να έχει το δικαίωμα "λήψη ασφάλειας" που εκχωρείται στον υπολογιστή, για να ανακτήσει με επιτυχία το δημόσιο κλειδί του υπολογιστή. Το PROPID_QM_ENCRYPTION_PK δεν μοιάζει με όλες τις άλλες ιδιότητες, όπου ο χρήστης θα πρέπει να έχει το δικαίωμα "λήψη δικαιωμάτων" στον υπολογιστή.Το MSMQ χρησιμοποιεί αυτό το δημόσιο κλειδί εσωτερικά για την κρυπτογράφηση μηνυμάτων. Η πλειοψηφία του υπολογιστή ανακτά το δημόσιο κλειδί του υπολογιστή προορισμού από το MQIS. Επειδή στις περισσότερες περιπτώσεις η τιμή της ΠΛΕΙΟΨΗΦΊΑς εκτελείται στο λογαριασμό τοπικού συστήματος, το προνόμιο "λήψη δικαιωμάτων" θα πρέπει να εκχωρείται σε όλους. διαφορετικά, η πλειοψηφία αποτυγχάνει να ανακτήσει το δημόσιο κλειδί και έτσι αποτυγχάνει να κρυπτογραφήσει τα μηνύματα.

Αναφορές


Για περισσότερες πληροφορίες σχετικά με την κρυπτογράφηση, την κρυπτογράφηση δημόσιου κλειδιού και το Microsoft CryptoAPI, ανατρέξτε στο θέμα κρυπτογραφία.

Για πληροφορίες σχετικά με το κιτ ανάπτυξης λογισμικού MSMQ (SDK), ανατρέξτε στο θέμα ουρά μηνυμάτων (MSMQ).