ไลบรารี SSL กลายเป็นจุดโจมตีสำคัญนับแต่ ช่องโหว่ Heartbleed เป็นต้นมา ก็มีความพยายามแยกสายการพัฒนาออกมาเป็น LibreSSL โดยทีมงาน OpenBSD หรือ BoringSSL ของกูเกิล ตอนนี้มีโครงการใหม่ในชื่อ BearSSL
BearSSL มีนักพัฒนาหลักคือ Thomas Pornin โปรแกรมเมอร์ด้านวิทยาการเข้ารหัสลับ (เขาเป็น ผู้ใช้ระดับ top 0.03% ของ Security StackExchange ) โดยมีแนวทางคือการรักษาความเรียบง่ายเพื่อให้มีความปลอดภัยสูงสุด ฟีเจอร์หลักๆ เช่น
- ไม่มีการจัดการหน่วยความจำแบบ dynamic: ตัวไลบรารีไม่มีการใช้ฟังก์ชั่น
malloc
แม้แต่ครั้งเดียว ฟังก์ชั่นสำหรับการทำงานกับหน่วยความจำมีเพียงmemcpy
,memmove
, และmemcmp
รวมถึงstrlen
- ฟังก์ชั่นเข้ารหัสใช้เวลาคงที่: ป้องกันการโจมตีแบบ side-channel ด้วยการกำหนดให้ฟังก์ชั่นเข้ารหัสต้องใช้เวลาคงที่เสมอ ไม่ว่าจะเป็นกระบวนการแลกกุญแจ RSA, ECDH, ECDHE หรือการเข้ารหัส AES และ 3DES
- รองรับการเชื่อมต่อแบบฝังกุญแจสาธารณะ: สำหรับอุปกรณ์ขนาดเล็ก แทนที่จะใช้กระบวนการเชื่อมต่อที่มีการตรวจสอบจาก CA ฟีเจอร์นี้ทำให้สามารถคอมไพล์ BearSSL โดยไม่มีฟังก์ชั่นการตรวจสอบใบรับรอง X.509 เลยแม้แต่น้อย
ตอนนี้สถานะการพัฒนายังเป็นเวอร์ชั่น 0.1 อยู่ คงต้องดูกันต่อไปว่า BearSSL จะได้รับความนิยมขึ้นมาในอนาคตหรือไม่
ที่มา - The Register , BearSSL
Comments
จะใช้ array แทน malloc หรือปล่าวนี่ครับแบบนี้ เห็นมี strlen ด้วย
ไม่มี malloc แล้วปลอดภัยขึ้นยังไง ใครช่วยอธิบายที
น่าจะลด dangling pointer ไปเลย ทำให้ผลกระทบจาก buffer overflow ลดลงอย่างมาก เพราะมันจะไม่ไปชี้สุ่มๆ อีกต่อไป
ฟังก์ชันเข้ารหัสที่จะต้องใช้เวลาคงที่ดูเหมือนเป็นสิ่งที่ must have ของ cryptographic library อยู่แล้วเลยนะครับ :P