Κάνε και εσύ, τις ερωτήσεις σου σχετικά με την τεχνολογία!

...συζητήσεις περί τεχνολογίας για hardware, software, υπηρεσίες, κλπ (για ubuntu ... στο Γενικά)

Συντονιστές: Geochr, ubuderix

Re: Κάνε και εσύ, τις ερωτήσεις σου σχετικά με την τεχνολογί

Δημοσίευσηαπό Star_Light » 28 Ιουν 2011, 14:45

M.Jackson έγραψε:Ναι medigeek αλλά στο αρχείο php που κάνει login ο χρήστης εκεί είναι εκτεθειμένα το username και το password του host μου. Ξέρω πως αυτά τα αρχεία γίνονται κρυπτογράφηση αλλά δεν ξέρω πώς. Επίσης είναι σωστή μέθοδος να υπάρχει ο κωδικός μέσα σε ένα php αρχείο που συνδέετε με την MySQL;

Star_Light σύμφωνοι αλλά το cracing με την μέθοδο Dictionary attack δεν είναι τόσο εύκολο να σπάσει κωδικό αν ένας κωδικός κρυπτογραφηθεί σε άγνωστο αριθμό (επαναλήψεων) και άγνωστο αλγόριθμο φαντάζει αδύνατο.


Εγω δεν ασχολουμαι καθολου με τον αλγοριθμο κρυπτογραφησης. Γιατι ειπαμε οτι μετραει πολυ και το κλειδι. Το προγραμμα που ειπα που γενικα χρησιμοποιειται οχι μονο απο κρακεραδες - πιτσιρικαδες αλλα και απο σοβαρα ατομα που θελουν να δοκιμασουν εναν κωδικο προσβασης . Παιρνει την συνοψη που θα του δωσουμε και την συγκρινει με τις συνοψεις που ηδη διαθετει και αμα βρεθει αντιστοιχια απλα σου πεταει τον κωδικο προσβασης.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Κάνε και εσύ, τις ερωτήσεις σου σχετικά με την τεχνολογί

Δημοσίευσηαπό Star_Light » 28 Ιουν 2011, 15:58

ΕΚΤΟς και αν ηθελες να εννοησεις οτι θα παράγεις κλειδια που θα ειναι string απο τυχαια bit που δημιουργουνται απο μια αυτοματη διαδικασια.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Κάνε και εσύ, τις ερωτήσεις σου σχετικά με την τεχνολογί

Δημοσίευσηαπό medigeek » 28 Ιουν 2011, 23:28

M.Jackson έγραψε:Ναι medigeek αλλά στο αρχείο php που κάνει login ο χρήστης εκεί είναι εκτεθειμένα το username και το password του host μου.

Όπως είπα:
Κώδικας: Επιλογή όλων

$savedhash = '8910ee7d68dfff68460731ea37eb0d406d07862d';

$salt = 'ticket-ABC-XYZ-012'; // a random text string
$password = $_GET['password']; // user-input password
$hashtocheck = sha1( sha1($password) . sha1($salt) ); // result: hash text string

if ($hashtocheck == $savedhash) { echo("Success!\n"); }
else { echo("Try again!\n"); }


1. Θεωρώ ότι έχεις ένα html όπου ο χρήστης κάνει login μέσω html form. Εισάγει username και password.
Στέλνονται στο php για "έλεγχο" μέσω submit: http://www.example.com/test.php?password=pass
2. Το password το θέτει ως $password από το php variable.
3. Υπάρχει ένα φυλαγμένο hash ($savedhash), με το οποίο θα συγκρίνουμε και θα δούμε αν ο κωδικός που πήραμε από το form είναι σωστός.
4. Το φυλαγμένο hash μπορεί να διαβαστεί από ένα αρχείο π.χ. mypass.ini όπου θα φυλαχθεί το όνομα του χρήστη και το hash.
5. Το php θα υπολογίσει ένα hash από το form.
6. Ακολούθως, θα συγκρίνει τα δύο hashes.

Πουθενά δε φαίνεται ο κωδικός που εισήγαγε ο χρήστης. Υπάρχουν μόνο hashes!
Πιο ασφαλές από αυτό δε νομίζω να γίνεται. Καλά, κι ένα κωδικό 15+ χαρακτήρων που περιέχουν θα ήταν ό,τι πρέπει. :)

Αλλιώς, μάλλον δεν κατάλαβα την ερώτηση. Ας αρχίσουμε ξανά:
- Τι είδους κρυπτογράφηση γυρεύεις;
- Ποιο σκοπό πρέπει να εξυπηρετήσει;
- Το αρχείο πρέπει να είναι εκτελέσιμο;
- Υπάρχει δύο ειδών απ'όσο γνωρίζω, ένα είναι τύπου gpg (με δύο κλειδιά, ένα private κι ένα public) και το άλλο είναι το one-way hash (md5, sha1 κτλ).

Υπάρχει τρόπος να κρυπτογραφήσεις το home για παράδειγμα ή ένα private φάκελο (χρειάζεται εγκατάσταση του ecryptfs-utils αν δεν υπάρχει ήδη): https://help.ubuntu.com/community/Encry ... eDirectory
Εκεί μπορείς να αποθηκεύσεις τα αρχεία σου και να φτιάξεις ένα "ln -s" link στον τόπο που πρέπει να βρίσκεται το αρχείο.

Φυσικά, καθώς τρέχει το αρχείο, νομίζω θα είναι ευάλωτο (επειδή μπορεί να διαβαστεί από τον τρέχων χρήστη, δηλ. από εσένα). Δεν είμαι ειδικός όμως. :P
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Κάνε και εσύ, τις ερωτήσεις σου σχετικά με την τεχνολογί

Δημοσίευσηαπό M.Jackson » 28 Ιουν 2011, 23:55

medigeek έγραψε:
M.Jackson έγραψε:Ναι medigeek αλλά στο αρχείο php που κάνει login ο χρήστης εκεί είναι εκτεθειμένα το username και το password του host μου.

Όπως είπα:
Κώδικας: Επιλογή όλων

$savedhash = '8910ee7d68dfff68460731ea37eb0d406d07862d';

$salt = 'ticket-ABC-XYZ-012'; // a random text string
$password = $_GET['password']; // user-input password
$hashtocheck = sha1( sha1($password) . sha1($salt) ); // result: hash text string

if ($hashtocheck == $savedhash) { echo("Success!\n"); }
else { echo("Try again!\n"); }


1. Θεωρώ ότι έχεις ένα html όπου ο χρήστης κάνει login μέσω html form. Εισάγει username και password.
Στέλνονται στο php για "έλεγχο" μέσω submit: http://www.example.com/test.php?password=pass
2. Το password το θέτει ως $password από το php variable.
3. Υπάρχει ένα φυλαγμένο hash ($savedhash), με το οποίο θα συγκρίνουμε και θα δούμε αν ο κωδικός που πήραμε από το form είναι σωστός.
4. Το φυλαγμένο hash μπορεί να διαβαστεί από ένα αρχείο π.χ. mypass.ini όπου θα φυλαχθεί το όνομα του χρήστη και το hash.
5. Το php θα υπολογίσει ένα hash από το form.
6. Ακολούθως, θα συγκρίνει τα δύο hashes.

Πουθενά δε φαίνεται ο κωδικός που εισήγαγε ο χρήστης. Υπάρχουν μόνο hashes!
Πιο ασφαλές από αυτό δε νομίζω να γίνεται. Καλά, κι ένα κωδικό 15+ χαρακτήρων που περιέχουν θα ήταν ό,τι πρέπει. :)

Αλλιώς, μάλλον δεν κατάλαβα την ερώτηση. Ας αρχίσουμε ξανά:
- Τι είδους κρυπτογράφηση γυρεύεις;
- Ποιο σκοπό πρέπει να εξυπηρετήσει;
- Το αρχείο πρέπει να είναι εκτελέσιμο;
- Υπάρχει δύο ειδών απ'όσο γνωρίζω, ένα είναι τύπου gpg (με δύο κλειδιά, ένα private κι ένα public) και το άλλο είναι το one-way hash (md5, sha1 κτλ).

Υπάρχει τρόπος να κρυπτογραφήσεις το home για παράδειγμα ή ένα private φάκελο (χρειάζεται εγκατάσταση του ecryptfs-utils αν δεν υπάρχει ήδη): https://help.ubuntu.com/community/Encry ... eDirectory
Εκεί μπορείς να αποθηκεύσεις τα αρχεία σου και να φτιάξεις ένα "ln -s" link στον τόπο που πρέπει να βρίσκεται το αρχείο.

Φυσικά, καθώς τρέχει το αρχείο, νομίζω θα είναι ευάλωτο (επειδή μπορεί να διαβαστεί από τον τρέχων χρήστη, δηλ. από εσένα). Δεν είμαι ειδικός όμως. :P


Δεν με κατάλαβες όλα τα πιο πάνω τα έκανα είδη, απλά οι κωδικοί και όλα τα στοιχεία είναι σε μια βάση δεδομένων mySQL όπου ο κωδικός είναι αποθηκευμένος σαν κρυπτογραφημένος όλα καλά, αλλά το login.php για να συνδεθεί με την βάση και να συγκρίνει τους κωδικούς θέλει τα στοιχία πρόσβασης στον host και στην βάση δεδομένων, αυτά είναι εκτεθειμένα δηλαδή είναι μια απλή εντολή:
Κώδικας: Επιλογή όλων
$connect = mysql_connect("localhost","username","password");
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

Re: Κάνε και εσύ, τις ερωτήσεις σου σχετικά με την τεχνολογί

Δημοσίευσηαπό Star_Light » 29 Ιουν 2011, 02:40

Eπειδη εχω μεινει λιγο πισω στην PHP αυτα που λετε στον κωδικα παιζουν και χωρις ο αλλος να εχει βαλει ας πουμε SSL στην ιστοσελιδα του????
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Κάνε και εσύ, τις ερωτήσεις σου σχετικά με την τεχνολογί

Δημοσίευσηαπό medigeek » 29 Ιουν 2011, 08:50

M.Jackson έγραψε: το login.php για να συνδεθεί με την βάση και να συγκρίνει τους κωδικούς θέλει τα στοιχία πρόσβασης στον host και στην βάση δεδομένων, αυτά είναι εκτεθειμένα δηλαδή είναι μια απλή εντολή

Αυτή η εντολή θα μείνει ως έχει. Δεν υπάρχει άλλος τρόπος μιας και η php πρέπει να συνδεθεί με την βάση δεδομένων. Ο κωδικός και το όνομα χρήστη θα πρέπει να δωθούν, ό,τι και να κάνεις θα φαίνεται. Μη δίνεις στον εαυτό σου την ψευδαίσθηση ότι είσαι ασφαλής αν κρυπτογραφήσεις τον κωδικό της mysql.
Σκέψου το: Ένα άτομο που κατάφερε να σπάσει την ασφάλεια σου και να διαβάσει τα αρχεία σου, προφανώς θα βρει τρόπο να διαβάσει και ένα αρχείο php με τη δική σου μέθοδο για encrypt / decrypt.
Το ssl που ανάφερε ο Star_Light είναι μια πολύ καλή ιδέα -- κρυπτογραφεί τη σύνδεση μεταξύ http server/client ή μπορείς να κρυπτογραφήσεις και τη σύνδεση μεταξύ php/mysql: http://www.madirish.net/?article=244

Star_Light έγραψε:Eπειδη εχω μεινει λιγο πισω στην PHP αυτα που λετε στον κωδικα παιζουν και χωρις ο αλλος να εχει βαλει ας πουμε SSL στην ιστοσελιδα του????

Ναι, απλά χρειάζεσαι τις εντολές που παρέχει η php (sha1() για παράδειγμα). :)

Υπάρχει και τρόπος με ssh tunnel (δεν το δοκίμασα):
http://stackoverflow.com/questions/3096 ... ssh-in-php
http://www.howtoforge.com/secure_mysql_ ... ssh_tunnel
Τελευταία επεξεργασία από medigeek και 29 Ιουν 2011, 20:12, έχει επεξεργασθεί 1 φορά/ες συνολικά
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Κάνε και εσύ, τις ερωτήσεις σου σχετικά με την τεχνολογί

Δημοσίευσηαπό M.Jackson » 29 Ιουν 2011, 11:27

Μάλιστα, ενδιαφέρων το θέμα πάντως :P
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

Re: Κάνε και εσύ, τις ερωτήσεις σου σχετικά με την τεχνολογί

Δημοσίευσηαπό M.Jackson » 30 Ιουν 2011, 11:23

Ένα USB 8GB είναι αρκετό για να κάνω εγκατάσταση κάποιο λειτουργικό σύστημα και να το έχω πάντα μαζί μου; Θα χρειαστώ μάλλον ένα minimal που να είναι πετσοκομμένο με τα πλήρης απαραίτητα αλλά παράλληλα να μπορεί να τρέξει σε οποιοδήποτε Hardware. Υπάρχει κάτι καλό; (Θα προτιμούσα κάτι σε KDE)

Arch Linux ξεχνάμε γιατί από την πήρα που έχω η εγκατάσταση θα παίζει σε συγκεκριμένο υλικό. Τo Kubuntu αλλά σε κάποια άλλη έκδοση πιο απλή;
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

Re: Κάνε και εσύ, τις ερωτήσεις σου σχετικά με την τεχνολογί

Δημοσίευσηαπό xrdim » 30 Ιουν 2011, 11:37

Πιστευω ανετα. Εγω χρησιμοποιω ενα φλασακι 2Gb και δεν ειχα ποτε προβλημα. Απλα σκεψου οτι οι περισσοτερες διανομες χωρανε σε CD (700Mb) και αντε το πολυ σε DVD (1.4Gb).

edit : Αν εννοεις αντι για εγκατασταση σε σκληρο να την κανεις σε φλασακι και παλι πιστευω οτι γινεται (ειδικα με 8Gb ) αλλα δεν το εχω δοκιμασει.
Τελευταία επεξεργασία από xrdim και 30 Ιουν 2011, 15:31, έχει επεξεργασθεί 1 φορά/ες συνολικά
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: Καλά
Primary PC
Spoiler: show
Προδιαγραφές ⇛ P4 2.8Ghz │P4P800 │1Gb │ GeForce FX 6200 │TP-link TL-WN821N│1280x1024
Λειτουργικό : Ubuntu 11.10
Εικόνα

Secondary PC
Spoiler: show
Προδιαγραφές ⇛ P4 2.8Ghz │Intel D875PBZ │1Gb │ GeForce FX 5200 Ultra │TP-link TL-WN821N│1440x900
Λειτουργικό : Elementary OS
Εικόνα
Άβαταρ μέλους
xrdim
babeTUX
babeTUX
 
Δημοσιεύσεις: 132
Εγγραφή: 02 Ιούλ 2010, 21:55
Εκτύπωση

Re: Κάνε και εσύ, τις ερωτήσεις σου σχετικά με την τεχνολογί

Δημοσίευσηαπό monkgr » 30 Ιουν 2011, 12:05

@M.Jackson

Larch, ἴσως; Προσωπικὰ δὲν τὸ ἔχω δοκιμάσει ἀκόμα, ἀλλὰ οἱ περιγραφὲς λένε γιὰ δημιουργία liveCD/usb stick μὲ βάση την ἤδη ὑπάρχουσα ἐγκατάστασή σου (κυρίως Arch, ἀλλὰ καὶ γενικότερα διανομῆς Linux).
Σχετικὸ ὁδηγό (πέρα ἀπὸ τὸ Arch wiki) νομίζω ὅτι ἔχουν στὸ φόρουμ τοῦ adslgr. Πόσο καλὸς ἢ ἀξιόπιστος εἶναι δὲν ξέρω (θὰ σὲ γελάσω καὶ δὲν τὸ θέλω!) :P
Μήγαρις ἔχω ἄλλο στὸ νοῦ μου, πάρεξ ἐλευθερία καὶ γλῶσσα; (Διονύσιος Σολωμός)

[i][color=#FF0040]Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Μόνο LaTeX ┃ Ἀγγλικά: Καλά
Άβαταρ μέλους
monkgr
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 924
Εγγραφή: 26 Μαρ 2009, 21:07
Τοποθεσία: Ρόδος
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Περί Τεχνολογίας