การทำงานของตัวตรวจสอบชุดการเข้ารหัส TLS
ตัวตรวจสอบชุดการเข้ารหัส TLS เป็นเครื่องมือสำหรับวิเคราะห์ข้อความที่คุณระบุ เช่น ผลลัพธ์จากการสแกน TLS หรือสรุปการจับมือ (Handshake Summary) เพื่อระบุโปรโตคอลที่เจรจา ชุดการเข้ารหัส และอัลกอริธึมแบบเดิมที่ปรากฏ เครื่องมือนี้ช่วยให้คุณเข้าใจรายละเอียดของการเชื่อมต่อ TLS จากข้อความที่ป้อน โดยไม่ต้องทำการสแกนสดหรือเชื่อมต่อกับโฮสต์โดยตรง
การประมวลผลข้อมูลทั้งหมดเกิดขึ้นภายในเบราว์เซอร์ของผู้ใช้งานโดยตรง รายละเอียด TLS ที่คุณวางจะยังคงอยู่ในเบราว์เซอร์ของคุณ และไม่ได้อัปโหลดหรือบันทึกข้อมูลใดๆ ไปยังเซิร์ฟเวอร์ภายนอก
ข้อมูลนำเข้าและข้อจำกัดของระบบ
เครื่องมือนี้รองรับการวิเคราะห์ข้อมูลในรูปแบบข้อความจากการสแกนหรือการจับมือกันของโปรโตคอลความปลอดภัย โดยมีรายละเอียดและข้อจำกัดดังนี้:
- รูปแบบข้อมูลนำเข้า: ข้อความที่อ่านได้จากเครื่องสแกน TLS ทั่วไป,
openssl s_client, สรุปการวิเคราะห์แพ็กเก็ต หรือบันทึกย่อ ClientHello หรือ ServerHello เครื่องมือสามารถรับรู้ชื่อ IANA ทั่วไป, นามแฝง OpenSSL และ ID ชุดเลขฐานสิบหก (Hexadecimal Suite IDs) ทั่วไปได้ - ข้อจำกัด: ข้อมูลนำเข้าต้องมีความยาวไม่เกิน 200,000 ตัวอักษร เครื่องมือนี้ไม่รองรับไฟล์ไบนารีดิบหรือไฟล์การจับแพ็กเก็ต (Packet Capture)
- ข้อผิดพลาดที่อาจเกิดขึ้น:
- หากไม่มีการป้อนข้อมูลและกดวิเคราะห์ ระบบจะแสดงข้อความเตือนว่า "วางการสแกน TLS หรือการจับมือสรุปก่อน"
- หากข้อมูลนำเข้ามีความยาวเกินกำหนด ระบบจะแสดงข้อความเตือนว่า "บทสรุปนั้นใหญ่ผิดปกติ เก็บไว้ไม่เกิน 200,000 ตัวอักษร"
- หากไม่สามารถตรวจพบข้อมูลที่เกี่ยวข้องได้ ระบบจะแสดงข้อความเตือนว่า "ไม่พบเวอร์ชัน TLS หรือชุดการเข้ารหัส วางช่องสแกนเนอร์หรือแฮนด์เชคที่อ่านได้"
การตีความเวอร์ชันโปรโตคอลและบทบาท
เมื่อเครื่องมือวิเคราะห์ข้อความนำเข้า ระบบจะแยกแยะและแสดงผลลัพธ์ในส่วน เวอร์ชันของโปรโตคอล หากไม่พบข้อมูลเวอร์ชันใดๆ ในข้อความที่ระบุ ระบบจะแสดงข้อความว่า "ไม่พบเวอร์ชันโปรโตคอลในข้อความที่ให้มา"
สำหรับเวอร์ชันโปรโตคอลและชุดการเข้ารหัสที่ตรวจพบ เครื่องมือจะระบุบทบาทหน้าที่ตามที่ปรากฏในข้อความสรุป ได้แก่:
- เจรจาแล้ว: บทบาทของโปรโตคอลหรือชุดการเข้ารหัสที่ตกลงใช้งานร่วมกันสำเร็จ
- นำเสนอ: รายการโปรโตคอลหรือชุดการเข้ารหัสที่ส่งไปเสนอในขั้นตอนเริ่มต้น
- สังเกต: รายการพารามิเตอร์ที่ตรวจพบในระหว่างการตรวจสอบ
การประเมินความปลอดภัยของชุดการเข้ารหัส
เครื่องมือจะจัดหมวดหมู่ชุดการเข้ารหัส (Cipher Suites) ที่ตรวจพบออกเป็น 4 ระดับการประเมิน ได้แก่ ทันสมัย, รีวิว, เลิกใช้แล้ว และ ไม่ทราบ หากไม่พบชุดการเข้ารหัสใดๆ ในข้อความนำเข้า ระบบจะแสดงข้อความว่า "ไม่พบชุดการเข้ารหัสในข้อความที่ให้มา"
ผลลัพธ์การวิเคราะห์จะแสดงข้อค้นพบเกี่ยวกับความปลอดภัยและอัลกอริธึมที่ล้าสมัยดังต่อไปนี้:
| อัลกอริธึม / ชุดการเข้ารหัส | ข้อค้นพบที่ระบบแสดงผล |
|---|---|
| RC4 | RC4 เลิกใช้แล้ว และต้องไม่มีการเจรจา |
| DES | DES ไม่ปลอดภัยสำหรับการใช้งาน TLS ทั่วไป |
| 3DES | 3DES มีขนาดบล็อกเล็ก และเลิกใช้แล้วสำหรับ TLS |
| NULL | การเข้ารหัส NULL ไม่ได้จัดให้มีการรักษาความลับ |
| EXPORT | ชุด EXPORT มีเจตนาใช้การเข้ารหัสที่ไม่รัดกุมและเลิกใช้งานแล้ว |
| Anonymous | ชุดโปรแกรมที่ไม่เปิดเผยตัวตนจะไม่ตรวจสอบความถูกต้องของเพียร์และเสี่ยงต่อการถูกสกัดกั้น |
| MD5 | MD5 ไม่ปลอดภัยสำหรับการใช้งาน TLS ทั่วไป |
| SHA-1 | ชุดนี้ใช้ SHA-1 ซึ่งเลิกใช้งานแล้วสำหรับการใช้งาน TLS ทั่วไป |
| CBC | ชุด CBC เป็นรุ่นเก่า ต้องการชุด AEAD เช่น AES-GCM หรือ ChaCha20-Poly1305 |
| Static RSA | การแลกเปลี่ยนคีย์ RSA แบบคงที่ไม่ได้จัดให้มีการส่งต่อความลับ |
| CCM-8 | CCM-8 ใช้แท็กการตรวจสอบสิทธิ์ที่สั้นกว่าและต้องการการตรวจสอบเฉพาะโปรโตคอล |
| ชุดการเข้ารหัสที่ไม่รู้จัก | ชุดนี้ไม่ได้อยู่ในแผนที่ชุดทั่วไปที่มีอยู่แล้วภายใน ตรวจสอบเอกสารการลงทะเบียนหรือสแกนเนอร์ IANA ปัจจุบัน |
ความแตกต่างในโปรโตคอล TLS 1.3
การวิเคราะห์ชุดการเข้ารหัสในเวอร์ชัน TLS 1.3 มีความแตกต่างอย่างมีนัยสำคัญจากเวอร์ชันก่อนหน้า สำหรับชุดการเข้ารหัสของ TLS 1.3 ระบบจะแสดงข้อค้นพบว่า "TLS 1.3 เจรจาการแลกเปลี่ยนคีย์และการรับรองความถูกต้องแยกจากชุดการเข้ารหัส"
เนื่องจากในโปรโตคอล TLS 1.3 กระบวนการแลกเปลี่ยนคีย์ (Key Exchange) และการรับรองความถูกต้อง (Authentication) จะถูกเจรจาแยกต่างหากจากชุดการเข้ารหัสบันทึก (Record Cipher Suite) ทำให้ไม่สามารถอนุมานกลไกการแลกเปลี่ยนคีย์หรือการรับรองความถูกต้องจากชื่อชุดการเข้ารหัสเพียงอย่างเดียวได้
คำถามที่พบบ่อย (FAQ)
ถาม: ฉันสามารถวางรูปแบบเอาต์พุต TLS ใดได้บ้าง ตอบ: วางข้อความจากเครื่องสแกน TLS ทั่วไป, openssl s_client, สรุปการวิเคราะห์แพ็กเก็ต หรือบันทึกย่อ ClientHello หรือ ServerHello สั้นๆ ตัวตรวจสอบรู้จักชื่อ IANA ทั่วไป นามแฝง OpenSSL และ ID ชุดเลขฐานสิบหกทั่วไปหลายรายการ มันไม่ได้ถอดรหัสไบต์ของแพ็กเก็ตดิบ
ถาม: เหตุใดชุดการเข้ารหัส TLS 1.3 จึงไม่แสดง RSA หรือ ECDHE ตอบ: ชื่อชุดการเข้ารหัส TLS 1.3 อธิบายการเข้ารหัสบันทึกและแฮชแฮนด์เชค การแลกเปลี่ยนคีย์และการรับรองความถูกต้องจะมีการเจรจาแยกกัน ดังนั้นจึงไม่สามารถอนุมานได้จากชื่อชุดโปรแกรมเพียงอย่างเดียว
ถาม: ผลลัพธ์นี้พิสูจน์ได้ว่าเซิร์ฟเวอร์มีความปลอดภัยหรือไม่? ตอบ: ไม่ โดยจะอธิบายเฉพาะข้อความที่คุณวางเท่านั้น มันไม่ได้เชื่อมต่อกับโฮสต์ ตรวจสอบใบรับรอง วัดขนาดคีย์ ทดสอบพฤติกรรมดาวน์เกรด หรือแสดงทุกชุดที่เซิร์ฟเวอร์ยอมรับ