Page 86 - Linux Inside τ. 11

Linux Inside
86
Ο
de facto τρόπος για να συνδεθούμε σε ένα Linux σύ-
στημα, είναι μέσω ssh [1]. Το μηχάνημα στο οποίο θέ-
λουμε να συνδεθούμε, μας στέλνει το δημόσιο κλειδί
του, το αποθηκεύουμε στο αρχείο .ssh/known_hosts και στη
συνέχεια κρυπτογραφούμε με αυτό το κλειδί ό,τι δεδομένα
του στέλνουμε. Από την πλευρά του, το άλλο μηχάνημα απο-
κρυπτογραφεί την επικοινωνία με το ιδιωτικό κλειδί του και
αντίστροφα.
Τι γίνεται όμως όταν χρειάζεται να συνδεθούμε στο e-mail
μας ή σε ένα απομακρυσμένο σύστημά από υπολογιστή που
δεν μας ανήκει; Είμαστε σίγουροι ότι ο υπολογιστής ή το δί-
κτυο στο οποίο συνδεόμαστε είναι ασφαλή και δεν θα κατα-
γραφούν οι κωδικοί μας; Σε τέτοια συστήματα (π.χ., Internet
cafe) θα πρέπει να αποφεύγουμε να συνδεόμαστε. Ακόμη και
εάν η σύνδεσή μας με το e-mail μας είναι μέσω πρωτοκόλλου
https ή χρησιμοποιούμε ssh για να συνδεθούμε στον Linux
server μας, κανένας δεν μπορεί να εγγυηθεί ότι δεν καταγρά-
φονται οι κωδικοί.
Ο πιο ασφαλής τρόπος θα ήταν να χρησιμοποιούμε διαφο-
ρετικό κωδικό κάθε φορά που συνδεόμαστε, όπως όταν
πραγματοποιούμε τραπεζικές συναλλαγές. Οι αλγόριθμοι
που παράγουν τέτοιους κωδικούς, ονομάζονται OTPW (one-
time password) [2]. Για να χρησιμοποιούμε κάθε φορά έναν
μοναδικό κωδικό, θα πρέπει να κρατάμε μία λίστα για να θυ-
μόμαστε τους κωδικούς
που έχουμε χρησιμο-
ποιήσει και ποιους
έχουμε ακόμη διαθέσι-
μους. Φυσικά, υπάρ-
χουν ηλεκτρονικές συ-
σκευές που παράγουν
tokens που μπορούμε
να χρησιμοποιήσουμε.
Αλλά ακόμη και αν χρη-
σιμοποιήσουμε αυτά (ή
αυτά με κωδικό), χρειά-
ζεται με κάποιο τρόπο
να συγχρονίζουμε το
μηχάνημά μας με αυτά.
Για να λυθεί αυτό το πρόβλημα, στους αλγορίθμους που
παράγουν τους κωδικούς έχει προστεθεί και ο χρόνος ως πα-
ράμετρος. Έτσι τα παραγόμενα συνθηματικά σχετίζονται με
το χρόνο και διαρκούν μόνο μερικά δευτερόλεπτα.
Από τη στιγμή που έχουμε μία Αndroid συσκευή, μπορούμε
να εγκαταστήσουμε εφαρμογή που να υλοποιεί τον αλγόριθ-
μο HOTP [3] και να χρησιμοποιήσουμε το κινητό μας για να
παράγουμε μοναδικούς κωδικούς, τους οποίους θα χρησιμο-
ποιούμε για να συνδεθούμε με έναν υπολογιστή ή το e-mail
account μας. Αυτό είναι η λεγόμενη πιστοποίηση δύο παρα-
γόντων ή two-factor authentication (TFA).
Η πιο γνωστή εφαρμογή για Android είναι το google-
authenticator [4], που, φυσικά, προσφέρει και pam module
[5].
Το pam module είναι ο μηχανισμός με τον οποίο πιστο-
ποιεί το χρήστη με το σύστημά μας. Το google-authenticator
παράγει εξαψήφιους κωδικούς και υπάρχει υλοποίηση για
πολλές συσκευές. Αλλά εκτός από τη δύσκολη εγκατάστασή
του, βρήκα αρκετά αποθαρρυντικό το ότι δεν προστατεύει την
εφαρμογή στο κινητό μας με κάποιο PIN.
Εναλλακτικά χρησιμοποιώ το Gort [6], της client εφαρμο-
γής του Barada [7]. To Gort θυμίζει λίγο την ταινία «The Day
the Earth Stood Still» (1951) και, φυσικά, προσφέρει και το
αντίστοιχο pam module. Η διαφορά με το google-
authenticator είναι ότι για να το χρησιμοποιήσει κάποιος στο
Android, χρειάζεται να βάλει pin. Η εγκατάσταση του Gort
(
client εφαρμογής) είναι αρκετά απλή και μπορείτε να την
αναζητήσετε το Google Play.
Εγκατάσταση Barada
Για να μπορέσουμε να υλοποιήσουμε την πιστοποίηση δύο
Ευάγγελος Μπαλάσκας <ebalaskas@ebalaskas.gr>
Linux Labs - Barada
Αν συνδέεστε με έναν ή περισσότερους
απομακρυσμένους υπολογιστές μέσω ssh, θα σας
έχει απασχολήσει η ασφάλεια και το πώς θα
κρατήσετε μακριά όλους όσοι θέλουν να κάνουν
πάρτι κάτω από τη μύτη σας. Μία καλή λύση είναι οι
αλγόριθμοι Two-Mode Authentication, όπως το
Barada, που βάζουν στην εξίσωση το κινητό
τηλέφωνό σας.
Εργαλεία:
Barada, PAM, Gort,
Android
Δυσκολία:
URL:
Λήψη Gort
για Android
Barada: Πιστοποίηση δύο παραγόντων μέσω
του Android
Ο Βαγγέλης προσπαθεί να βοηθήσει τα νέα μέλη του χώρου. Θα τον βρείτε στο hackerspace.gr.
Εισαγωγή του
κλειδιού του Barada
από το Linux μηχάνημα
στο Gort στο Android.
1