ARCHIVE

POPULAR

Passwordless Authentication - გზა თავისუფლებისკენ, თუ გზა ტყვეობისკენ?



რა არის passwordless autentication (უპაროლო აუტენტიფიკაცია) და რატომ გაჩნდა მასზე მოთხოვნა? 
ბევრ თქვენგანს, შესაძლოა, ერთი და იგივე პაროლი გაქვთ სხვადასხვა რესურსებზე, როგორებიცაა Facebook, Linkedin, Gmail, Live.com... და ასევე იგივე პაროლს იყენებთ კორპორატიულ კომპიუტერზე აუტენტიფიკაციისას ან/და კორპორატიულ რესურსებზე წვდომის მისაღებად. ერთის მხრივ, ერთი პაროლის დამახსოვრება ადვილია, მაგრამ მეორეს მხრივ, საკმარისია ბოროტმოქმედმა მოიპოვოს თქვენი რომელიმე ერთი ექაუნთის პაროლი და ის შეძლებს დანარჩენ ექაუნთებზე წვდომის მოპოვებასაც.

ექსკურსი ისტორიაში

ოდითგანვე, იმისათვის, რომ ადამიანებს დაემტკიცებინათ საკუთარი ვინაობა სხვებისთვის, გამოიყენებდნენ ზეპირსიტყვიერ პაროლებს ან ძნელად გაყალბებად ბეჭდებს. ავტომატური აუტენტიფიკაცია ფიზიკური მოწყობილობის საშუალებით, ჯერ კიდევ, ძველი ეგვიპტედანაა ცნობილი და წარმოადგენს გასაღებს, რომელიც აღებს კლიტეს. დიდი ალბათობით, ავტომატური პაროლით მართვადი კლიტეს შესახებ ყოველმა ჩვენგანმა პირველად შეიტყო, ისეთი ზღაპრიდან, როგორიცაა "ალი-ბაბა და 40 ყაჩაღი". "სეზამ, გაიღე" პაროლის მეშვეობით ხდებოდა ლოდის გაჩოჩება, რომლითაც იყო დაცული გამოქვაბულის შესასვლელი.

აუტენტიფიკაციის სისტემის ელემენტები 

მიუხედავად იმისა, აუტენტიფიკაციის სისტემა არის კომპიუტერული თუ არა, მასში მონაწილეობენ: 

  1. ადამიანი ან ადამიანთა ჯგუფი, ვინც უნდა გაიაროს აუტენტიფიკაცია. ნებისმიერი, ვინც იცის პაროლი.
  2. ასევე გვჭირდება განმასხვავებელი ნიშან-თვისება, რომელიც გამოარჩევს ამ ადამიანს ან ადამიანთა ჯგუფს სხვებისგან. სხვა სიტყვებით - აუტენტიფიკატორი. ზემოთხსენებულ ზღაპარში ესაა სიტყვები "სეზამ გაიღე".
  3. პატრონი, რომელიც არის პასუხისმგებელი აუტენტიფიკაციის სისტემის ფუნქციონირებაზე. ზღაპარში  - 40 ყაჩაღი.
  4. აუტენტიფიკაციის მექანიზმი. ზღაპარში  ჯადოსნური მექანიზმი, რომელიც რეაგირებს სიტყვებზე. კომპიუტერულ სისტემებში ესაა პროგრამული უზრუნველყოფა, რომელიც ამოწმებს პაროლის ან ციფრული სერტიფიკატის ნამდვილობას.
  5. დაშვების მართვის მექანიზმი. ზღაპარში ესაა მექანიზმი, რომელიც აჩოჩებს გამოქვაბულის შესასვლელის წინ მდებარე ლოდს სწორი პაროლის წარმოთქმისას. მაგალითად, ონლაინ გადახდის სისტემებში ესაა მექანიზმი, რომელიც გასრულებინებთ ტრანზაქციას.

რის გამო დავიწყეთ ამბის მოყოლა?

დღევანდელი ამბავი ეხება ჩვენს მიერ განხილული აუტენტიფიკაციის სისტემის ელემენტებიდან მეორეს - აუტენტიფიკატორს. რატომ არის პაროლი კარგი/ცუდი აუტენტიფიკატორი კომპიუტერული სისტემებისთვის? ამ კითხვას რომ გავცეთ პასუხი, უნდა ვიცოდეთ, თუ როგორ ინახება კომპიუტერულ სისტემაში ჩვენს მიერ დარეგისტრირებული პაროლი.

არც თუ ისე შორეულ წარსულში, პაროლები სისტემაში ინახებოდა ღიად (დაუფარავად) ერთ-ერთ ფაილში, დავარქვათ მას პაროლების ფაილი. როდესაც შემტევებმა დაიწყეს ადვილად ამ პაროლების ფაილზე წვდომის მოპოვება, დაცვის მხარემ მოიგონა პაროლების ამ ფაილში არა ღიად შენახვა, არამედ ჰეშირებულად (Password Hash). hash-ფუნქცია არის ისეთი მათემატიკური ოპერაცია, რომელიც სხვადასხვა ზომის შემომავალ ინფორმაციას გარდაქმნის ყოველთვის ერთნაირი ზომის hash-მნიშვნელობად. მაგალითად, გამოვიყენოთ ეს საიტი, და ვნახავთ, რომ სიტყვა Pa$$w0rd -ის SHA256  ჰეშის მნიშნელობა ყოველთის იქნება: 97c94ebe5d767a353b77f3c0ce2d429741f2e8c99473c3c150e2faa3d14c9da6 ჰეშირების უპირატესობა ისიცაა, რომ ის ერთმიმართულებიანია ანუ ჰეშიდან პაროლი ღია ტექსტად (Plain text) ვერ უნდა მიიღოთ. თუმცა შესაძლებელია წინასწარ დავჰეშოთ პაროლების დიდი მოცულობა და მივუსადაგოთ მათ შესაბამისი ჰეშ მნიშვნელობები (ვისაც გაინტერესებთ მოიძიეთ ინფორმაცია Rainbow Tables-ის შესახებ). აქვე გაფრთხილებთ, რომ ზემოთხსენებულ საიტზე არ შეიყვანოთ თქვენი რომელიმე მოქმედი პაროლი, რადგან ის დიდი ალბათობით ამ საიტის მეპატრონის Rainbow table-ში შეინახება 😉.

 ჰეშირებული პაროლების წინააღმდეგ შემტევმა მხარემ მოიგონა კლავიატურის ლოგერები (keylogger). კლავიატურის ლოგერის საწინააღმდეგოდ დაცვის მხარემ მოიგონა ოპერატიული მეხსიერების დაცვა. შემტევებმა დაიწყეს ქსელში ტრაფიკის მონიტორინგი მომხმარებელი/პაროლის დასაჭერად... ქვემოთ მოვიყვან მომხმარებლის Credentials-ებზე შეტევისა და დაცვის ევოლუციას ერთ სურათად (რა თქმა უნდა, არა ყოვლისმომცველს):

        

Attacks and Defences against Passwords

პაროლის სიგრძის შესახებ რეკომენდაციები შეგვიძლია წავიკითხოთ, მაგალითად NIST (National Institute of Standards and Technology)-ის საიტზე. ბოლო განახლება არის დათარიღებული 03-02-2020 -ით. იქ ვკითხულობთ: "NIST now recommends a password policy that requires all user-created passwords to be at least 8 characters in length..." რაც ნიშნავს, რომ მომხმარებლის მიერ შექმნილი პაროლი უნდა შედგებოდეს მინიმუმ 8 სიმბოლოსგან. შესაბამისად, 8-სიმბოლოიანი პაროლი აკმაყოფილებს NIST-ის რეკომენდაციებს. თუ რამდენად შორსაა 8-სიმბოლოიანი პაროლით დაცვა რეალური დაცვისგან, მივხვდებით მაშინ, როდესაც შემდეგ სტატიას წავიკითხავთ. სტატიაში ნათქვამია, რომ 8-სიმბოლოიანი (რთული) პაროლის გადარჩევით (Brut-force) თანამედროვე 8 ვიდეობარათისგან შემდგარ კლასტერს შეუძლია 48 წთ.-ში პაროლის ღია ტექსტით გამოტანა. კერძოდ, Nvidia RTX 4090 გრაფიკულ ბარათებზეა საუბარი. ამიტომ, იმ პიროვნებას, ვინც ორგანიზაციაში პასუხისმგებელია ინფორმაციულ და კიბერუსაფრთხოებაზე ჭირდება არა მხოლოდ სტანდარტების ცოდნა, არამედ სიახლეებსაც უნდა ადევნებდეს თვალყურს...
ზემოთ ვახსენეთ, რომ ყველა სისტემაზე ერთი და იგივე პაროლის გამოყენება არ ვარგა. საშუალო ინტერნეტ-მომხმარებელი ათეულობით სისტემაშია რეგისტრირებული და ამას ემატება კორპორატიულ სისტემებშიც პაროლების შეცვლაზე ზრუნვა... ადამიანის მეხსიერება არ არის გათვლილი იმაზე, რომ ამდენი გასხვავებული პაროლი დავიმახსოვროთ. გამოსავალი შეიძლება იყოს პროგრამების ისეთი კლასის გამოყენებაში, როგორიცაა პაროლების მენეჯერები (Keepass, Enpass, Lastpass, 1password, Google Password Manager და ა.შ.). ამ პროგრამების მუშაობის პრინციპი შემდეგია: თქვენ აყენებთ პროგრამაში შესასვლელ რთულ პაროლს (Secret-ს) და მხოლოდ ამ პაროლის დამახსოვრება გიწევთ, ხოლო სხვა დანარჩენ პაროლებს ეს სისტემა ინახავს თავის ბაზაში (თქვენს მიერ დაყენებული პროგრამაში შესასვლელი პაროლის მეშვეობით) დაშიფრულად. თუ ანალოგია გნებავთ ეს იგივეა, რაც გასაღების ჩამკეტიანი სეიფი, რომელშიც საიდუმლო დოკუმენტებს ინახავთ. სეიფი ეს არის პაროლების მენეჯერი, საიდუმლო დოკუმენტები - თქვენი სხვადასხვა ექაუნთების პაროლები, ხოლო გასაღები - პროგრამაში შესასვლელი პაროლი.

სხვა გზა, რომელიც ჩვენი მომხმარებლის 100%-თან მიახლოებულ დაცვას გვაძლევს ეს არის Multifactor Authentication (MFA). MFA მოიაზრებს შემდეგ ფაქტორებს:

  • იმას, რაც მხოლოდ ჩვენ უნდა ვიცოდეთ ანუ პაროლს;
  • იმას, რაც გაგვაჩნი (ტელეფონი, კომპიუტერი, ფიზიკური თოქენი, პროგრამული უზრუნველყოფა, როგორიცაა Microsoft Authenicator, Google Authenticator და მრავალის სხვა);
  • იმას, რანიც ვართ ანუ ბიომეტრიულ მონაცემებს (თითის ანაბეჭდი,  თვალის, სახის ამოცნობა...);

MFA-თი მომხმარებლის დაცვის საშუალებას დღეს გვაძლევს ყველა მნიშვნელოვანი ინტერნეტ-სერვისი.

... და მივუახლოვდით დღევანდელი სტატიის თემას, რომელსაც უპაროლო აუტენტიფიკაცია ქვია. პაროლების სათანადოდ და დაცულად შენახვა, საკმაოდ რთული ამოცანაა. ისტორიაში ცნობილია უამრავი შემთხვევა, როდესაც ცნობილი კორპორაციების მომხმარებელთა და მათი პაროლების მონაცემებმა გაჟონა (Facebook, Linkedin...). მომხმარებლების პაროლების დაცვაზე საზრუნავად 2012 წლის ივლისში ცნობილმა კორპორაციებმა (PayPal, Lenovo, Nok Nok Labs, Validity Sensors, Infineon, და Agnitio) შექმნეს ალიანსი, რომლის სახელია FIDO Alliance და ამ ალიანსს შეუერთდნენ მრავალი სხვა კომპანიებიც, როგორიცაა Google, Microsoft, Apple... FIDO ეს არის ღია სტანდარტი, რომელიც დაფუძნებულია ასინქრონულ კრიპტოგრაფიაზე და მთავარი არსი მდგომარეობს იმაში, რომ აუტენტიფიკაცია ხდებოდეს არა სადღაც სერვერზე ცენტრალიზებულად, არამედ უშუალოდ მომხმარებლის მოწყობილობაზე. 2016 წლის თებერვალში სტანდარტმა ჰპოვა განვითარება და ცნობილია, როგორც FIDO2 სტანდარტი.

დღეს FIDO2 სტანდარტით სერტიფიცირებული და სტანდარტის საკუთარი იმპლემენტაციის მქონე შემდეგი პროდუქტებია ცნობილი:  Microsoft-ის Windows Hello, Windows Business Hello, Apple Face ID, Apple ID, Google-ის Login Service, Passkeys-ის Apple-ის და Google-ის იმპლემენტაცია, კომპანია Yubico-ს პროდუქტები...

უდავოდ, Passwordless აუტენტიფიკაციას აქვს დიდი უპირატესობები, არ გვიწევს პაროლების დამახსოვრება და აუტენტიფიკატორად გამოიყენება ჩვენს მფლობელობაში არსებული მოწყობილობა ან მასზე გაშვებული პროგრამული უზრუნველყოფა, თუმცა არ უნდა დაგვავიწყდეს, რომ ჩვენს მფლობელობაში არსებულ მოწყობილობას ყავს მწარმოებელი, ხოლო პროგრამულ უზრუნველყოფას - დეველოპერი. ეს ნიშნავს, რომ პაროლზე უარის თქმით თქვენ ნდობას უცხადებთ მწარმოებელს ან/და დეველოპერს... ზოგიერთი თქვეგანი იტყვის, რომ ურჩევნია ისევ და ისევ გამოიყენოს პაროლების მენეჯერი და ქონდეს გააქტიურებული სხვადასხვა სერვისებზე MFA, რაც თანაბრად ანაწილებს Credentials-ების შენახვაზე პასუხისმგებლობას მომხმარებელსა და სერვისის მომწოდებელს შორის... მაგრამ ანაწილებს კი? განვიხილოთ მაგალითი: Microsoft-ის ან Google-ის ონლაინ ექაუნთის შექმნისას პაროლი ინახება სერვისის მომწოდებლის სერვერებზე, ხოლო Microsoft ან Google Authenticator-ის მწარმოებელიც სერვისის მომწოდებელია. აკონტროლებთ რამეს? 😉

თუ როგორ ინახავდა მომხმარებლების პაროლებს (და ღმერთმა იცის როგორ ინახავს ეხლა) კომპანია Facebook-ი იგივე Meta, ამ სტატიიდან გაიგებთ... 2012 წელს ფეისბუქის 200-დან 600 მლნ. მომხმარებლის პაროლი ღია ტექსტად იყო ხელმისაწვდომი ამავე კოპანიის 20 ათასამდე თანამშრომლისთვის 😨

ვფიქრობ, რომ Passwordless Authentication-ი MFA-ს უფრო მარტივი ალტერნატივაა იუზერის გადმოსახედიდან თუ ვიმსჯელებთ. მაშ, Passwordless Authentication  - გზა თავისუფლებისკენ, თუ გზა ტყვეობისკენ? 😉

თქვენ როგორ ფიქრობთ?

No comments

Post a Comment