“Secure Shell” SSH เป็นโปรโตคอลเครือข่ายสำหรับสร้างการเชื่อมต่อที่ปลอดภัยระหว่างโฮสต์ ตามมาตรฐานบนพอร์ต 22 (ซึ่งควรเปลี่ยนดีกว่า) ไคลเอนต์ SSH และเซิร์ฟเวอร์ SSH พร้อมใช้งานสำหรับระบบปฏิบัติการส่วนใหญ่ โปรโตคอลเครือข่ายอื่น ๆ เกือบทั้งหมดทำงานได้ภายใน SSH นั่นคือคุณสามารถทำงานจากระยะไกลบนคอมพิวเตอร์เครื่องอื่น ส่งสตรีมเสียงหรือวิดีโอผ่านช่องทางที่เข้ารหัส ฯลฯ นอกจาก,
การรับรองความถูกต้องเกิดขึ้นโดยใช้รหัสผ่าน แต่นักพัฒนาและผู้ดูแลระบบมักจะใช้คีย์ SSH ปัญหาคือคีย์ส่วนตัวสามารถถูกขโมยได้ การเพิ่มข้อความรหัสผ่านในทางทฤษฎีจะป้องกันการโจรกรรมคีย์ส่วนตัว แต่ในทางปฏิบัติ เมื่อทำการส่งต่อและแคชคีย์
วิธีการใช้การรับรองความถูกต้องด้วยสองปัจจัย
นักพัฒนาจาก Honeycomb เพิ่งเผยแพร่
คำแนะนำจะถือว่าคุณมีโฮสต์พื้นฐานบางตัวที่เปิดสู่อินเทอร์เน็ต (ป้อมปราการ) คุณต้องการเชื่อมต่อโฮสต์นี้จากแล็ปท็อปหรือคอมพิวเตอร์ผ่านทางอินเทอร์เน็ต และเข้าถึงอุปกรณ์อื่นๆ ทั้งหมดที่อยู่ด้านหลังโฮสต์นี้ 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 ทุกครั้ง เนื่องจากปัจจัยที่สองจะกลายเป็นอุปกรณ์ฮาร์ดแวร์หรือไบโอเมตริกซ์
ที่นี่การกำหนดค่า Chef จะซับซ้อนกว่าเล็กน้อย และการกำหนดค่าไคลเอนต์จะขึ้นอยู่กับระบบปฏิบัติการ แต่หลังจากทำตามขั้นตอนทั้งหมดแล้ว ไคลเอนต์บน MacOS จะสามารถยืนยันการรับรองความถูกต้องใน SSH โดยใช้ข้อความรหัสผ่านและวางนิ้วบนเซ็นเซอร์ (ปัจจัยที่สอง)
เจ้าของ iOS และ Android ยืนยันการเข้าสู่ระบบ
บน Linux/ChromeOS มีตัวเลือกให้ทำงานกับโทเค็น YubiKey USB แน่นอนว่าผู้โจมตีสามารถขโมยโทเค็นของคุณได้ แต่เขาก็ยังไม่รู้ข้อความรหัสผ่าน
ที่มา: will.com