რა არის SSH და როგორ მუშაობს იგი?

რა არის SSH დაშიფვრა და როგორ მუშაობს იგი


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

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

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

გამოყენების SSH

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

დისტანციური წვდომა

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

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

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

Პორტის გადამისამართება

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

პორტის გაგზავნა შეიძლება გაკეთდეს სამი სხვადასხვა გზით:

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

გარუჯვა

ssh-2

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

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

SFTP

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

სკკპ

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

პლატფორმები & პროგრამები, რომლებიც იყენებენ SSH

საკუთრების SSH ან OpenSSH შეიძლება გამოყენებულ იქნას ყველა მთავარ ოპერაციულ სისტემაში. ის ხელმისაწვდომია Unix– ის დაფუძნებულ პლატფორმებზე, როგორიცაა OpenBSD, macOS, Linux და Solaris, ხოლო Windows მომხმარებლებს შეუძლიათ გამოიყენონ SSH მეშვეობით PowerShell..

SSH- ის ისტორია

SSH შეიქმნა ჰელსინკის ტექნოლოგიის უნივერსიტეტში 1995 წელს ტატუ ილენენმა, უნივერსიტეტის ქსელზე პაროლის დამნაშავე შეტევის საპასუხოდ. იგი მიზნად ისახავდა ოქმების ალტერნატივას FTP, TELNET, rsh და rlogin, რამაც არ უზრუნველყო კონფიდენციალურობის დაცვა ან მომხმარებლების ავთენტიფიკაცია უსაფრთხო გზით.

SSH 1995 წელს გაათავისუფლეს საზოგადოებისთვის უფასოდ და კარგად მიიღეს. მისი სწრაფი მიღების პირობებში, Ylennen დაარსდა SSH კომუნიკაციების უსაფრთხოება იმავე წლის ბოლოს, რათა გააგრძელოს განვითარება და კომერციალიზაცია SSH.

1995 წელს ილენენმა გამოაქვეყნა ინტერნეტინჟინერიის სამუშაო ჯგუფის (IETF) ინტერნეტ – პროექტიც დაარეგისტრირა SSH-1 პროტოკოლი. შეზღუდვები მალევე დაფიქსირდა ოქმში, და ეს არ შეიძლება მოგვარდეს, თუ არ იმოქმედებს უკან თავსებადობაზე. გამოსავალი ოქმის ახალი ვერსია იყო, ხოლო SSH-2 წამოიწყო Ylönen კომპანიის მიერ 1996 წელს.

SSH-2– მა წარმოადგინა ახალი ალგორითმები, რამაც აიძულა IETF დაარსებულიყო სამუშაო ჯგუფი, რომელიც მიზნად ისახავდა ოქმის სტანდარტიზაციას. ჯგუფს მეტსახელად SECSH დაარქვეს წმure ell, და მან გამოაქვეყნა თავისი პირველი ინტერნეტ პროექტი DSH- სთვის SSH-2 1997 წელს.

პროგრამული უზრუნველყოფა SSH-2 გამოვიდა 1998 წელს, მაგრამ იგი მაშინვე არ იქნა მიღებული ფართოდ გავრცელებული ფორმით, რადგან უფრო შეზღუდული ლიცენზირების გამო. 2006 წელს, IETF– ის მიერ პროტოკოლის შეცვლილი ვერსია სტანდარტად შეიქმნა. ეს უფრო უსაფრთხო იყო, შეტყობინებების ავტორიზაციის კოდების გამოყენებით, მთლიანობის შესამოწმებლად და Diffie-Hellman- ის გასაღების ავთენტიფიკაციისთვის.

1999 წელს OpenBSD პროექტმა გამოუშვა OpenSSH. OpenSSH არის ოქმის უფასო ვერსია ეს ემყარება იმ ცვლილებებს, რომლებიც Björn Grönvall– მა შეიტანა SSH 1.1.12– ში. დეველოპერები დაუბრუნდნენ ამ ძველ ვერსიას და მძიმედ შეცვალეს იგი, რადგან ეს იყო SSH- ის ბოლო ვერსია, რომელიც მთლიანად ღია წყარო იყო. OpenSSH არის ყველაზე ფართოდ გამოყენებული ვარიანტი და მას შემდეგ დანერგეს ოპერაციული სისტემის მთელი რიგი, როგორიცაა Windows, macOS, Linux, Solaris და სხვ..

SSH-1 vs SSH-2 vs OpenSSH

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

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

SSH: ტექნიკური დეტალები

SSH-1 ფუნქციონირებდა, როგორც ერთი ოქმები, მაგრამ ჩვენ აქ მას არ შევიტანთ, რადგან ის მოძველებულია. ამის ნაცვლად, ჩვენ ყურადღებას გავამახვილებთ SSH-2 და OpenSSH– ზე, რომლებიც ორი ცალკეული ოქმისაგან შედგება:

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

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

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

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

ტრანსპორტის პროტოკოლი

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

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

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

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

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

ალგორითმის მოლაპარაკება

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

ბაიტი SSH_MSG_KEXINIT

ბაიტი [16] cookie (შემთხვევითი ბაიტი)
სახელების სია kex_algorithms
სახელების სია server_host_key_algorithms
დაასახელეთ encryption_algorithms_client_to_server
დაასახელეთ encryption_algorithms_server_to_client
სახელების სია mac_algorithms_client_to_server
სახელების სია mac_algorithms_server_to_client
სახელების სია compression_algorithms_client_to_server
სახელების სია compression_algorithms_server_to_client
სახელთა სიის ენები_client_to_server
სახელთა სიის ენები_server_to_client
boolean first_kex_packet_ შემდეგები
uint32 0 (დაცულია მომავალი გაფართოებისთვის)

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

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

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

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

ორივე MAC ალგორითმი და შეკუმშვის ალგორითმი მოლაპარაკება ხდება იმავე გზით.

საკვანძო გაცვლა

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

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

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

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

ინტერნეტ – ინჟინერიის სამუშაო ჯგუფის (IETF) ინტერნეტპროექტის თანახმად, გაცვლითი შემდეგი ძირითადი მეთოდები განიხილება უსაფრთხო:

  • curve25519-sha256
  • curve448-sha512
  • დიფეი-ჯოჯმენ-ჯგუფი-გაცვლა-შა256
  • დიფეი-ჯოჯმენ-ჯგუფი14-sha256
  • დიფეი-ჯოჯმენ-ჯგუფი15-sha512
  • დიფეი-ჯოჯმენ-ჯგუფი16-sha512
  • diffie-Hellman-ჯგუფი17-sha512
  • დიფეი-ჯოჯმენ-ჯგუფი18-sha512
  • ecdh-sha2-nistp256
  • ecdh-sha2-nistp384
  • gss-ჯგუფი14-sha256
  • gss-group15-sha512
  • gss-group16-sha512
  • gss-ჯგუფი17-sha512
  • gss-ჯგუფი18-sha512
  • gss-nistp256-sha256
  • gss-nistp384-sha384
  • gss-nistp521-sha512
  • gss-curve25519-sha256
  • gss-curve448-sha512
  • rsa2048-sha256

სერვერის მასპინძლის საკვანძო ალგორითმი

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

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

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

  • ssh-rsa
  • ssh-rsa-sha256
  • ssh-dss
  • ssh-dss-sha256
  • x509v3-sign-dss
  • x509v3-sign-dss-sha256
  • x509v3-sign-rsa
  • x509v3-sign-rsa-sha256

დაშიფვრის ალგორითმები

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

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

MAC ალგორითმები

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

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

შეკუმშვა

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

სატრანსპორტო ოქმის პაკეტი

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

  • პაკეტის სიგრძე
  • Padding სიგრძე
  • Payload
  • ბალიში
  • შეტყობინებების ავტორიზაციის კოდი (MAC)

ssh-3

ავტორიზაციის პროტოკოლი

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

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

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

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

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

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

ავთენტიფიკაციის ოქმის პროცესი

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

ყველაზე გავრცელებული კლიენტის ავტორიზაციის მეთოდები მოიცავს:

  • საჯარო გასაღები – ამ მეთოდით იყენებენ ალგორითმებს, როგორიცაა RSA, DSA და ECDSA, კლიენტის ავთენტურობის მიზნით, საკვანძო კრიპტოგრაფიის საშუალებით. ზოგიერთი განხორციელება იყენებს x.509 სერთიფიკატს. სერვერი ამოწმებს კლიენტის ციფრულ ხელმოწერას მათი საჯარო გასაღების საწინააღმდეგოდ, რომ დაადასტუროს კლიენტის ვინაობა.
  • პაროლი – პაროლების გამოყენება ასევე შესაძლებელია კლიენტის ავტორიზაციისთვის. კლიენტი აგზავნის თავის პაროლს (რომელიც დაშიფრულია ტრანსპორტის ოქმით). თუ პაროლი ემთხვევა სერვერის შენახულ მნიშვნელობას, იგი მიიღება და ავთენტიფიკაცია წინ მიიწევს.
  • გსაფპი – ამ მეთოდით, გარე სქემები, როგორიცაა Kerberos, შეიძლება გამოყენებულ იქნას ერთჯერადი შესვლისთვის.
  • კლავიატურა ინტერაქტიული – ეს ტექნიკა უზრუნველყოფს პაროლის ერთჯერად დამოწმებას სერვერის მიერ ინფორმაციის მიწოდების შესახებ.

კავშირის პროტოკოლი

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

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

არხები

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

არხების გახსნა

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

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

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

  • ადმინისტრაციის მიერ აკრძალული
  • ვერ მოხერხდა კავშირი
  • არხის უცნობი ტიპი
  • რესურსების დეფიციტი

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

არხების დახურვა

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

SSH დაცვა

SSH- ს სხვადასხვა ვერსიას თითოეულს აქვს უსაფრთხოების საკითხები, თუმცა მიმდინარე კონფიგურაციები SSH-2 და OpenSSH ითვლება ბევრად უფრო უსაფრთხო ვიდრე SSH-1.

SSH-1

ზოგადად, SSH-1 ითვლება ხარვეზებით, სხვადასხვა სახის დაუცველობით. ეს მოიცავს შეცდომას SSH 1.5-ში, რაც უნებართვო მომხმარებლებს საშუალებას მისცემენ შეიყვანონ შინაარსი SSH მონაცემთა ნაკადში. ამ შეტევამ ისარგებლა CRC-32 ალგორითმის მიერ მონაცემთა მთლიანობის მინიმალური დაცვით.

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

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

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

SSH-2

SSH-2 დაუცველია თეორიული შეტევისას მისი დაშიფვრის სტანდარტული რეჟიმისგან, CBC. ის თავდამსხმელს საშუალებას აძლევს დაუბრუნოს დაუბეჭდავ ბლოკიდან 32 ბიტამდე ბიტს. ამის შემცირება შესაძლებელია Counter რეჟიმში (CTR) გამოყენებით და ამის ნაცვლად ბლოკის შიფრის გადაღების შიფრირებად გადაქცევა.

2014 წლის ბოლოს, Der Spiegel გაავრცელა NSA დოკუმენტები, რომელიც გულისხმობს, რომ NSA ზოგჯერ დაარღვია SSH. ამ გაჟონა NSA PowerPoint აცხადებს, რომ NSA შეუძლია “პოტენციურად აღდგება სახელები და პაროლები”, თუმცა დამატებითი დეტალები არ არის მოცემული. უცნობია, რა მეთოდებით იყენებდა სააგენტო ამის გაკეთებას, მაგრამ, როგორც ჩანს, ნაკლებად სავარაუდოა, რომ იგი საკუთარ შინაგან დოკუმენტაციაში იტყუება..

2017 წელს Vault 7- ის გაჟონვის შედეგად გაირკვა, რომ CIA– ს ორი ინსტრუმენტი ჰქონდა, რომელთა გამოყენება შესაძლებელი იყო SSH –ის შესვლისა და პაროლების მოსაწყობად. BothanSpy მიზნად ისახავს Windows Xshell კლიენტებს, ხოლო Gyrfalcon გამოიყენეს წინააღმდეგ OpenSSH კლიენტის წინააღმდეგ Linux- ის სხვადასხვა განაწილებაზე..

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

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

OpenSSH

OpenSSH ვერსიაში 2, აღმოაჩინეს შეტევა, რომელმაც ისარგებლა სისუსტით SSH ორობითი პაკეტში. შეტევამ ლონდონის უნივერსიტეტის მკვლევარებმა შესაძლებელი გახადეს 14 ბიტის ამოღება დაშიფრული ბლოკიდან. ეს გაამარტივა 5.2 გამოშვებით, რომ პროტოკოლით წაიკითხა არასწორი პაკეტის სიგრძე ან წერილის დამადასტურებელი კოდი, თუ არა კავშირის დასრულება..

6.8 და 6.9 ვერსიებში, Linux შეიძლება გამოყენებულ იქნას სხვა მომხმარებლების ტერმინალებზე თვითნებური ბრძანებების შესასრულებლად. ეს მიღწეული იყო პრივილეგიის ესკალაციის დაუცველობის შედეგად, რაც თავდამსხმელებს საშუალებას აძლევდნენ შეეტანათ პერსონაჟები TIOCSTI შეყვანის / გამოსავლის კონტროლით..

უსაფრთხოა SSH?

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

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

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

კიბერ ქსელის ტექნოლოგიის ფონი ავტორი TheDigitalArtist ლიცენზირებულია CC0

Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map