SSH-д зориулсан хоёр хүчин зүйлийн баталгаажуулалт

"Secure shell" SSH нь стандарт 22 портоор (өөрчлөх нь дээр) хостуудын хооронд аюулгүй холболт үүсгэх сүлжээний протокол юм. SSH клиентүүд болон SSH серверүүд ихэнх үйлдлийн системд байдаг. Бараг бүх сүлжээний протокол нь SSH дотор ажилладаг, өөрөөр хэлбэл та өөр компьютер дээр алсаас ажиллах, шифрлэгдсэн сувгаар аудио эсвэл видео дамжуулах гэх мэт боломжтой. Түүнээс гадна, алсын хост дээрх SOCKS проксигоор дамжуулан та энэ алсын хостын нэрийн өмнөөс бусад хостуудтай холбогдох боломжтой.

Баталгаажуулалт нь нууц үг ашиглан хийгддэг боловч хөгжүүлэгчид болон системийн администраторууд уламжлалт байдлаар SSH түлхүүрүүдийг ашигладаг. Асуудал нь хувийн түлхүүрийг хулгайлж болох явдал юм. Нууц үг нэмэх нь онолын хувьд хувийн түлхүүрийг хулгайлахаас хамгаалдаг боловч практик дээр түлхүүрүүдийг дамжуулах, кэш хийх үед тэдгээр нь баталгаажуулахгүйгээр ашиглаж болно. Хоёр хүчин зүйлийн баталгаажуулалт нь энэ асуудлыг шийддэг.

Хоёр хүчин зүйлийн баталгаажуулалтыг хэрхэн хэрэгжүүлэх вэ

Honeycomb-ийн хөгжүүлэгчид саяхан хэвлэгдсэн дэлгэрэнгүй заавар, үйлчлүүлэгч болон серверт тохирох дэд бүтцийг хэрхэн хэрэгжүүлэх.

Зааврууд нь танд интернетэд нээлттэй тодорхой үндсэн хосттой (bastion) байна гэж үздэг. Та зөөврийн компьютер эсвэл компьютерээсээ интернетээр дамжуулан энэ хосттой холбогдож, түүний ард байрлах бусад бүх төхөөрөмжид хандахыг хүсч байна. 2FA нь халдагчид таны зөөврийн компьютерт нэвтэрсэн ч, тухайлбал, хортой програм суулгаснаар үүнийг хийх боломжгүй гэдгийг баталгаажуулдаг.

Эхний сонголт бол OTP юм

OTP - нэг удаагийн дижитал нууц үг бөгөөд энэ тохиолдолд түлхүүрийн хамт SSH баталгаажуулалтад ашиглагдана. Хөгжүүлэгчид энэ нь тийм ч тохиромжтой сонголт биш гэж бичдэг, учир нь халдагч хуурамч бастион босгож, таны OTP-г таслан зогсоож, ашиглаж болно. Гэхдээ энэ нь юу ч биш байснаас дээр.

Энэ тохиолдолд серверийн талд Chef тохиргоонд дараах мөрүүдийг бичнэ.

  • metadata.rb
  • attributes/default.rb (аас.) attributes.rb)
  • files/sshd
  • recipes/default.rb (хуулбар recipe.rb)
  • templates/default/users.oath.erb

Аливаа OTP програмыг үйлчлүүлэгч тал дээр суулгасан: Google Authenticator, Authy, Duo, Lastpass, суулгасан. brew install oath-toolkit буюу apt install oathtool openssl, дараа нь санамсаргүй base16 мөр (түлхүүр) үүсгэгдэнэ. Үүнийг гар утасны баталгаажуулагч ашигладаг Base32 формат руу хөрвүүлж, програм руу шууд импортлодог.

Үүний үр дүнд та Bastion-тэй холбогдож, баталгаажуулалт хийхэд зөвхөн нэвтрэх үг төдийгүй OTP код шаардлагатай болохыг харж болно.

➜ ssh -A bastion
Enter passphrase for key '[snip]': 
One-time password (OATH) for '[user]': 
Welcome to Ubuntu 18.04.1 LTS...

Хоёр дахь сонголт бол техник хангамжийн баталгаажуулалт юм

Энэ тохиолдолд хоёрдахь хүчин зүйл нь техник хангамжийн төхөөрөмж эсвэл биометр болдог тул хэрэглэгч бүр OTP код оруулах шаардлагагүй.

Энд тогоочийн тохиргоо нь арай илүү төвөгтэй бөгөөд үйлчлүүлэгчийн тохиргоо нь үйлдлийн системээс хамаарна. Гэхдээ бүх алхмуудыг гүйцэтгэсний дараа MacOS дээрх үйлчлүүлэгчид нэвтрэх үг ашиглан SSH-д нэвтрэлт танилтыг баталгаажуулж, мэдрэгч дээр хуруугаа байрлуулж болно (хоёр дахь хүчин зүйл).

iOS болон Android эзэмшигчид нэвтрэх эрхийг баталгаажуулна ухаалаг гар утасныхаа нэг товчлуур дээр дарж болно. Энэ нь Krypt.co-ийн тусгай технологи бөгөөд OTP-ээс ч илүү аюулгүй юм.

Linux/ChromeOS дээр YubiKey USB жетонтой ажиллах сонголт байдаг. Мэдээж халдагчид таны жетоныг хулгайлж чадна, гэхдээ тэр нэвтрэх үгийг мэдэхгүй хэвээр байна.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх