კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

როდესაც გესმით სიტყვა "კრიპტოგრაფია", ზოგს ახსოვს მათი WiFi პაროლი, მწვანე ბოქლომი საყვარელი ვებსაიტის მისამართის გვერდით და რამდენად რთულია სხვის ელ.ფოსტაში მოხვედრა. სხვები იხსენებენ დაუცველთა სერიას ბოლო წლების განმავლობაში მეტყველების აბრევიატურებით (DROWN, FREAK, POODLE...), თანამედროვე ლოგოებით და გაფრთხილებით, რომ სასწრაფოდ განაახლოთ თქვენი ბრაუზერი.

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

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

სტატიების ამ სერიაში განვიხილავთ კრიპტოგრაფიული შეტევების სხვადასხვა ტიპს, ძირითადი პრინციპების აქცენტით. ზოგადად და არა ზუსტად ამ თანმიმდევრობით, მაგრამ ჩვენ განვიხილავთ შემდეგს:

  • ძირითადი სტრატეგიები: უხეში ძალა, სიხშირის ანალიზი, ინტერპოლაცია, დაქვეითება და ჯვარედინი პროტოკოლები.
  • ბრენდირებული ხარვეზები: FREAK, CRIME, Poodle, DROWN, Logjam.
  • მოწინავე სტრატეგიები: ორაკულის შეტევები (ვოდენეტის შეტევა, კელსის შეტევა); meet-in-the-middle მეთოდი, დაბადების დღის შეტევა, სტატისტიკური მიკერძოება (დიფერენციალური კრიპტოანალიზი, ინტეგრალური კრიპტოანალიზი და ა.შ.).
  • გვერდითი არხის შეტევები და მათი ახლო ნათესავები, წარუმატებლობის ანალიზის ტექნიკა.
  • თავდასხმები საჯარო გასაღების კრიპტოგრაფიაზე: კუბის ფესვი, მაუწყებლობა, დაკავშირებული შეტყობინება, სპილენძის შეტევა, პოჰლიგ-ჰელმანის ალგორითმი, რიცხვების საცერი, ვინერის შეტევა, ბლეიხენბაკერის შეტევა.

ეს კონკრეტული სტატია მოიცავს ზემოხსენებულ მასალას კელსის თავდასხმამდე.

ძირითადი სტრატეგიები

შემდეგი შეტევები მარტივია იმ გაგებით, რომ მათი თითქმის სრულად ახსნა შესაძლებელია ტექნიკური დეტალების გარეშე. მოდით ავხსნათ თავდასხმის თითოეული ტიპი უმარტივესი სიტყვებით, რთული მაგალითების ან მოწინავე გამოყენების შემთხვევების გარეშე.

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

მარტივი უხეში ძალა

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნადაშიფვრის სქემა შედგება ორი ნაწილისგან: 1) დაშიფვრის ფუნქცია, რომელიც იღებს შეტყობინებას (უბრალო ტექსტს) კლავიშთან ერთად და შემდეგ აწარმოებს დაშიფრულ შეტყობინებას - შიფრ ტექსტს; 2) გაშიფვრის ფუნქცია, რომელიც იღებს შიფრულ ტექსტს და გასაღებს და აწარმოებს უბრალო ტექსტს. ორივე დაშიფვრა და გაშიფვრა უნდა იყოს მარტივი გამოსათვლელი გასაღებით და ძნელი გასარკვევი მის გარეშე.

დავუშვათ, რომ ვხედავთ დაშიფრულ ტექსტს და ვცდილობთ მის გაშიფვრას ყოველგვარი დამატებითი ინფორმაციის გარეშე (ამას მხოლოდ დაშიფრული ტექსტის შეტევა ეწოდება). თუ ჩვენ როგორმე ჯადოსნურად ვიპოვით სწორ გასაღებს, ჩვენ შეგვიძლია მარტივად გადავამოწმოთ, რომ ის მართლაც სწორია, თუ შედეგი არის გონივრული შეტყობინება.

გაითვალისწინეთ, რომ აქ არის ორი ნაგულისხმევი ვარაუდი. პირველ რიგში, ჩვენ ვიცით, როგორ უნდა განვახორციელოთ გაშიფვრა, ანუ როგორ მუშაობს კრიპტოსისტემა. ეს არის სტანდარტული დაშვება კრიპტოგრაფიის განხილვისას. შიფრის განხორციელების დეტალების დამალვა თავდამსხმელებისგან შეიძლება ჩანდეს უსაფრთხოების დამატებით ზომად, მაგრამ მას შემდეგ რაც თავდამსხმელი ამ დეტალებს გააცნობიერებს, ეს დამატებითი უსაფრთხოება ჩუმად და შეუქცევად იკარგება. ასე კერხჰოფსის პრინციპი: მტრის ხელში ჩავარდნილმა სისტემამ არ უნდა გამოიწვიოს უხერხულობა.

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

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

სამწუხაროდ კრიპტოანალიტიკოსებისთვის, გასაღების ზომის გაზრდა კარგი დაცვაა უხეში ძალისგან. გასაღების ზომის მატებასთან ერთად, შესაძლო გასაღებების რაოდენობა ექსპონენტურად იზრდება. გასაღების თანამედროვე ზომებით, მარტივი უხეში ძალა სრულიად არაპრაქტიკულია. იმის გასაგებად, თუ რას ვგულისხმობთ, ავიღოთ ყველაზე სწრაფი ცნობილი სუპერკომპიუტერი 2019 წლის შუა რიცხვებისთვის: სამიტზე IBM-ისგან, პიკური შესრულებით დაახლოებით 1017 ოპერაცია წამში. დღეს, კლავიშის ტიპიური სიგრძეა 128 ბიტი, რაც ნიშნავს 2128 შესაძლო კომბინაციას. ყველა გასაღების მოსაძებნად, Summit სუპერკომპიუტერს დასჭირდება დრო, რომელიც სამყაროს ასაკზე დაახლოებით 7800-ჯერ აღემატება.

უნდა ჩაითვალოს თუ არა უხეში ძალა ისტორიულ კურიოზად? სულაც არა: ის აუცილებელი ინგრედიენტია კრიპტოანალიზის კულინარიული წიგნში. იშვიათად არის შიფრები იმდენად სუსტი, რომ მათი გატეხვა შესაძლებელია მხოლოდ ჭკვიანური შეტევით, ამა თუ იმ ხარისხით ძალის გამოყენების გარეშე. ბევრი წარმატებული ჰაკი იყენებს ალგორითმულ მეთოდს ჯერ სამიზნე შიფრის შესუსტებისთვის, შემდეგ კი უხეში ძალის შეტევის შესასრულებლად.

სიხშირის ანალიზი

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნატექსტების უმეტესობა არ არის უაზრო. მაგალითად, ინგლისურ ტექსტებში არის მრავალი ასო ‘e’ და სტატია ‘the’; ბინარულ ფაილებში არის ბევრი null ბაიტი, როგორც padding ინფორმაციის ნაწილებს შორის. სიხშირის ანალიზი არის ნებისმიერი შეტევა, რომელიც სარგებლობს ამ ფაქტით.

ამ შეტევისადმი დაუცველი შიფრის კანონიკური მაგალითია მარტივი ჩანაცვლების შიფრი. ამ შიფრში გასაღები არის ცხრილი, რომელშიც შეცვლილია ყველა ასო. მაგალითად, 'g' შეიცვალა 'h'-ით, 'o' შეიცვალა j-ით, ამიტომ სიტყვა 'go' ხდება 'hj'. ეს შიფრი ძნელია უხეში ძალის გამოყენებით, რადგან ამდენი შესაძლო საძიებო ცხრილია. თუ თქვენ გაინტერესებთ მათემატიკა, გასაღების ეფექტური სიგრძე დაახლოებით 88 ბიტია: ეს არის
კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა. მაგრამ სიხშირის ანალიზი, როგორც წესი, ახორციელებს სამუშაოს სწრაფად.

განვიხილოთ შემდეგი შიფრული ტექსტი დამუშავებული მარტივი შემცვლელი შიფრით:

Xdyly aly ugly xdwnke wn dyajyn anf yalxd dglaxwg xdan aly flyaux gr wn ogql zdwbgegzdo

მას შემდეგ, რაც Y ხშირად გვხვდება, მათ შორის მრავალი სიტყვის ბოლოს, ჩვენ შეგვიძლია სავარაუდოთ ვივარაუდოთ, რომ ეს არის ასო e:

Xdele ale ugle xdwnke wn deajen anf ealxd dglaxwg xdan ale fleeaux gr wn ogql zdwbgegzdo

წყვილი XD გაიმეორა რამდენიმე სიტყვის დასაწყისში. კერძოდ, კომბინაცია XDeLe აშკარად გვთავაზობს სიტყვას these ან thereასე რომ, განვაგრძოთ:

theLe ALe UGLe thWNKE WN heAJeN ANF eALth DGLAtWG ვიდრე ALe FleAUt GR WN OGQL ZDWBGEGZDO

მოდით კიდევ ვივარაუდოთ, რომ L შეესაბამება r, A - a და ასე შემდეგ. ეს ალბათ რამდენიმე მცდელობას მიიღებს, მაგრამ შედარებით სრულ უხეში ძალის შეტევასთან შედარებით, ეს შეტევა აღადგენს ორიგინალ ტექსტს დროში:

უფრო მეტი რამ არის ზეცაში და დედამიწაზე, ვიდრე შენს ფილოსოფიაში ოცნებობს

ზოგიერთისთვის ასეთი „კრიპტოგრამების“ ამოხსნა საინტერესო ჰობია.

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

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

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

წინასწარი გათვლები

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნაავიღოთ ჰიპოთეტური ქალაქი Precom Heights, მოსახლეობა 200. ქალაქის თითოეული სახლი შეიცავს საშუალოდ 000 აშშ დოლარის ღირებულების ძვირფას ნივთებს, მაგრამ არაუმეტეს 30 აშშ დოლარის ღირებულების. Precom-ის უსაფრთხოების ბაზარი მონოპოლიზებულია ACME Industries-ის მიერ, რომელიც აწარმოებს ლეგენდარულ Coyote™ კარის საკეტებს. ექსპერტების ანალიზის მიხედვით, კოიოტის კლასის საკეტის გატეხვა შესაძლებელია მხოლოდ ძალიან რთული ჰიპოთეტური მანქანით, რომლის შექმნასაც დაახლოებით ხუთი წელი და 000 50 დოლარის ინვესტიცია დასჭირდება. არის ქალაქი უსაფრთხო?

დიდი ალბათობით არა. საბოლოოდ, საკმაოდ ამბიციური დამნაშავე გამოჩნდება. ის ასე მსჯელობს: „დიახ, მე დამეკისრება დიდი წინასწარი ხარჯები. პაციენტის ლოდინის ხუთი წელი და $50. მაგრამ როცა დავასრულებ, მექნება წვდომა ამ ქალაქის მთელი სიმდიდრე. თუ ჩემს ბარათებს სწორად ვთამაშობ, ეს ინვესტიცია ბევრჯერ გადაიხდის საკუთარ თავს. ”

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

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

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

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

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

ინტერპოლაცია

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

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

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

მოდით, მარტივი მაგალითით ავხსნათ, თუ როგორ მუშაობს ინტერპოლაცია. ვთქვათ, გვინდა წავიკითხოთ ჩვენი მტრის, ბობის პირადი დღიური. ის შიფრავს თავის დღიურში არსებულ ყველა რიცხვს მარტივი კრიპტოსისტემის გამოყენებით, რომლის შესახებაც შეიტყო ჟურნალში "A Mock of Cryptography"-ის რეკლამიდან. სისტემა ასე მუშაობს: ბობი ირჩევს ორ რიცხვს, რომელიც მას მოსწონს: კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა и კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა. ამიერიდან ნებისმიერი ნომრის დაშიფვრა კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა, ითვლის კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა. მაგალითად, თუ ბობმა აირჩია კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა и კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა, შემდეგ ნომერი კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა დაშიფრული იქნება როგორც კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა.

ვთქვათ, რომ 28 დეკემბერს შევამჩნიეთ, რომ ბობი რაღაცას ახრევდა თავის დღიურში. როდესაც ის დაასრულებს, ჩვენ ჩუმად ავიღებთ მას და ვუყურებთ ბოლო ჩანაწერს:

თარიღი: 235/520

Ძვირფასო დღიურო,

Დღეს კარგი დღე იყო. მეშვეობით 64 დღეს მაქვს პაემანი ბინაში მცხოვრებ ალისასთან 843. მე ნამდვილად ვფიქრობ, რომ ის შეიძლება იყოს 26!

ვინაიდან ჩვენ ძალიან სერიოზულად ვაკვირდებით ბობს მის პაემანზე (ამ სცენარში ორივე 15 წლის ვართ), მნიშვნელოვანია იცოდეთ თარიღი და ალისის მისამართი. საბედნიეროდ, ჩვენ შევამჩნიეთ, რომ ბობის კრიპტოვალუტის სისტემა დაუცველია ინტერპოლაციის შეტევისთვის. შეიძლება არ ვიცოდეთ კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა и კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა, მაგრამ ჩვენ ვიცით დღევანდელი თარიღი, ამიტომ გვაქვს ორი ჩვეულებრივი ტექსტი-შიფრული ტექსტის წყვილი. კერძოდ, ეს ვიცით კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა დაშიფრულია კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნახოლო კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა - ში კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა. აი რას დავწერთ:

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

ვინაიდან 15 წლის ვართ, უკვე ვიცით ორი განტოლების სისტემის შესახებ ორი უცნობით, რაც ამ სიტუაციაში საკმარისია საპოვნელად. კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა и კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა უპრობლემოდ. ყოველი ჩვეულებრივი ტექსტი-შიფრული ტექსტის წყვილი აწესებს შეზღუდვას ბობის კლავიშზე და ეს ორი შეზღუდვა ერთად საკმარისია გასაღების სრულად აღდგენისთვის. ჩვენს მაგალითში პასუხი არის კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა и კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა (ზე კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა, ისე 26 დღიურში შეესაბამება სიტყვას "ერთი", ანუ "იგივე" - დაახლ. შესახვევი).

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

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

ჯვარედინი პროტოკოლი/დაქვეითება

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნაფილმში Now You See Me (2013) ილუზიონისტთა ჯგუფი ცდილობს თაღლითურად მოატყუოს კორუმპირებული სადაზღვევო მაგნატი არტურ ტრესლერი მთელი მისი ქონებისგან. არტურის საბანკო ანგარიშზე წვდომისთვის, ილუზიონისტებმა ან უნდა მიაწოდონ მისი მომხმარებლის სახელი და პაროლი, ან აიძულონ ის პირადად გამოცხადდეს ბანკში და მონაწილეობა მიიღოს სქემაში.

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

(ურბანული ლეგენდის მიხედვით, რომელიც ჩვენ პირადად შევამოწმეთ და გადავამოწმეთ, კრიპტოგრაფი ელი ბიჰემი ერთხელ წააწყდა ბანკის გამყიდველს, რომელიც დაჟინებით მოითხოვდა უსაფრთხოების კითხვის დასმას. როდესაც გამყიდველმა ბებიის დედის სახელი სთხოვა, ბიჰემმა დაიწყო კარნახი: „Capital X, პატარა y, სამი ... ").

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

ზოგიერთ რთულ შემთხვევაში, საკმარისი არ არის უბრალოდ სერვერთან დაკავშირება უფრო სუსტი პროტოკოლის გამოყენებით, არამედ მოითხოვს ლეგიტიმური კლიენტის უნებლიე მონაწილეობას. ამის ორგანიზება შესაძლებელია ეგრეთ წოდებული შემცირების შეტევის გამოყენებით. ამ თავდასხმის გასაგებად, დავუშვათ, რომ ჩვენს ილუზიონისტებს უფრო რთული დავალება აქვთ, ვიდრე ფილმშია. დავუშვათ, რომ ბანკის თანამშრომელი (მოლარე) და არტური შეხვდნენ გაუთვალისწინებელ გარემოებებს, რის შედეგადაც წარმოიქმნა შემდეგი დიალოგი:

მძარცველი: გამარჯობა? ეს არის არტურ ტრესლერი. მსურს პაროლის გადაყენება.

მოლარე: დიდი. გთხოვთ, გადახედოთ თქვენი პირადი საიდუმლო კოდების წიგნს, გვერდი 28, სიტყვა 3. ყველა შემდეგი შეტყობინება დაშიფრული იქნება ამ კონკრეტული სიტყვის გასაღების გამოყენებით. PQJGH. LOTJNAM PGGY MXVRL ZZLQ SRIU HHNMLPPPV…

მძარცველი: ჰეი, ჰეი, მოიცადე, დაელოდე. ეს ნამდვილად აუცილებელია? არ შეგვიძლია უბრალოდ ვილაპარაკოთ, როგორც ჩვეულებრივი ადამიანები?

მოლარე: მე არ გირჩევთ ამის გაკეთებას.

მძარცველი: უბრალოდ... ნახე, ცუდი დღე მქონდა, კარგი? მე VIP კლიენტი ვარ და არ ვარ ამ სულელური კოდების წიგნების გათხრა.

მოლარე: ჯარიმა. თუ დაჟინებით მოითხოვთ, მისტერ ტრესლერ. Რა გინდა?

მძარცველი: გთხოვთ, მსურს მთელი ჩემი ფული გადავიტანო არტურ ტრესლერის მსხვერპლთა ეროვნულ ფონდში.

(პაუზა).

მოლარე: ახლა გასაგებია. გთხოვთ, მიუთითოთ თქვენი PIN დიდი ტრანზაქციისთვის.

მძარცველი: Ჩემი რა?

მოლარე: თქვენი პირადი მოთხოვნით, ამ ზომის ტრანზაქციები მოითხოვს PIN-ს დიდი ტრანზაქციისთვის. ეს კოდი მოგეცით ანგარიშის გახსნისას.

მძარცველი:... Მე დავკარგე. ეს ნამდვილად აუცილებელია? არ შეგიძლია უბრალოდ დაამტკიცო გარიგება?

მოლარე: არა. ბოდიშს გიხდით, მისტერ ტრესლერ. ისევ და ისევ, ეს არის უსაფრთხოების ზომა, რომელიც თქვენ მოითხოვეთ. თუ გსურთ, ჩვენ შეგვიძლია გამოგიგზავნოთ ახალი PIN კოდი თქვენს საფოსტო ყუთში.

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

ტრესლერი: გამარჯობა. მსურს დისტანციური ტრანზაქციის დასრულება, გთხოვთ.

მოლარე: დიდი. გთხოვთ, გადახედოთ თქვენს პირად საიდუმლო კოდების წიგნს, გვერდს ...

(ქურდი აჭერს ღილაკს; მოლარის ხმა გაუგებარ ხმაურში იქცევა).

მოლარე: - #@$#@$#*@$$@#* დაშიფრული იქნება ამ სიტყვით, როგორც გასაღები. AAAYRR PLRQRZ MMNJK LOJBAN…

ტრესლერი: უკაცრავად, კარგად ვერ გავიგე. ისევ? რომელ გვერდზე? რა სიტყვა?

მოლარე: ეს არის გვერდი @#$@#*$)#*#@()#@$(#@*$(#@*.

ტრესლერი: რა?

მოლარე: სიტყვა ნომერი ოცი @$#@$#%#$.

ტრესლერი: სერიოზულად! Საკმარისია! თქვენ და თქვენი უსაფრთხოების პროტოკოლი ცოტა ცირკი ხართ. ვიცი, რომ შენ შეგიძლია ჩვეულებრივად დამელაპარაკო.

მოლარე: არ გირჩევ…

ტრესლერი: და არ გირჩევ დროის დაკარგვას. მე არ მინდა ამის შესახებ მეტის მოსმენა, სანამ არ მოაგვარებთ თქვენს სატელეფონო ხაზის პრობლემებს. შეგვიძლია ამ გარიგების დასრულება თუ არა?

მოლარე:… დიახ. ჯარიმა. Რა გინდა?

ტრესლერი: მე მინდა გადავრიცხო $20 ლორდ ბიზნეს ინვესტმენტს, ანგარიშის ნომერი...

მოლარე: Ერთი წუთით თუ შეიძლება. დიდი საქმეა. გთხოვთ, მიუთითოთ თქვენი PIN დიდი ტრანზაქციისთვის.

ტრესლერი: Რა? ოჰ, ზუსტად. 1234 წ.

აქ არის დაღმავალი შეტევა. სუსტი პროტოკოლი "უბრალოდ პირდაპირ ლაპარაკი" იყო გათვალისწინებული, როგორც ვარიანტი გადაუდებელ შემთხვევაში. და მაინც აქ ვართ.

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

ეს არის ზუსტად ის, რაც მოხდა SSLv2 პროტოკოლთან 1995 წელს. აშშ-ს მთავრობამ უკვე დიდი ხანია დაიწყო კრიპტოგრაფიის განხილვა, როგორც იარაღი, რომელიც საუკეთესოდ არის დაცული საგარეო და საშინაო მტრებისგან. კოდის ნაწილები ინდივიდუალურად იყო დამტკიცებული აშშ-დან ექსპორტისთვის, ხშირად იმ პირობით, რომ ალგორითმი განზრახ შესუსტებული იყო. Netscape-ს, ყველაზე პოპულარული ბრაუზერის, Netscape Navigator-ის შემქმნელს, მიეცა ნებართვა SSLv2-ზე მხოლოდ არსებითად დაუცველი 512-ბიტიანი RSA გასაღებით (და 40-ბიტიანი RC4-ისთვის).

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

ამ თეორიამ გზა გაიარა ორ გახმაურებულ თავდასხმაში, რომლებმაც შეარყია SSL პროტოკოლის უსაფრთხოება 2015 წელს, ორივე აღმოაჩინეს Microsoft-ის მკვლევარებმა და ინრია. პირველი, FREAK თავდასხმის დეტალები გამოვლინდა თებერვალში, რასაც მოჰყვა სამი თვის შემდეგ სხვა მსგავსი შეტევა სახელწოდებით Logjam, რომელსაც უფრო დეტალურად განვიხილავთ, როდესაც გადავალთ შეტევებზე საჯარო გასაღების კრიპტოგრაფიაზე.

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნადაუცველობა გატეხვა (ასევე ცნობილი როგორც "Smack TLS") გაჩნდა, როდესაც მკვლევარებმა გააანალიზეს TLS კლიენტის/სერვერის დანერგვა და აღმოაჩინეს კურიოზული შეცდომა. ამ დანერგვაში, თუ კლიენტი არც კი ითხოვს სუსტი ექსპორტის კრიპტოგრაფიის გამოყენებას, მაგრამ სერვერი მაინც პასუხობს ასეთი კლავიშებით, კლიენტი ამბობს „ოჰ კარგი“ და გადადის სუსტი შიფრების კომპლექტზე.

იმ დროს ექსპორტის კრიპტოგრაფია ფართოდ ითვლებოდა მოძველებულად და შეუზღუდავად, ამიტომ თავდასხმა სრული შოკი იყო და შეეხო ბევრ მნიშვნელოვან დომენს, მათ შორის თეთრი სახლის, IRS და NSA საიტები. კიდევ უფრო უარესი, ირკვევა, რომ ბევრი დაუცველი სერვერი ახდენდა მუშაობის ოპტიმიზაციას იმავე კლავიშების ხელახლა გამოყენებით, ვიდრე ახლის გენერირებას ყოველი სესიისთვის. ამან შესაძლებელი გახადა პროტოკოლის შემცირების შემდეგ წინასწარი გამოთვლითი შეტევის განხორციელება: ერთი გასაღების გატეხვა შედარებით ძვირი რჩებოდა (100$ და 12 საათი გამოქვეყნების დროს), მაგრამ კავშირის შეტევის პრაქტიკული ღირებულება მნიშვნელოვნად შემცირდა. საკმარისია ერთხელ გამოიცნოთ სერვერის გასაღები და გატეხოთ დაშიფვრა ყველა შემდგომი კავშირისთვის იმ მომენტიდან.

და სანამ გადავიდეთ, არის ერთი მოწინავე შეტევა, რომელიც უნდა აღინიშნოს...

Oracle-ის შეტევა

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნამოქსი მარლინსპაიკი ყველაზე ცნობილია, როგორც პლატფორმათა შორის კრიპტო შეტყობინებების აპლიკაციის Signal-ის მამა; მაგრამ ჩვენ პირადად გვიყვარს მისი ერთ-ერთი ნაკლებად ცნობილი ინოვაცია: კრიპტოგრაფიული განწირვის პრინციპი (კრიპტოგრაფიული განწირვის პრინციპი). ოდნავ პერიფრაზისთვის, შეგვიძლია ვთქვათ: „თუ პროტოკოლი შესრულდება ნებისმიერი ასრულებს კრიპტოგრაფიულ ოპერაციას შეტყობინებაზე პოტენციურად მავნე წყაროდან და განსხვავებულად იქცევა შედეგიდან გამომდინარე, ის განწირულია“. ან უფრო მკვეთრი ფორმით: ”ნუ აიღებთ ინფორმაციას მტრისგან დასამუშავებლად და თუ გჭირდებათ, მაშინ მაინც არ აჩვენოთ შედეგი”.

თავი დავანებოთ ბუფერულ გადადინებას, ბრძანების ინექციებს და მსგავსებს; ისინი სცილდებიან ამ დისკუსიის ფარგლებს. „განწირვის პრინციპის“ დარღვევა იწვევს კრიპტოგრაფიის სერიოზულ ჰაკერებს იმის გამო, რომ პროტოკოლი იქცევა ზუსტად ისე, როგორც მოსალოდნელია.

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

ასე რომ, ალისა და ბობი ურთიერთობენ მარტივი შემცვლელი შიფრის გამოყენებით მხოლოდ მათთვის ცნობილი გასაღების გამოყენებით. ისინი ძალიან მკაცრია შეტყობინებების ხანგრძლივობასთან დაკავშირებით: ისინი ზუსტად 20 სიმბოლოა. ასე რომ, ისინი შეთანხმდნენ, რომ თუ ვინმეს სურდა უფრო მოკლე შეტყობინების გაგზავნა, უნდა დაემატებინა რამდენიმე მოჩვენებითი ტექსტი შეტყობინების ბოლოს, რათა ის ზუსტად 20 სიმბოლო იყოს. გარკვეული დისკუსიის შემდეგ, მათ გადაწყვიტეს, რომ მიიღებდნენ მხოლოდ შემდეგ მატყუარა ტექსტებს: a, bb, ccc, dddd და ა.შ. ამგვარად, ცნობილია ნებისმიერი საჭირო სიგრძის მოჩვენებითი ტექსტი.

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

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

მძარცველი: PREWF ZHJKL MMMN. LA

ალისა: არასწორი მოჩვენებითი ტექსტი.

მძარცველი: PREWF ZHJKL MMMN. LB

ალისა: არასწორი მოჩვენებითი ტექსტი.

მძარცველი: PREWF ZHJKL MMMN. LC

ალისა: ILCT? TLCT RUWO PUT KCAW CPS OWPOW!

ქურდს წარმოდგენა არ აქვს, რა თქვა ალისამ, მაგრამ აღნიშნავს, რომ სიმბოლო C უნდა შეესაბამებოდეს a, რადგან ალისამ მიიღო მატყუარა ტექსტი.

მძარცველი: REWF ZHJKL MMMN. LAA

ალისა: არასწორი მოჩვენებითი ტექსტი.

მძარცველი: REWF ZHJKL MMMN. LBB

ალისა: არასწორი მოჩვენებითი ტექსტი.

არაერთი მცდელობის შემდეგ...

მძარცველი: REWF ZHJKL MMMN. LGG

ალისა: არასწორი მოჩვენებითი ტექსტი.

მძარცველი: REWF ZHJKL MMMN. LHH

ალისა: TLQO JWCRO FQAW SUY LCR C OWQXYJW. IW PWWR TU TCFA CHUYT TLQO JWFCTQUPOLQZ.

ისევ, თავდამსხმელს წარმოდგენაც არ აქვს, რა თქვა ალისამ, მაგრამ აღნიშნავს, რომ H უნდა ემთხვეოდეს b-ს, რადგან ალისამ მიიღო მოჩვენებითი ტექსტი.

და ასე გრძელდება მანამ, სანამ თავდამსხმელმა არ გაიგოს თითოეული პერსონაჟის მნიშვნელობა.

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

მიუხედავად იმისა, რომ ეს კონკრეტული თავდასხმა ინსტრუქციულია, ზედმეტად ნუ დაიკიდებით „მოტყუებული ტექსტის“ სქემის სპეციფიკაზე, გამოყენებულ კონკრეტულ კრიპტოსისტემაზე ან თავდამსხმელის მიერ გაგზავნილი შეტყობინებების ზუსტ თანმიმდევრობაზე. ძირითადი იდეა არის ის, თუ როგორ რეაგირებს ალისა განსხვავებულად, მარტივი ტექსტის თვისებებზე დაყრდნობით და ამას აკეთებს იმის გადამოწმების გარეშე, რომ შესაბამისი შიფრული ტექსტი რეალურად მოვიდა სანდო მხარისგან. ამრიგად, ალისა თავდამსხმელს საშუალებას აძლევს ამოიღოს საიდუმლო ინფორმაცია მისი პასუხებიდან.

ამ სცენარში ბევრი რამ შეიძლება შეიცვალოს. სიმბოლოები, რომლებზეც ალისა რეაგირებს, ან განსხვავება მის ქცევაში, ან თუნდაც გამოყენებული კრიპტოსისტემა. მაგრამ პრინციპი იგივე დარჩება და თავდასხმა მთლიანობაში სიცოცხლისუნარიანი დარჩება ამა თუ იმ ფორმით. ამ თავდასხმის ძირითადი განხორციელება დაეხმარა უსაფრთხოების რამდენიმე ხარვეზის გამოვლენას, რომლებსაც ჩვენ მალე განვიხილავთ; მაგრამ ჯერ რამდენიმე თეორიული გაკვეთილი უნდა ვისწავლოთ. როგორ გამოვიყენოთ ეს ფიქტიური „ალისის სკრიპტი“ შეტევაში, რომელსაც შეუძლია იმუშაოს რეალურ თანამედროვე შიფრზე? ეს შესაძლებელია, თუნდაც თეორიულად?

1998 წელს შვეიცარიელმა კრიპტოგრაფმა დანიელ ბლეიხენბახერმა ამ კითხვაზე დადებითი პასუხი გასცა. მან აჩვენა ორაკული თავდასხმა ფართოდ გამოყენებულ საჯარო გასაღების კრიპტოსისტემაზე RSA, სპეციალური შეტყობინების სქემის გამოყენებით. ზოგიერთ RSA განხორციელებაში, სერვერი პასუხობს სხვადასხვა შეცდომის შეტყობინებებს იმისდა მიხედვით, შეესაბამება თუ არა ჩვეულებრივი ტექსტი სქემას; ეს საკმარისი იყო თავდასხმის განსახორციელებლად.

ოთხი წლის შემდეგ, 2002 წელს, ფრანგმა კრიპტოგრაფმა სერჟ ვოდენეიმ აჩვენა ორაკული თავდასხმა, რომელიც თითქმის იდენტურია ზემოთ აღწერილი ალისის სცენარში - გარდა იმისა, რომ ფიქტიური შიფრის ნაცვლად, მან დაარღვია თანამედროვე შიფრების მთელი ღირსშესანიშნავი კლასი, რომელსაც რეალურად იყენებენ ადამიანები. კერძოდ, Vaudenay-ის თავდასხმა მიზნად ისახავს ფიქსირებული შეყვანის ზომის შიფრებს ("ბლოკის შიფრები"), როდესაც ისინი გამოიყენება ეგრეთ წოდებულ "CBC დაშიფვრის რეჟიმში" და გარკვეული პოპულარული padding სქემით, რომელიც ძირითადად ექვივალენტურია ალისის სცენარში.

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

ქვემოთ წარმოგიდგენთ Vaudenay-ისა და Kelsey-ის თავდასხმების უფრო დეტალურ აღწერას (უფრო დეტალურ აღწერას მივცემთ Bleichenbacher-ის შეტევას, როდესაც გადავალთ შეტევებზე საჯარო გასაღების კრიპტოგრაფიაზე). მიუხედავად ჩვენი მცდელობისა, ტექსტი გარკვეულწილად ტექნიკური ხდება; ასე რომ, თუ ზემოთ ჩამოთვლილი საკმარისია თქვენთვის, გამოტოვეთ შემდეგი ორი ნაწილი.

ვოდენეს შეტევა

Vaudenay თავდასხმის გასაგებად, პირველ რიგში, ჩვენ უნდა ვისაუბროთ ცოტა მეტი ბლოკ შიფრებზე და დაშიფვრის რეჟიმებზე. როგორც აღვნიშნეთ, „ბლოკის შიფრი“ არის შიფრი, რომელიც იღებს გასაღებს და შეყვანას გარკვეული ფიქსირებული სიგრძით („ბლოკის სიგრძე“) და აწარმოებს იმავე სიგრძის დაშიფრულ ბლოკს. ბლოკის შიფრები ფართოდ გამოიყენება და ითვლება შედარებით უსაფრთხო. ახლა პენსიონერი DES, რომელიც პირველ თანამედროვე შიფრებად ითვლება, ბლოკის შიფრი იყო. როგორც ზემოთ აღინიშნა, იგივე ეხება AES- ს, რომელიც დღეს ფართოდ გამოიყენება.

სამწუხაროდ, ბლოკის შიფრებს ერთი აშკარა სისუსტე აქვთ. ბლოკის ტიპიური ზომა არის 128 ბიტი, ანუ 16 სიმბოლო. ცხადია, თანამედროვე კრიპტოგრაფია მოითხოვს უფრო დიდ შეყვანის მონაცემებთან მუშაობას და სწორედ აქ მოქმედებს დაშიფვრის რეჟიმები. დაშიფვრის რეჟიმი არსებითად ჰაკია: ეს არის გზა როგორმე გამოიყენოს ბლოკის შიფრი, რომელიც იღებს მხოლოდ გარკვეული ზომის შეყვანას თვითნებური სიგრძის შეყვანაში.

Vodene-ის შეტევა ფოკუსირებულია პოპულარულ CBC (Cipher Block Chaining) მუშაობის რეჟიმზე. თავდასხმა განიხილავს ბლოკის შიფრს, როგორც ჯადოსნურ, შეუღწევად შავ ყუთს და მთლიანად გვერდს უვლის მის უსაფრთხოებას.

აქ მოცემულია დიაგრამა, რომელიც გვიჩვენებს, თუ როგორ მუშაობს CBC რეჟიმი:

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

შემოხაზული პლუსი ნიშნავს XOR (ექსკლუზიური OR) ოპერაციას. მაგალითად, მიღებულია შიფრული ტექსტის მეორე ბლოკი:

  1. მეორე ღია ტექსტის ბლოკზე XOR ოპერაციის შესრულებით პირველი შიფრული ტექსტის ბლოკით.
  2. მიღებული ბლოკის დაშიფვრა ბლოკის შიფრით გასაღების გამოყენებით.

იმის გამო, რომ CBC იყენებს ორობითი XOR ოპერაციას, მოდით, ერთი წუთით გავიხსენოთ მისი ზოგიერთი თვისება:

  • იმპოტენცია: კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა
  • კომუტატიულობა: კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა
  • ასოციაციურობა: კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა
  • თვითშექცევადობა: კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა
  • ბაიტის ზომა: ბაიტი n of კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა = (ბაიტი n of კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა) კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა (ბაიტი n of კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა)

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

არის ორი მცირე განსხვავება და ერთი მთავარი განსხვავება ჩვენს ალისის სცენარსა და ვოდენეის შეტევას შორის. ორი მცირე:

  • სცენარში, ალისა მოსალოდნელია, რომ Plaintexts დასრულდება პერსონაჟებით a, bb, ccc და ასე შემდეგ. Wodene თავდასხმის დროს მსხვერპლი მოელის, რომ ჩვეულებრივი ტექსტები N-ჯერ დასრულდება N ბაიტით (ანუ თექვსმეტობითი 01 ან 02 02, ან 03 03 03 და ა.შ.). ეს არის მხოლოდ კოსმეტიკური განსხვავება.
  • ალისის სცენარში ადვილი იყო იმის თქმა, მიიღო თუ არა ალისმა შეტყობინება პასუხით "არასწორი მოჩვენებითი ტექსტი". ვოდენეს თავდასხმისას საჭიროა მეტი ანალიზი და მნიშვნელოვანია მსხვერპლის მხრიდან ზუსტი განხორციელება; მაგრამ მოკლედ, ავიღოთ როგორც მოცემული, რომ ეს ანალიზი ჯერ კიდევ შესაძლებელია.

მთავარი განსხვავება:

  • ვინაიდან ჩვენ არ ვიყენებთ ერთსა და იმავე კრიპტოსისტემას, თავდამსხმელის მიერ კონტროლირებად შიფრული ტექსტის ბაიტებსა და საიდუმლოებებს შორის ურთიერთობა აშკარად განსხვავებული იქნება. ამიტომ, თავდამსხმელს მოუწევს გამოიყენოს განსხვავებული სტრატეგია შიფრული ტექსტების შექმნისა და სერვერის პასუხების ინტერპრეტაციისას.

ეს ძირითადი განსხვავება არის თავსატეხის ბოლო ნაწილი ვოდენეის თავდასხმის გასაგებად, ასე რომ, მოდით, ცოტა ხნით დავფიქრდეთ იმაზე, თუ რატომ და როგორ იქნება შესაძლებელი ორაკული თავდასხმა CBC-ზე.

დავუშვათ, რომ მოგვცეს CBC შიფრული ტექსტი 247 ბლოკისგან და გვინდა მისი გაშიფვრა. ჩვენ შეგვიძლია გავაგზავნოთ ყალბი შეტყობინებები სერვერზე, ისევე, როგორც ადრე შეგვეძლო ყალბი შეტყობინებების გაგზავნა ალისისთვის. სერვერი გაშიფვრავს შეტყობინებებს ჩვენთვის, მაგრამ არ აჩვენებს გაშიფვრას - ამის ნაცვლად, ისევ, როგორც ალისის შემთხვევაში, სერვერი შეატყობინებს მხოლოდ ერთ ბიტ ინფორმაციას: აქვს თუ არა უბრალო ტექსტს სწორი padding.

გაითვალისწინეთ, რომ ალისის სცენარში გვქონდა შემდეგი ურთიერთობები:

$$display$$text{SIMPLE_SUBSTITUTION}(ტექსტი{შიფრული ტექსტი},ტექსტი{key}) = ტექსტი{plaintext}$$display$$

მოდით ვუწოდოთ ამას "ალისის განტოლება". ჩვენ ვაკონტროლებდით დაშიფრულ ტექსტს; სერვერმა (ალისამ) გაჟონა ბუნდოვანი ინფორმაცია მიღებული ღია ტექსტის შესახებ; და ამან მოგვცა საშუალება გამოგვეტანა ინფორმაცია ბოლო ფაქტორის - გასაღების შესახებ. ანალოგიით, თუ ჩვენ შეგვიძლია ვიპოვოთ ასეთი კავშირი CBC სკრიპტისთვის, შესაძლოა იქაც მოვახერხოთ საიდუმლო ინფორმაციის ამოღება.

საბედნიეროდ, ნამდვილად არსებობს ურთიერთობები, რომელთა გამოყენებაც შეგვიძლია. განვიხილოთ საბოლოო ზარის გამომავალი ბლოკის შიფრის გაშიფვრის მიზნით და აღვნიშნოთ ეს გამომავალი როგორც კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა. ჩვენ ასევე აღვნიშნავთ უბრალო ტექსტის ბლოკებს კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა და შიფრული ტექსტის ბლოკები კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა. კიდევ ერთხელ გადახედეთ CBC დიაგრამას და შენიშნეთ რა ხდება:

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

მოდით ვუწოდოთ ამას "CBC განტოლება".

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

დავუშვათ, ჩვენ ნამდვილად აღვადგინეთ კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა, რა იქნება შემდეგ? კარგად, მაშინ ჩვენ შეგვიძლია ამობეჭდოთ უბრალო ტექსტის მთელი ბოლო ბლოკი (კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა), უბრალოდ შეყვანით კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა (რომელიც გვაქვს) და
მიღებული კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა CBC განტოლებაში.

ახლა, როდესაც ჩვენ ოპტიმისტურად ვართ განწყობილი თავდასხმის გეგმის მიმართ, დროა დეტალების შემუშავება. გთხოვთ, მიაქციოთ ყურადღება ზუსტად იმაზე, თუ როგორ ხდება ღია ტექსტის ინფორმაციის გაჟონვა სერვერზე. ალისის სკრიპტში გაჟონვა მოხდა იმის გამო, რომ ალისა მხოლოდ იმ შემთხვევაში უპასუხებდა სწორი შეტყობინებით, თუ $inline$text{SIMPLE_SUBSTITUTION}(text{ciphertext},text{key})$inline$ მთავრდებოდა ხაზით a (ან bbდა ა.შ., მაგრამ ამ პირობების შემთხვევით გაჩენის შანსი ძალიან მცირე იყო). CBC-ის მსგავსად, სერვერი იღებს padding-ს, თუ და მხოლოდ იმ შემთხვევაში, თუ კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა სრულდება თექვსმეტობით 01. მოდით ვცადოთ იგივე ხრიკი: გავაგზავნოთ ყალბი შიფრული ტექსტები ჩვენივე ყალბი მნიშვნელობებით კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნასანამ სერვერი არ მიიღებს შევსებას.

როდესაც სერვერი იღებს შევსებას ჩვენი ერთ-ერთი ყალბი შეტყობინებისთვის, ეს ნიშნავს, რომ:

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

ახლა ჩვენ ვიყენებთ byte-byte XOR თვისებას:

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

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

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

ეს ასევე გვაძლევს საბოლოო მარტივი ტექსტის ბლოკის ბოლო ბაიტს CBC განტოლების და ბაიტი-ბაიტი თვისების მეშვეობით.

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

ამის გასაგებად, ჯერ გაითვალისწინეთ, რომ ბოლო ბაიტის სწორი მნიშვნელობის გამოტანის შედეგი არის კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა ჩვენ გვაქვს ახალი უნარი. ახლა, შიფრული ტექსტების გაყალბებისას, ჩვენ შეგვიძლია მანიპულირება შესაბამისი ჩვეულებრივი ტექსტის ბოლო ბაიტით. ისევ, ეს დაკავშირებულია CBC განტოლებასთან და ბაიტი-ბაიტი თვისებით:

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

ვინაიდან ჩვენ ახლა ვიცით მეორე ტერმინი, შეგვიძლია გამოვიყენოთ ჩვენი კონტროლი პირველზე მესამეზე გასაკონტროლებლად. ჩვენ უბრალოდ ვიანგარიშებთ:

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

ამას ადრე ვერ ვაკეთებდით, რადგან ბოლო ბაიტი ჯერ არ გვქონდა კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა.

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

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

და ჩვენ აღვადგენთ წინაბოლო ბაიტს კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა ისევე როგორც უკანასკნელი აღადგინეს. ჩვენ ვაგრძელებთ იმავე სულისკვეთებით: ვასწორებთ ჩვეულებრივი ტექსტის ბოლო ორ ბაიტს 03 03, ჩვენ ვიმეორებთ ამ შეტევას მესამე ბაიტისთვის ბოლოდან და ასე შემდეგ, საბოლოოდ სრულად აღდგება კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა.

რაც შეეხება დანარჩენ ტექსტს? გთხოვთ გაითვალისწინოთ, რომ ღირებულება კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა სინამდვილეში არის $inline$text{BLOCK_DECRYPT}(text{key},C_{247})$inline$. ჩვენ შეგვიძლია ჩავდოთ ნებისმიერი სხვა ბლოკი კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნადა შეტევა მაინც წარმატებული იქნება. სინამდვილეში, ჩვენ შეგვიძლია ვთხოვოთ სერვერს, გააკეთოს $inline$text{BLOCK_DECRYPT}$inline$ ნებისმიერი მონაცემისთვის. ამ ეტაპზე, თამაში დასრულდა - ჩვენ შეგვიძლია ნებისმიერი შიფრული ტექსტის გაშიფვრა (ამის სანახავად კიდევ ერთხელ გადახედეთ CBC-ის გაშიფვრის დიაგრამას; და გაითვალისწინეთ, რომ IV არის საჯარო).

ეს კონკრეტული მეთოდი გადამწყვეტ როლს ასრულებს ორაკლის შეტევაში, რომელსაც მოგვიანებით შევხვდებით.

კელსის შეტევა

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

ეს გასაოცარი შედეგი განპირობებულია ორი პრინციპით. პირველი, არსებობს ძლიერი კორელაცია უბრალო ტექსტის სიგრძესა და შიფრული ტექსტის სიგრძეს შორის; მრავალი შიფრისთვის ზუსტი თანასწორობა. მეორე, როდესაც შეკუმშვა ხორციელდება, ასევე არსებობს ძლიერი კორელაცია შეკუმშული შეტყობინების სიგრძესა და ღია ტექსტის „ხმაურობის“ ხარისხს შორის, ანუ არაგანმეორებადი სიმბოლოების პროპორციას შორის (ტექნიკური ტერმინია „მაღალი ენტროპია“ ).

პრინციპის მოქმედებაში სანახავად, განიხილეთ ორი ჩვეულებრივი ტექსტი:

ჩვეულებრივი ტექსტი 1: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

ჩვეულებრივი ტექსტი 2: ATVXCAGTRSVPTVVULSJQHGEYCMQPCRQBGCYIXCFJGJ

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

შიფრული ტექსტი 1: PVOVEYBPJDPVANEAWVGCIUWAABCIYIKOOURMYDTA

შიფრული ტექსტი 2: DWKJZXYU

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

კელსი ასევე აღნიშნავს, რომ გარკვეულ უჩვეულო გარემოებებში ეს პრინციპი ასევე შეიძლება გამოყენებულ იქნას ორაკული თავდასხმის განსახორციელებლად. კერძოდ, იგი აღწერს, თუ როგორ შეუძლია თავდამსხმელს აღადგინოს საიდუმლო ტექსტი, თუ მას შეუძლია აიძულოს სერვერი დაშიფროს ფორმის მონაცემები (უბრალო ტექსტი, რასაც მოჰყვება კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნასანამ ის აკონტროლებს კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა და შეუძლია როგორმე შეამოწმოს დაშიფრული შედეგის სიგრძე.

ისევ, ისევე როგორც სხვა ორაკული შეტევები, ჩვენ გვაქვს ურთიერთობა:

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

ისევ, ჩვენ ვაკონტროლებთ ერთ ტერმინს (კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა), ჩვენ ვხედავთ ინფორმაციის მცირე გაჟონვას სხვა წევრის შესახებ (შიფრული ტექსტი) და ვცდილობთ აღვადგინოთ ბოლო (პირდაპირი ტექსტი). ანალოგის მიუხედავად, ეს გარკვეულწილად უჩვეულო სიტუაციაა, ვიდრე ჩვენ ვნახეთ Oracle- ის სხვა შეტევები.

იმის საილუსტრაციოდ, თუ როგორ შეიძლება იმუშაოს ასეთი თავდასხმა, მოდით გამოვიყენოთ ფიქტიური შეკუმშვის სქემა, რომელიც ახლახან გამოვიმუშავეთ: TOYZIP. ის ეძებს ტექსტის სტრიქონებს, რომლებიც ადრე გამოჩნდა ტექსტში და ანაცვლებს მათ სამი ჩანაცვლების ბაიტით, რომლებიც მიუთითებს, სად უნდა მოიძებნოს სტრიქონის ადრინდელი მაგალითი და რამდენჯერ გამოჩნდება იქ. მაგალითად, ხაზი helloworldhello შეიძლება შეკუმშოს helloworld[00][00][05] 13 ბაიტი სიგრძით თავდაპირველ 15 ბაიტთან შედარებით.

დავუშვათ, თავდამსხმელი ცდილობს აღადგინოს ფორმის ჩვეულებრივი ტექსტი password=..., სადაც თავად პაროლი უცნობია. კელსის შეტევის მოდელის მიხედვით, თავდამსხმელს შეუძლია სერვერს სთხოვოს შეკუმშოს და შემდეგ დაშიფროს ფორმის შეტყობინებები (უბრალო ტექსტი, რასაც მოჰყვება კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა) სადაც კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა - თავისუფალი ტექსტი. როდესაც სერვერი დაასრულებს მუშაობას, ის იტყობინება შედეგის ხანგრძლივობას. შეტევა ხდება ასე:

მძარცველი: გთხოვთ შეკუმშოთ და დაშიფროთ ჩვეულებრივი ტექსტი ყოველგვარი შიგთავსის გარეშე.

სერვერი: შედეგის სიგრძე 14.

მძარცველი: გთხოვთ შეკუმშოთ და დაშიფროთ ჩვეულებრივი ტექსტი, რომელსაც დართული აქვს password=a.

სერვერი: შედეგის სიგრძე 18.

კრეკერი აღნიშნავს: [ორიგინალი 14] + [სამი ბაიტი, რომელიც შეიცვალა password=] + a

მძარცველი: გთხოვთ, შეკუმშოთ და დაშიფროთ ჩვეულებრივი ტექსტი, რომელსაც დაემატა password=b.

სერვერი: შედეგის სიგრძე 18.

მძარცველი: გთხოვთ, შეკუმშოთ და დაშიფროთ ჩვეულებრივი ტექსტი, რომელსაც დაემატა password=с.

სერვერი: შედეგის სიგრძე 17.

კრეკერი აღნიშნავს: [ორიგინალი 14] + [სამი ბაიტი, რომელიც შეიცვალა password=c]. ეს ვარაუდობს, რომ ორიგინალური ჩვეულებრივი ტექსტი შეიცავს სტრიქონს password=c. ანუ პაროლი იწყება ასოთი c

მძარცველი: გთხოვთ, შეკუმშოთ და დაშიფროთ ჩვეულებრივი ტექსტი, რომელსაც დაემატა password=сa.

სერვერი: შედეგის სიგრძე 18.

კრეკერი აღნიშნავს: [ორიგინალი 14] + [სამი ბაიტი, რომელიც შეიცვალა password=с] + a

მძარცველი: გთხოვთ, შეკუმშოთ და დაშიფროთ ჩვეულებრივი ტექსტი, რომელსაც დაემატა password=сb.

სერვერი: შედეგის სიგრძე 18.

(… Რაღაც დროის შემდეგ…)

მძარცველი: გთხოვთ, შეკუმშოთ და დაშიფროთ ჩვეულებრივი ტექსტი, რომელსაც დაემატა password=со.

სერვერი: შედეგის სიგრძე 17.

კრეკერი აღნიშნავს: [ორიგინალი 14] + [სამი ბაიტი, რომელიც შეიცვალა password=co]. იგივე ლოგიკით, თავდამსხმელი ასკვნის, რომ პაროლი ასოებით იწყება co

და ასე შემდეგ, სანამ მთელი პაროლი არ აღდგება.

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

ბრენდის სისუსტეები: CRIME, PUODLE, DROWN

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

დანაშაული

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნათუ თავდასხმა მიზნად ისახავს მსხვერპლის ბრაუზერს და ქსელს, ზოგი რამ უფრო ადვილი იქნება და ზოგი უფრო რთული იქნება. მაგალითად, ადვილია დაზარალებულის ტრეფიკი: უბრალოდ იჯექით მას იმავე კაფეში WiFi- ით. ამ მიზეზით, პოტენციურ მსხვერპლს (ანუ ყველას) ზოგადად ურჩევენ გამოიყენონ დაშიფრული კავშირი. უფრო რთული, მაგრამ მაინც შესაძლებელი იქნება მსხვერპლის სახელით HTTP მოთხოვნების გაკეთება მესამე მხარის საიტებზე (მაგალითად, Google). თავდამსხმელმა უნდა მოატყუოს მსხვერპლი მავნე ვებ-გვერდზე სკრიპტით, რომელიც აკეთებს მოთხოვნას. ვებ ბრაუზერი ავტომატურად უზრუნველყოფს შესაბამის სესიის ქუქი-ფაილს.

ეს საოცარი ჩანს. თუ ბობი წავიდა evil.com, შეიძლება ამ საიტის სკრიპტმა უბრალოდ სთხოვოს Google-ს, ელფოსტით გაგზავნოს ბობის პაროლი [email protected]? თეორიულად კი, მაგრამ სინამდვილეში არა. ამ სცენარს ჰქვია საიტის მოთხოვნის გაყალბების შეტევა (ჯვარედინი მოთხოვნის გაყალბება, CSRF) და პოპულარული იყო 90-იანი წლების შუა ხანებში. დღეს თუ evil.com ცდის ამ ხრიკს, Google (ან ნებისმიერი საკუთარი თავის პატივისცემის მქონე ვებსაიტი) ჩვეულებრივ უპასუხებს შემდეგი სიტყვებით: ”მშვენიერია, მაგრამ თქვენი CSRF ჟეტონი ამ ტრანზაქციისთვის იქნება... ჰმ... три триллиона и семь. გთხოვთ გაიმეოროთ ეს ნომერი." თანამედროვე ბრაუზერებს აქვთ რაღაც სახელწოდებით "იგივე წარმოშობის პოლიტიკა", რომლის მიხედვითაც A საიტზე სკრიპტებს არ აქვთ წვდომა B ვებგვერდის მიერ გამოგზავნილ ინფორმაციაზე. ასე რომ, სკრიპტი evil.com შეუძლია მოთხოვნის გაგზავნა google.com, მაგრამ არ შეუძლია პასუხების წაკითხვა ან ტრანზაქციის დასრულება.

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

ეს არის ის, სადაც საქმე ეხება დანაშაული (Compression Ratio Infoleak Made Easy, მარტივი გაჟონვა შეკუმშვის თანაფარდობით). დაუცველობა გამოავლინეს 2012 წლის სექტემბერში უსაფრთხოების მკვლევარებმა ჯულიანო რიზომ და ტაი დუონგმა. ჩვენ უკვე განვიხილეთ მთელი თეორიული საფუძველი, რაც საშუალებას გვაძლევს გავიგოთ რა და როგორ გააკეთეს. თავდამსხმელს შეუძლია აიძულოს ბობის ბრაუზერი გაუგზავნოს მოთხოვნები Google-ს და შემდეგ მოუსმინოს პასუხებს ლოკალურ ქსელში შეკუმშული, დაშიფრული ფორმით. ამიტომ გვაქვს:

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა

აქ თავდამსხმელი აკონტროლებს მოთხოვნას და აქვს წვდომა ტრაფიკის სნიფერზე, პაკეტის ზომის ჩათვლით. კელსის გამოგონილი სცენარი გაცოცხლდა.

თეორიის გაგებით, CRIME-ს ავტორებმა შექმნეს ექსპლოიტი, რომელსაც შეუძლია მოიპაროს სესიის ქუქიები საიტების ფართო სპექტრისთვის, მათ შორის Gmail, Twitter, Dropbox და Github. დაუცველობამ გავლენა მოახდინა ყველაზე თანამედროვე ვებ ბრაუზერებზე, რის შედეგადაც გამოვიდა პატჩები, რომლებიც ჩუმად დამარხეს შეკუმშვის ფუნქციას SSL-ში ისე, რომ იგი საერთოდ არ გამოიყენებოდა. დაუცველობისგან ერთადერთი დაცული იყო პატივცემული Internet Explorer, რომელიც საერთოდ არ იყენებდა SSL შეკუმშვას.

პუდელი

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნა2014 წლის ოქტომბერში Google-ის უსაფრთხოების გუნდმა ტალღა გამოიწვია უსაფრთხოების საზოგადოებაში. მათ შეძლეს გამოეყენებინათ დაუცველობა SSL პროტოკოლში, რომელიც შესწორებული იყო ათ წელზე მეტი ხნის წინ.

გამოდის, რომ სანამ სერვერები ამუშავებენ მბზინავ ახალ TLSv1.2-ს, ბევრმა დატოვა მემკვიდრეობითი SSLv3-ის მხარდაჭერა Internet Explorer 6-თან ჩამორჩენილი თავსებადობისთვის. ჩვენ უკვე ვისაუბრეთ დაქვეითების შეტევებზე, ასე რომ თქვენ წარმოიდგინეთ რა ხდება. ხელის ჩამორთმევის პროტოკოლის კარგად ორგანიზებული დივერსია და სერვერები მზად არიან დაუბრუნდნენ ძველ კარგ SSLv3-ს, რაც არსებითად გააუქმებს უსაფრთხოების ბოლო 15 წლის კვლევას.

ისტორიული კონტექსტისთვის, აქ არის მოკლე მიმოხილვა SSL-ის ისტორიის 2 ვერსიამდე მეთიუ გრინისგან:

სატრანსპორტო ფენის უსაფრთხოება (TLS) არის ყველაზე მნიშვნელოვანი უსაფრთხოების პროტოკოლი ინტერნეტში. [..] თითქმის ყველა გარიგება, რომელსაც ინტერნეტში აკეთებთ, დამოკიდებულია TLS- ზე. [..] მაგრამ TLS ყოველთვის არ იყო TLS. პროტოკოლმა დაიწყო თავისი ცხოვრება Netscape კომუნიკაციები ეწოდება "უსაფრთხო სოკეტების ფენა" ან SSL. ჭორები ამბობენ, რომ SSL-ის პირველი ვერსია იმდენად საშინელი იყო, რომ დეველოპერებმა შეაგროვეს კოდის ყველა ამონაბეჭდი და დამარხეს ისინი ნიუ-მექსიკოს საიდუმლო ნაგავსაყრელზე. შედეგად, SSL-ის პირველი საჯაროდ ხელმისაწვდომი ვერსია რეალურად არის ვერსია SSL 2. ეს საკმაოდ საშინელია და [..] ეს იყო 90-იანი წლების შუა პერიოდის პროდუქტი, რომელსაც თანამედროვე კრიპტოგრაფები მიიჩნევენ, როგორც "კრიპტოგრაფიის ბნელი საუკუნეები" ბევრი ყველაზე საშინელი კრიპტოგრაფიული შეტევა, რომლის შესახებაც დღეს ვიცით, ჯერ კიდევ არ არის აღმოჩენილი. შედეგად, SSLv2 პროტოკოლის დეველოპერებს არსებითად დატოვეს გზა სიბნელეში და მათ შეექმნათ ბევრი საშინელი მონსტრი - მათ გასაბრაზებლად და ჩვენს სასარგებლოდ, რადგან SSLv2-ზე თავდასხმებმა ფასდაუდებელი გაკვეთილები დატოვა პროტოკოლების შემდეგი თაობისთვის.

ამ მოვლენების შემდეგ, 1996 წელს, იმედგაცრუებულმა Netscape-მა გადააკეთა SSL პროტოკოლი ნულიდან. შედეგი იყო SSL ვერსია 3, რომელიც დააფიქსირა რამდენიმე ცნობილი უსაფრთხოების პრობლემა მისი წინამორბედის.

მძარცველებისთვის საბედნიეროდ, "რამდენიმე" არ ნიშნავს "ყველას". საერთო ჯამში, SSLv3 უზრუნველყოფდა ყველა საჭირო სამშენებლო ბლოკს Vodene შეტევის დასაწყებად. პროტოკოლი იყენებდა CBC რეჟიმის ბლოკის შიფრს და არასაიმედო შიფრის სქემას (ეს გამოსწორდა TLS-ში; აქედან გამომდინარე საჭირო იყო შეტევის დაქვეითება). თუ გახსოვთ შევსების სქემა Vaudenay თავდასხმის ჩვენს თავდაპირველ აღწერაში, SSLv3 სქემა ძალიან ჰგავს.

სამწუხაროდ, ქურდებისთვის, "მსგავსი" არ ნიშნავს "იდენტურ". SSLV3 padding სქემა არის "n შემთხვევითი ბაიტი, რასაც მოჰყვება ნომერი n". სცადეთ, ამ პირობებში, აირჩიოთ დაშიფრული ტექსტის წარმოსახვითი ბლოკი და გაიაროთ ვოდენის ორიგინალური სქემის ყველა საფეხური: აღმოაჩენთ, რომ თავდასხმა წარმატებით ამოიღებს ბოლო ბაიტს ჩვეულებრივი ტექსტის შესაბამისი ბლოკიდან, მაგრამ უფრო შორს არ მიდის. CipherText- ის ყოველი მე -16 ბაიტი გაშიფვრა შესანიშნავი ხრიკია, მაგრამ ეს არ არის გამარჯვება.

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

ამ უფრო ძლიერი თავდამსხმელის შესაძლებლობების გათვალისწინებით, შეტევა ახლა შეიძლება გაგრძელდეს. გაითვალისწინეთ, რომ თავდამსხმელმა იცის, სად ჩნდება დაშიფრული სესიის ქუქი-ფაილები სათაურში და აკონტროლებს მის წინა HTTP მოთხოვნის ხანგრძლივობას. ამიტომ, მას შეუძლია HTTP მოთხოვნით მანიპულირება ისე, რომ ქუქი-ფაილის ბოლო ბაიტი გასწორდეს ბლოკის ბოლოს. ახლა ეს ბაიტი შესაფერისია გაშიფვრისთვის. თქვენ შეგიძლიათ უბრალოდ დაამატოთ ერთი სიმბოლო მოთხოვნას და ქუქი-ფაილის წინაბოლო ბაიტი დარჩება იმავე ადგილას და შესაფერისია იმავე მეთოდით შერჩევისთვის. შეტევა გრძელდება ამ გზით, სანამ ქუქი ფაილი სრულად არ აღდგება. მას ჰქვია POODLE: Padding Oracle on downgraded Legacy Encryption.

დაიხრჩო

კრიპტოგრაფიული შეტევები: დაბნეული გონების ახსნაროგორც აღვნიშნეთ, SSLv3-ს ჰქონდა თავისი ხარვეზები, მაგრამ ის ფუნდამენტურად განსხვავდებოდა მისი წინამორბედისგან, რადგან გაჟღენთილი SSLv2 სხვა ეპოქის პროდუქტი იყო. აქ შეგიძლიათ შეწყვიტოთ შეტყობინება შუაში: соглашусь на это только через мой труп გადაიქცა соглашусь на это; კლიენტს და სერვერს შეეძლოთ შეხვდნენ ინტერნეტით, დამყარებულიყვნენ ნდობა და გაცვლა საიდუმლოებები თავდამსხმელის წინაშე, რომელსაც შემდეგ ადვილად შეეძლო ორივე. ასევე არსებობს პრობლემა ექსპორტის კრიპტოგრაფიასთან, რომელიც ჩვენ აღვნიშნეთ, როდესაც განვიხილეთ. ეს იყო კრიპტოგრაფიული სოდომი და გომორა.

2016 წლის მარტში, სხვადასხვა ტექნიკური სფეროს მკვლევართა გუნდი შეიკრიბა და გააკეთა გასაოცარი აღმოჩენა: SSLv2 კვლავ გამოიყენება უსაფრთხოების სისტემებში. დიახ, თავდამსხმელებს აღარ შეეძლოთ თანამედროვე TLS სესიების შემცირება SSLv2-მდე, ვინაიდან ეს ხვრელი დაიხურა FREAK-ისა და POODLE-ის შემდეგ, მაგრამ მათ მაინც შეუძლიათ სერვერებთან დაკავშირება და თავად SSLv2 სესიების დაწყება.

შეიძლება იკითხოთ, რატომ გვაინტერესებს, რას აკეთებენ ისინი იქ? მათ აქვთ დაუცველი სესია, მაგრამ ეს არ უნდა იმოქმედოს სხვა სესიებზე ან სერვერის უსაფრთხოებაზე - არა? კარგად, არა საკმაოდ. დიახ, ასე უნდა იყოს თეორიულად. მაგრამ არა - რადგან SSL სერთიფიკატების გენერირება გარკვეულ ტვირთს აკისრებს, რის შედეგადაც ბევრი სერვერი იყენებს იგივე სერთიფიკატებს და, შედეგად, იგივე RSA კლავიშებს TLS და SSLv2 კავშირებისთვის. უფრო გაუარესების მიზნით, OpenSSL შეცდომის გამო, ამ პოპულარულ SSL განხორციელებაში "გამორთეთ SSLV2" ვარიანტი, ფაქტობრივად, არ მუშაობს.

ამან შესაძლებელი გახადა ჯვარედინი პროტოკოლური შეტევა TLS-ზე, ე.წ დაიხრჩო (RSA-ს გაშიფვრა მოძველებული და დასუსტებული დაშიფვრით, RSA-ს გაშიფვრა მოძველებული და დასუსტებული დაშიფვრით). შეგახსენებთ, რომ ეს არ არის იგივე, რაც მოკლე შეტევა; თავდამსხმელს არ სჭირდება „შუაში კაცის“ როლი და არ სჭირდება კლიენტის ჩართვა არასაიმედო სესიაში მონაწილეობის მისაღებად. თავდამსხმელები უბრალოდ იწყებენ დაუცველ SSLv2 სესიას სერვერთან, თავს დაესხნენ სუსტ პროტოკოლს და აღადგინონ სერვერის RSA პირადი გასაღები. ეს გასაღები ასევე მოქმედებს TLS კავშირებზე და ამ მომენტიდან, TLS უსაფრთხოების არცერთი ოდენობა არ შეუშლის ხელს მის გატეხვას.

მაგრამ მის გასატეხად გჭირდებათ სამუშაო შეტევა SSLv2-ის წინააღმდეგ, რაც საშუალებას გაძლევთ აღადგინოთ არა მხოლოდ კონკრეტული ტრაფიკი, არამედ საიდუმლო RSA სერვერის გასაღები. მიუხედავად იმისა, რომ ეს რთული კონფიგურაციაა, მკვლევარებს შეეძლოთ აირჩიონ ნებისმიერი დაუცველობა, რომელიც მთლიანად დაიხურა SSLv2-ის შემდეგ. მათ საბოლოოდ იპოვეს შესაფერისი ვარიანტი: ბლეიხენბახერის შეტევა, რომელიც ადრე ავღნიშნეთ და რომელსაც შემდეგ სტატიაში დეტალურად განვიხილავთ. SSL და TLS დაცულია ამ თავდასხმისგან, მაგრამ SSL-ის ზოგიერთმა შემთხვევითმა მახასიათებლებმა, მოკლე კლავიშებთან ერთად ექსპორტის ხარისხის კრიპტოგრაფიაში, შესაძლებელი გახადა DROWN-ის კონკრეტული განხორციელება.

გამოქვეყნების მომენტში, ინტერნეტის საუკეთესო საიტების 25% დაზარალდა DROWN დაუცველობით და თავდასხმა შეიძლება განხორციელდეს მოკრძალებული რესურსებით, რომლებიც ხელმისაწვდომი იყო თუნდაც ბოროტი მარტოხელა ჰაკერებისთვის. სერვერის RSA გასაღების მიღებას რვა საათის გამოთვლა და $440 დასჭირდა და SSLv2 მოძველებულიდან რადიოაქტიურად გადავიდა.

მოიცადე, რაც შეეხება Heartbleed-ს?

ეს არ არის კრიპტოგრაფიული შეტევა ზემოთ აღწერილი გაგებით; ეს არის ბუფერის გადინება.

Მოდი შევისვენოთ

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

დაქვეითების და წინასწარი გამოთვლის შეტევების მიმოხილვისას, ჩვენ მოკლედ ავღნიშნეთ FREAK შეტევა, რომელიც იყენებს ორივე მეთოდს სამიზნე საიტების სუსტი კლავიშებამდე დაქვეითებით და შემდეგ იგივე გასაღებების ხელახლა გამოყენების გზით. შემდეგი სტატიისთვის ჩვენ შევინახავთ (ძალიან მსგავს) Logjam შეტევას, რომელიც მიზნად ისახავს საჯარო გასაღების ალგორითმებს.

შემდეგ ჩვენ გადავხედეთ ამ პრინციპების გამოყენების კიდევ სამ მაგალითს. პირველი, CRIME და PUODLE: ორი შეტევა, რომელიც ეყრდნობოდა თავდამსხმელის შესაძლებლობას, თვითნებური ტექსტის შეყვანა სამიზნე ტექსტის გვერდით, შემდეგ შეამოწმოს სერვერის პასუხები და მაშინOracle-ის შეტევის მეთოდოლოგიის გამოყენებით, გამოიყენე ეს მწირი ინფორმაცია ჩვეულებრივი ტექსტის ნაწილობრივ აღდგენისთვის. CRIME-მა გაიარა კელსის შეტევის გზა SSL-ის შეკუმშვაზე, ხოლო პუდლმა სანაცვლოდ გამოიყენა Vaudenay-ის შეტევის ვარიანტი CBC-ზე იგივე ეფექტით.

შემდეგ ჩვენ ყურადღება მივაქციეთ ჯვარედინი პროტოკოლის DROWN შეტევას, რომელიც ამყარებს კავშირს სერვერთან ძველი SSLv2 პროტოკოლის გამოყენებით და შემდეგ აღადგენს სერვერის საიდუმლო გასაღებებს Bleichenbacher შეტევის გამოყენებით. ჩვენ ამ დროისთვის გამოვტოვეთ ამ თავდასხმის ტექნიკური დეტალები; Logjam-ის მსგავსად, მას მოუწევს ლოდინი, სანამ კარგად გავიგებთ საჯარო გასაღების კრიპტოსისტემებსა და მათ მოწყვლადობას.

შემდეგ სტატიაში ვისაუბრებთ გაფართოებულ შეტევებზე, როგორიცაა meet-in-the-middle, დიფერენციალური კრიპტოანალიზი და დაბადების დღის შეტევები. მოდით, სწრაფად შევხედოთ გვერდითი არხის შეტევებს და შემდეგ მივაღწიოთ საქმის არსს: საჯარო გასაღების კრიპტოსისტემებს.

წყარო: www.habr.com

ახალი კომენტარის დამატება