Magaz, The Greek Linux Magazine
Magaz Logo

Επόμενο  Περιεχόμενα

1. Τι είναι το Password encoding;

Τα UNIX συστήματα μιας και είναι πολυχρηστικά, χρειάζονται κάποιο τρόπο για να ξεχωρίζουν τους χρήστες. Ο κάθε χρήστης διαθέτει ένα μοναδικό αριθμό (user id), το οποίο αντιστοιχεί σε κάποιο όνομα χρήστη (username). Οι παραπάνω αντιστοιχίες καθορίζονται στο αρχείο "/etc/passwd", ονομασμένο έτσι για ιστορικούς λόγους. Μια καταχώριση στο αρχείο αυτό θα μπορούσε να είναι:

nmav:x:500:4:Nikos Mavroyanopoulos:/home/nmav:/bin/bash

Τα πεδία σε αυτό το αρχείο ξεχωρίζουν απο την ανω-κάτω τελεία ':', ενώ τα πεδία που μας ενδιαφέρουν είναι το 1 που περιέχει το όνομα χρήστη - nmav - καθώς και το πεδίο 3 όπου αναφέρεται η ταυτότητα του χρήστη - 500.

Τα περισσότερα UNIX σύστηματα, για να πιστοποιήσουν την ταυτότητα του χρήστη χρησιμοποιούν συνθηματικές λέξεις, ή απλώς συνθηματικά (passwords). Αυτά τα συνθηματικά αλλάζουν με την εκτέλεση του "/usr/bin/passwd" προγράμματος, το οποίο ανανεώνει τη βάση συνθηματικών του συστήματος. Σε απλά συστήματα αυτή η βάση είναι ένα εκτυπώσιμο αρχείο, και στα περισσότερα παλαιά συστήματα αυτό ήταν το ίδιο το "/etc/passwd". Στα πιο νέα συστήματα είναι ένα αρχείο αναγνώσιμο μόνο απο τον διαχειριστή του συστήματος, και συνήθως είναι το "/etc/shadow".

Αντίθετα με αυτό που θα περίμενε κανείς, η βάση συνθηματικών του συστήματος δεν περιέχει τα ίδια τα συνθηματικά. Τα συνθηματικά κωδικοποιούνται μέσω ενός αλγορίθμου μίας φοράς ( 1) και αποθηκεύονται. Με αυτόν τον τρόπο δεν μπορεί ούτε ο διαχειριστής του συστήματος να δει τα συνθηματικά των χρηστών (μπορεί όμως να τα αλλάξει). Μιας και τα συνθηματικά δεν υπάρχουν στην βάση ίσως να αναρωτηθήτε πως γίνεται η πιστοποίηση του χρήστη. Αν υποθέσουμε ότι ο αλγόριθμος μίας φοράς είναι PW(x), με x να είναι το συνθηματικό, τότε κατά την εισαγωγή του συνθηματικού(x) το σύστημα αρκεί να υπολογίσει πάλι το PW(x) και να το συγκρίνει με το αποθηκευμένο στην βάση.

Επόμενο  Περιεχόμενα


Valid HTML 4.01!   Valid CSS!