1 ความคิดเห็น

 
GN⁺ 2025-03-16
ความคิดเห็นจาก Hacker News
  • การทำ SAML ของ GitHub ใช้งานแทบไม่ได้

    • แนวคิดที่ให้ผู้ใช้นำบัญชีของตัวเองเข้ามาใช้กับองค์กรนั้นพอใช้ได้ในระดับตัวเว็บไซต์เอง แต่ไม่ได้ป้องกันการอ่านข้อมูลสมาชิกองค์กรเมื่อแอปล็อกอินผ่าน GitHub
    • เซสชัน SAML จำเป็นก็ต่อเมื่อมีการดึงข้อมูลผ่านโทเค็นที่ผู้ใช้ได้รับเท่านั้น
    • เครื่องมือ SAST แทบจะใช้โทเค็นของอินสแตนซ์แอปเสมอ และแสดงโค้ดให้ใครก็ตามที่มีบัญชี GitHub
    • Tailscale แก้ปัญหานี้แล้ว แต่ Sonarcloud ขอให้เก็บเป็นความลับ และ GitHub ตอบกลับหลังจากนั้นไม่กี่สัปดาห์ว่าพฤติกรรมนี้เป็นสิ่งที่คาดไว้แล้ว
    • การรายงานบั๊กด้านความปลอดภัยเป็นงานที่แทบไม่ได้รับคำขอบคุณ
  • เพิ่งต้องทำ SAML เมื่อไม่นานมานี้ และพาดหัวนี้ไม่น่าแปลกใจเลย

    • ตัวสเปก SAML เองถือว่าสมเหตุสมผล แต่เพราะอิงกับ XML signatures และ XML canonicalization จึงซับซ้อนมาก
    • มีแต่คณะกรรมการเท่านั้นที่สามารถจับแนวคิดที่ขัดแย้งกันแบบนี้มารวมกันได้
  • SAML (และในภาพกว้างคือ XML-DSIG) เป็นโปรโตคอลความปลอดภัยที่แย่ที่สุดในบรรดาที่ใช้งานกันทั่วไป

    • ควรทำทุกวิถีทางที่จำเป็นเพื่อย้ายไปใช้ OAuth
    • ถ้าจะออกผลิตภัณฑ์ใหม่สู่ตลาด ก็จะไม่ทำให้มันต้องพึ่งสิ่งนี้
    • ถ้าไม่มีความก้าวหน้าครั้งใหญ่ด้านการตรวจพิสูจน์เชิงรูปแบบ ช่องโหว่ของ DSIG ก็คงไม่ใช่อันสุดท้ายหรืออันที่แย่ที่สุด
  • ไม่ควรใช้ REXML

    • มันยอมพาร์ส XML ที่ผิดรูปได้อย่างเต็มใจ และก่อปัญหาได้ไม่รู้จบ
    • การใช้ regular expression เพื่อพาร์ส XML เป็นตัวอย่างที่ผิด
    • โปรเจ็กต์ต่าง ๆ ไม่ได้ใช้ Nokogiri เพราะประสิทธิภาพ แต่ใช้เพราะความถูกต้อง
  • เป็นบทความที่ยอดเยี่ยม

    • ขอบคุณ ahacker1 สำหรับงานด้านความปลอดภัยของการทำ SAML
    • WorkOS ได้เขียนบทความเกี่ยวกับความร่วมมือกับ ahacker1
  • พบช่องโหว่ใน GitLab และได้แจ้งทีมความปลอดภัยแล้ว

    • GitLab แก้ไขเรื่องนี้แล้ว
  • บทความปี 2019 ของ Latacora ว่าด้วยวิธีเซ็นลายเซ็นอ็อบเจ็กต์ JSON

    • การซ้อนทรีและเซ็นกำกับนั้นทำได้ยาก
    • การเก็บข้อความเป็น raw string แล้วค่อยเซ็นกำกับทำได้ง่ายกว่า
  • ข้อสรุปที่ง่ายกว่าคือการหาตำแหน่งที่ควรมีลายเซ็น

    • ไม่ควรใช้ XPath แบบทั่วไปที่ค้นหาลายเซ็นในตำแหน่งที่ไม่คาดคิด
  • การอธิบายช่องโหว่ในบล็อกโพสต์แต่ละเว้นความแตกต่างของพาร์เซอร์ที่เกี่ยวข้องไว้นั้นน่าหงุดหงิด

    • มันเหมือนเขียนบทนำของเรื่องไว้แล้วตัดฉากไคลแมกซ์ทิ้ง
  • เพิ่งได้อ่านรายละเอียดทางเทคนิคของ XML signatures เป็นครั้งแรก แล้วรู้สึกมึนหัว

    • สงสัยว่ามีเหตุผลที่ไม่ใช่เรื่องระบบเดิมค้างเก่าหรือไม่ ที่ไม่ใช้การเข้ารหัสยืนยันตัวตนด้วยกุญแจสาธารณะของ libsodium (crypto_box) แทน SAML
    • สงสัยว่าเมื่อใช้ crypto_box ของ libsodium และ x/crypto/nacl/box ของ Golang จะมีความเสี่ยงจากความแตกต่างของพาร์เซอร์ที่ไม่ใช่แค่ในทางทฤษฎีหรือไม่