- tinysshd เป็นเซิร์ฟเวอร์ SSH แบบมินิมัลที่รองรับเพียงบางส่วนของความสามารถ SSHv2
- รองรับความปลอดภัยอย่างน้อย 128 บิต และรองรับเฉพาะการเข้ารหัสที่ปลอดภัยซึ่งป้องกันการโจมตีแบบ cache-timing
- ไม่ได้รองรับการเข้ารหัสรุ่นเก่าอย่าง RSA, DSA, HMAC-MD5, HMAC-SHA1, 3DES, RC4 เป็นต้น
- ไม่ได้รองรับความสามารถที่ไม่ปลอดภัย เช่น การยืนยันตัวตนด้วยรหัสผ่านหรือการยืนยันตัวตนแบบอิงโฮสต์
- ไม่รองรับความสามารถอย่างโปรโตคอล SSH1, การบีบอัด, การส่งต่อพอร์ต, การส่งต่อเอเจนต์, การส่งต่อ X11 เป็นต้น
- ไม่ใช้การจัดสรรหน่วยความจำแบบไดนามิก จึงไม่มีปัญหาอย่างการจัดสรรล้มเหลว
ความสามารถพื้นฐานด้านคริปโตกราฟี
- เทคโนโลยีการเข้ารหัสสมัยใหม่: ssh-ed25519, curve25519-sha256, chacha20-poly1305@openssh.com
- มาตรฐานก่อนหน้า (ถูกถอดออกในเวอร์ชัน 20190101): ecdsa-sha2-nistp256, ecdh-sha2-nistp256, aes256-ctr, hmac-sha2-256
- การเข้ารหัสที่เตรียมพร้อมรับยุคคอมพิวเตอร์ควอนตัม: sntrup761x25519-sha512@openssh.com, chacha20-poly1305@openssh.com
ไทม์ไลน์ของโครงการ
- ระยะทดลอง (ปี 2014): มีไว้เพื่อการทดลอง
- ระยะอัลฟา (ปี 2015-2017): ยังไม่เหมาะกับสภาพแวดล้อมโปรดักชัน แต่พร้อมสำหรับการทดสอบ
- ระยะเบตา (ตั้งแต่ปี 2018 ถึงปัจจุบัน): เหมาะสำหรับใช้งานในโปรดักชัน
- ระยะเสถียร: คาดว่าจะเหมาะสำหรับสภาพแวดล้อมโปรดักชัน รวมถึงรองรับการเข้ารหัสที่เตรียมพร้อมรับยุคคอมพิวเตอร์ควอนตัม
รีลีสปัจจุบัน (20240101)
- โค้ดมีขนาด 63899 คำ
- อยู่ในสถานะเบตารีลีส
วิธีการรัน
- TCPSERVER:
tcpserver -HRDl0 0.0.0.0 22 /usr/sbin/tinysshd -v /etc/tinyssh/sshkeydir &
- BUSYBOX:
busybox tcpsvd 0 22 tinysshd -v /etc/tinyssh/sshkeydir &
- INETD: เพิ่ม
ssh stream tcp nowait root /usr/sbin/tinysshd tinysshd -l -v /etc/tinyssh/sshkeydir ลงในไฟล์ /etc/inetd.conf
- SYSTEMD: ตั้งค่าและรันบริการผ่านไฟล์
tinysshd.socket และ tinysshd@.service
ความเห็นของ GN⁺
- tinysshd เป็นเซิร์ฟเวอร์ SSH ที่มีความสามารถขั้นต่ำ โดยมีการออกแบบที่เน้นความปลอดภัยเป็นจุดเด่น ซึ่งมีข้อดีคือเบาเพราะไม่มีความสามารถส่วนเกิน และอาจมีช่องโหว่ด้านความปลอดภัยน้อยกว่า
- เนื่องจากเซิร์ฟเวอร์ SSH เป็นองค์ประกอบสำคัญของความปลอดภัยเครือข่าย แนวทางแบบมินิมัลอย่าง tinysshd จึงอาจมีประโยชน์อย่างยิ่งในสภาพแวดล้อมที่ให้ความสำคัญกับความปลอดภัย
- อย่างไรก็ตาม สำหรับผู้ใช้บางราย การไม่มีความสามารถขั้นสูงอย่างการส่งต่อพอร์ตหรือการส่งต่อ X11 อาจเป็นข้อเสีย
- การรองรับการเข้ารหัสที่เตรียมพร้อมรับยุคคอมพิวเตอร์ควอนตัมเป็นแนวทางที่มองไปข้างหน้า และสะท้อนถึงความใส่ใจด้านความปลอดภัยและการอัปเดตอย่างต่อเนื่อง
- โครงการโอเพนซอร์สอื่นที่ให้ความสามารถคล้ายกันคือ OpenSSH ซึ่งมีความสามารถมากกว่า แต่ก็ซับซ้อนกว่าและมีประเด็นด้านความปลอดภัยที่ต้องดูแลมากกว่า
- เมื่อนำ tinysshd มาใช้งาน ควรพิจารณาว่าข้อจำกัดด้านความสามารถสอดคล้องกับความต้องการของโครงการหรือไม่ โดยข้อดีที่ได้คือความเรียบง่ายและความปลอดภัยที่เข้มแข็งขึ้น ส่วนข้อเสียคือการไม่มีความสามารถขั้นสูงบางอย่าง
1 ความคิดเห็น
ความเห็นจาก Hacker News
กรณีใช้งานของ TinySSH:
dm-crypt/LUKSและ ZFS บนเซิร์ฟเวอร์ NAS แบบ headlessลิงก์ที่เกี่ยวข้องกับ TinySSH:
ความเห็นเกี่ยวกับปริมาณโค้ดของ TinySSH:
ขอบเขตการรองรับของ TinySSH:
ed25519-skความสามารถในการตรวจสอบโค้ดของ TinySSH:
คำถามเกี่ยวกับความแตกต่างระหว่าง TinySSH กับ Dropbear SSH
ความเห็นเกี่ยวกับการแทนที่ OpenSSH:
คำชื่นชมต่อผลงานของผู้พัฒนา TinySSH:
ฟีเจอร์ด้านความปลอดภัยของ TinySSH: