หากจะพูดถึง Server ที่มีการใช้ TLS/SSL ที่ได้รับความนิยมและเราคุ้นเคยกันมากที่สุดก็คงไม่พ้น HTTPS Server แต่ในที่นี้เราจะใช้คำว่า TLS/SSL Server นั้นเป็นเพราะว่าพยายามไม่ผูกมัดการทดสอบกับ Protocol ใดๆ เน้นการตรวจสอบ TLS/SSL Server ที่ให้บริการเหล่านั้นมากกว่าครับ
การเข้ารหัสโดยใช้ SSL/TLS Encryption ใช้เพื่อทำการเข้ารหัส network traffic ที่ใช้ในการคุยกันไม่ว่าจะเป็นผ่านช่องทาง Web, Email, Instant Messaging(IM) และอื่นๆ
โดย testssl.sh คือเครื่องมือที่จะใช้ในการทดสอบและตรวจสอบรายละเอียดการให้บริการต่างๆของ SSL/TLS Server โดยวิธีการติดตั้ง testssl.sh สามารถติดตั้งได้โดยใช้คำสั่ง
1 |
git clone https://github.com/drwetter/testssl.sh.git |
โดย testssl.sh มี option มากมายให้เลือกใช้
หากต้องการทดสอบทุกๆอย่าง ไม่ว่าจะเป็น cipher, protocol, cipher suites, TLS/SSL Protocol, SPDY, HTTP/2.0, Certificate info, Header, ช่องโหว่ที่มีการประกาศทั้ง BREACH, Heartbleed, CRIME และอื่นๆ สามารถใช้คำสั่งได้เป็น
1 |
testssl -e -E -f -p -y -Y -S -P -c -H -U TARGET |
เช่น
1 |
testssl -e -E -f -p -y -Y -S -P -c -H -U www.techsuii.com |
หากต้องการให้ output ของผลลัพธ์ออกมาเป็น HTML Format ให้ใช้เป็น (อย่าลืมติดตั้ง aha ก่อนนะครับ)
1 |
testssl -e -E -f -p -y -Y -S -P -c -H -U www.techsuii.com | aha output.html |
หากต้องการ scan แบบ multiple host จะใช้คำสั่งเป็น
1 |
testssl -e -E -f -p -y -Y -S -P -c -H -U 192.168.1.0/24 |
เราสามารถทดสอบแบบแยกช่องโหว่ได้เช่นกัน เช่น
หากต้องการทดสอบ Heartbleed ให้ใช้คำสั่งเป็น
1 |
testssl -B TARGET_Host |
หากต้องการตรวจสอบในแต่ละช่องโหว่หรือรายละเอียดเพิ่มเติม สามารถดูได้ที่ https://www.aptive.co.uk/blog/tls-ssl-security-testing/