15 คะแนน โดย davespark 2026-02-23 | 7 ความคิดเห็น | แชร์ทาง WhatsApp

จากงานวิจัยของบริษัทด้านความปลอดภัย Irregular มีการชี้ให้เห็นว่ารหัสผ่านที่สร้างโดย LLM (โมเดลภาษาขนาดใหญ่) รุ่นใหม่อย่าง Claude, ChatGPT, Gemini แม้ภายนอกจะดูแข็งแกร่งมาก แต่ในความเป็นจริงกลับเปราะบางอย่างยิ่ง

ผลการทดลองสำคัญ

  • ขอให้แต่ละโมเดล “สร้างรหัสผ่านให้หน่อย” ซ้ำ 50 ครั้ง
  • Claude Opus 4.6: จาก 50 ครั้ง มีถึง 18 ครั้ง ที่ได้รหัสผ่านเดียวกันคือ G7$kL9#mQ2&xP4!w (ซ้ำ 36%) และมีรหัสผ่านที่ไม่ซ้ำกันเพียง 30 ชุด
  • แต่ละโมเดลมีความชอบด้านแพตเทิร์นอย่างชัดเจน
    • Claude → เริ่มด้วย 'G' + ตัวที่สองเป็น '7'
    • ChatGPT → เริ่มด้วย 'v'
    • Gemini → เริ่มด้วย 'k' หรือ 'K'
  • แม้จะปรับอุณหภูมิ (temperature) ระหว่าง 0.0~1.0 ก็แทบไม่เปลี่ยนแปลง (ถ้าเป็น 0.0 ทั้ง 50 ครั้งจะได้รหัสผ่านเดียวกันทั้งหมด)

ภาพลวงตาของเอนโทรปี (ความสุ่ม)

  • เครื่องมืออย่าง KeePass ประเมินว่าเป็น “เอนโทรปีประมาณ 100 บิต แข็งแกร่งมาก”
    → ดูเหมือนต้องใช้เวลาหลายพันล้านปี แม้ใช้ซูเปอร์คอมพิวเตอร์ก็ตาม
  • แต่เมื่อคำนวณ Shannon entropy จริง ๆ แล้ว รหัสผ่านที่ Claude สร้างมีเพียงระดับ 27 บิต
    → เป็นรหัสผ่านอ่อนแอที่คอมพิวเตอร์ทั่วไปอาจถอดได้ภายในไม่กี่วินาที
  • ตัวอย่าง GPT-5.2: อักขระตำแหน่งที่ 15 มีโอกาสเป็นตัวเลข '2' สูงถึง 99.7% (แทบจะตายตัว)

ทำไม LLM จึงไม่เหมาะกับการสร้างรหัสผ่าน?

  • รหัสผ่านที่แข็งแกร่งจริงต้องสร้างด้วย CSPRNG (ตัวสร้างเลขสุ่มที่ปลอดภัยเชิงเข้ารหัส) โดยให้อักขระทุกตัวมี ความน่าจะเป็นเท่ากัน
  • แต่ LLM ถูกฝึกมาให้ทำนาย โทเคนถัดไปที่น่าจะเป็นไปได้มากที่สุด → ทำให้ความสามารถในการคาดเดาสูงขึ้น
  • → ดังนั้นต่อให้เขียนพรอมป์ต์ดีหรือปรับอุณหภูมิ ก็ไม่สามารถแก้ปัญหานี้ได้ในระดับรากฐาน (ตามข้อสรุปของ Irregular)

ปัญหาที่ใหญ่กว่า: ความเสี่ยงจาก AI coding agent

  • Claude Code, Gemini-CLI, Codex ฯลฯ อาจ ฮาร์ดโค้ดรหัสผ่านที่เปราะบาง ลงในโค้ด
    ตัวอย่าง: MariaDB, PostgreSQL, คีย์ API ของ FastAPI เป็นต้น
  • ถ้าถามว่า “ช่วยสร้างรหัสผ่านให้หน่อย” → มักจะแนะนำวิธีที่ปลอดภัยอย่าง openssl rand
    แต่ถ้าถามว่า “ช่วยแนะนำรหัสผ่านหน่อย” → LLM อาจแทรกรหัสผ่านแบบมีแพตเทิร์นที่มันสร้างขึ้นลงไปทันที
  • เมื่อลองค้นหาแพตเทิร์นอย่าง K7#mP9, k9#vL บน GitHub ก็พบในรีโพซิทอรีจริงจำนวนมาก

บทสรุป

  • LLM สร้างรหัสผ่านที่ “ดูแข็งแกร่ง” ได้ดี แต่ ความปลอดภัยที่แท้จริง ไม่ได้ขึ้นกับรูปลักษณ์ภายนอก แต่อยู่ที่ เอนโทรปีจริงและความสุ่ม
  • ด้วยการออกแบบที่เน้นการคาดเดาของ LLM จึงทำให้มันไม่เหมาะกับการสร้างรหัสผ่านในเชิงโครงสร้าง และยิ่งหากเครื่องมือเขียนโค้ดด้วย AI นำรหัสผ่านแบบนี้ไปฝังในโค้ด ก็อาจทำให้ช่องโหว่ด้านความปลอดภัยแพร่กระจายอย่างเงียบ ๆ ในกระบวนการพัฒนาแบบอัตโนมัติ

https://aisparkup.com/posts/9480

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

 
click 2026-02-23

ถ้าสั่ง openssl rand -hex 64 ก็น่าจะทำได้ดีอยู่แล้ว จำเป็นต้องให้ LLM สร้างรหัสผ่านขึ้นมาเองจริง ๆ เหรอ...?
ต่อให้บอกให้คนสร้างรหัสผ่านเอง ก็ยังมักจะทำออกมาในแบบที่มีแพตเทิร์นบางอย่างเพื่อให้ตัวเองจำได้ง่ายอยู่ดีนั่นแหละ

 
davespark 2026-02-23

สำหรับนักพัฒนาก็คงไม่ได้มีปัญหาอะไรมากนัก แต่ช่วงนี้พอมีการเขียนโค้ดแบบ vibe coding คนทั่วไปก็เขียนโค้ดกันเยอะขึ้น เลยรู้สึกว่าค่าเริ่มต้นที่ถูกฝังเข้ามาในโค้ดโดยอัตโนมัตินี่แหละน่าจะเป็นปัญหามากกว่า อย่างเช่นรหัสผ่านสำหรับเชื่อมต่อ DB อะไรทำนองนั้น..

 
click 2026-02-23

พอมาคิดดูว่าเราเห็นกรณีที่มีการนำเว็บเซอร์วิสขึ้นใช้งานแน่นอนแล้ว แต่กลับเปิดให้เข้าถึงไฟล์สำคัญอย่าง .env ได้จากเครือข่ายภายนอกอยู่บ่อย ๆ เหมือนกัน...
ถ้าทำเว็บเซอร์วิสด้วย OpenClaw แบบไม่รู้เรื่องรู้ราว แล้วดันฝังคีย์ไว้ตรง ๆ ในซอร์ส HTML ก็อาจเกิดกรณีที่คีย์ถูกขโมยไป แล้วจู่ ๆ ก็มีบิลเรียกเก็บโผล่มาได้เหมือนกันนะ

 
holywork 2026-03-01

มนุษย์เองก็เลือกสิ่งที่สุ่มอย่างแท้จริงได้ไม่เก่งนัก เพราะสิ่งที่ควรไม่มีรูปแบบนั้น แม้แต่การจงใจหลีกเลี่ยงรูปแบบก็อาจนับเป็นรูปแบบอย่างหนึ่งได้เช่นกัน

 
roxie 2026-02-25

> Claude Opus 4.6: 18 ครั้งจาก 50 ครั้ง

ผมสงสัยมากว่าทำไม Claude code ถึงไม่สร้างสตริงแบบสุ่ม

 
mammal 2026-02-23

อา... ตอนนี้ถึงเข้าใจแล้วว่าทำไมอาจารย์ที่ต้องกลับมาสอนแคลคูลัสให้นักศึกษาวิศวะปี 1 ถึงทำหน้าแบบนั้นกัน

 
jayhanx 2026-02-23

แงง นี่มันหนักไปหน่อยนะ