Lecture 2 — Security Components
ระบบแบบไหนถึงเรียกว่าปลอดภัย คาบนี้แยกคำว่า security ออกจาก privacy แล้วชี้ว่าระบบที่ปลอดภัยต้องมีชิ้นส่วนอะไรครบบ้าง
เลกเชอร์ 2 · อ่าน 22 นาที · เรียบเรียงจากสไลด์ Chapter 2 ของ Krerk Piromsopa, Ph.D.
ระบบที่ปลอดภัยต้องตอบได้ครบสามคำถาม คือ คุณเป็นใคร (Authentication), คุณมีสิทธิ์ทำสิ่งนี้ไหม (Authorization) และ คุณทำอะไรไปบ้าง (Accounting) ขาดข้อใดข้อหนึ่งคือไม่ปลอดภัยแน่นอน แต่มีครบทั้งสามข้อก็ยังไม่ได้แปลว่าปลอดภัย
เนื้อหามาจากสไลด์ Chapter 2 หน้า 1–19 ของไฟล์ Lecture-2,3.pdf คำนิยาม ข้อความที่ยกมาในเครื่องหมายคำพูด และตัวอย่างทั้งหมดมาจากสไลด์จริง ส่วนคำอธิบาย รูป และกล่องที่ติดป้าย "เสริม" เขียนขึ้นใหม่เพื่อให้คนที่ไม่มีพื้นฐานอ่านรู้เรื่อง
สไลด์ระบุวันแก้ไขล่าสุดไว้ว่า Aug 12, 2025
คาบนี้จะพาไปไหน
| คำถาม | คำตอบอยู่ที่ |
|---|---|
| Security กับ Privacy ต่างกันตรงไหน | ส่วนที่ 1 |
| ระบบที่ปลอดภัยในชีวิตจริงมีอะไรบ้าง | ส่วนที่ 2 |
| ชิ้นส่วนสามอย่างที่ขาดไม่ได้ | ส่วนที่ 3 |
| อะไรที่ต้องมีเพิ่มนอกจากสามอย่างนั้น | ส่วนที่ 4 |
| แล้วสรุปว่าอย่างไรถึงเรียกว่าปลอดภัย | ส่วนที่ 5 |
ส่วนที่ 1 — Security กับ Privacy ไม่ใช่เรื่องเดียวกัน
Security is the first cause of misfortune.
— Old German Proverb (สุภาษิตเยอรมันโบราณ)
สองคำนี้มักถูกพูดคู่กัน แต่คนละความหมาย
ทั้งสองคำ ต้องการสิ่งเดียวกันคือการควบคุมการเข้าถึงข้อมูล แต่ถามคนละคำถาม
- Security (ความมั่นคงปลอดภัย) — "Who can do what when?" ใครทำอะไรได้ เมื่อไหร่
- Privacy (ความเป็นส่วนตัว) — อิสระที่จะควบคุมการเข้าถึงข้อมูลส่วนตัวของเราเอง
ถ้าเราแยกสองคำนี้ไม่ออก เราจะแก้ปัญหาผิดจุด ปัญหา security แก้ด้วยการทำระบบให้แข็งขึ้น เช่น ใส่รหัสผ่าน จำกัดสิทธิ์ เก็บ log ส่วนปัญหา privacy แก้ด้วยการให้เจ้าของข้อมูลเป็นคนเลือกเองว่าจะให้ใครรู้อะไร ระบบที่แข็งมากแต่เอาข้อมูลของเราไปใช้โดยเราไม่รู้ตัว คือระบบที่ security ดีแต่ privacy แย่
เหตุการณ์เดียว คำตอบสองแบบ
ลองคิดกับสถานการณ์นี้ก่อนอ่านเฉลย
hacker เจาะระบบคอมพิวเตอร์ได้สำเร็จ แล้วรู้ว่าคนคนหนึ่งเป็นคนรักเพศเดียวกัน หรือกำลังป่วยด้วยโรคร้ายแรง
เฉลยคือ
- เป็นปัญหา security แน่นอน เพราะมีคนเข้าถึงระบบได้ทั้งที่ไม่ควรเข้าได้
- จะเป็นปัญหา privacy หรือไม่ ยังตอบไม่ได้ คำตอบคือ may or may not be Privacy
ลองตอบดู: ทำไมเรื่องเดียวกันถึงเป็นปัญหา security แน่ ๆ แต่เป็นปัญหา privacy แค่ 'อาจจะ'
เพราะ security วัดที่ตัวระบบ ไม่ว่าเจ้าของข้อมูลจะคิดยังไง การที่คนนอกเข้าระบบได้ก็คือระบบพัง
ส่วน privacy วัดที่ เจตนาของเจ้าของข้อมูล ถ้าคนคนนั้นเปิดเผยเรื่องนี้ต่อสาธารณะอยู่แล้ว การที่ hacker รู้ก็ไม่ได้ทำให้เขาเสียความเป็นส่วนตัวอะไรเพิ่ม หลักที่ใช้ตัดสินคือ If a homosexual person is willing to go public, it is not a privacy issue.
Privacy ขึ้นอยู่กับเจตนา
หลักของ privacy มีสี่ข้อ
- Privacy ขึ้นกับเจตนา ไม่ได้ขึ้นกับตัวข้อมูลว่าอ่อนไหวแค่ไหน
- ถ้าเจ้าตัวเต็มใจเปิดเผยเอง ก็ไม่ใช่ปัญหา privacy
- ในความเป็นจริง เราแลกความเป็นส่วนตัวกับบริการอยู่ตลอดเวลา
- ตราบใดที่ผู้ให้บริการทำตามนโยบายความเป็นส่วนตัวที่ประกาศไว้ ก็ถือว่าใช้ได้
คนคนหนึ่งอาจไม่ยอมบอกอายุกับใครเลย แต่ยอมบอกกับหมอที่กำลังรักษาเขา เพราะมันทำให้ได้รับการรักษาที่ดีขึ้น
ข้อมูลชิ้นเดียวกัน แต่ให้คนละคนแล้วรู้สึกต่างกัน นั่นแปลว่าสิ่งที่ตัดสินไม่ใช่ตัวข้อมูล แต่เป็นเจตนาของเจ้าของข้อมูลว่าจะให้ใคร
ทางออกที่ง่ายที่สุดของเรื่อง privacy
วิธีนี้ถูกเรียกว่า a naïve solution คือ ให้ผู้ใช้เป็นคนเลือกเองว่าจะปล่อยข้อมูลส่วนตัวของตัวเองออกไปหรือไม่ ผ่านสามอย่างนี้
- Disclaimer — ข้อความปฏิเสธความรับผิด
- Agreement — ข้อตกลงที่ผู้ใช้ต้องกดยอมรับ
- Privacy Policy — นโยบายความเป็นส่วนตัว
แล้วทิ้งคำถามไว้คำเดียวว่า HIPAA ? โดยไม่มีคำตอบ
HIPAA คืออะไร
HIPAA ย่อมาจาก Health Insurance Portability and Accountability Act เป็นกฎหมายของสหรัฐอเมริกาที่วางกติกาว่าข้อมูลสุขภาพของคนไข้จะถูกเก็บและส่งต่อได้แค่ไหน
เครื่องหมายคำถามหลังชื่อนี้ไม่มีคำตอบเขียนไว้ อ่านได้ว่าเป็นคำถามชวนคิด ว่าการให้ผู้ใช้กดยอมรับเอาเองนั้นพอหรือยัง หรือบางเรื่องต้องมีกฎหมายบังคับ
"ให้ผู้ใช้เลือกเอง" ฟังดูยุติธรรม แต่คำที่ใช้คือ naïve ตั้งแต่ต้นประโยค เพราะในทางปฏิบัติ ผู้ใช้แทบไม่มีทางเลือกจริง ถ้าไม่กดยอมรับก็ใช้บริการไม่ได้เลย และแทบไม่มีใครอ่านนโยบายจนจบก่อนกด
สองข้อเท็จจริงในหัวข้อถัดไปคือตัวอย่างว่าสิ่งที่เรากดยอมรับไปนั้นครอบคลุมอะไรบ้าง
สิ่งที่เรากดยอมรับไปครอบคลุมแค่ไหน
ข้อความสองอันข้างล่างมาจากนโยบายจริง ไม่ใช่การคาดเดา
เราอาจนำข้อมูลที่เก็บได้จากบริการต่าง ๆ ของเรา และจากอุปกรณ์หลายเครื่องของคุณ มารวมเข้าด้วยกัน … ขึ้นอยู่กับการตั้งค่าบัญชีของคุณ กิจกรรมของคุณบนเว็บไซต์และแอปอื่น อาจถูกเชื่อมโยงเข้ากับข้อมูลส่วนตัวของคุณ เพื่อปรับปรุงบริการของ Google และโฆษณาที่ Google ส่งให้
ยกมาจาก policies.google.com/privacy
ถ้าคุณเริ่มพิมพ์อะไรบางอย่าง แล้วเปลี่ยนใจลบทิ้ง Facebook ก็เก็บข้อความนั้นไว้และเอาไปวิเคราะห์ด้วย
— Zeynep Tufekci นักสังคมวิทยาด้านเทคโนโลยี พูดไว้ใน TED talk ปี 2017 ยกมาจาก Chicago Tribune
สองกล่องนี้ไม่ได้แปลว่า Google ผิดหรือ Facebook ผิด ทั้งสองบริษัทประกาศไว้ในนโยบายของตัวเองแล้ว ซึ่งตามหลักสี่ข้อข้างบนก็ถือว่า "ทำตามนโยบาย" แล้ว
ประเด็นคือ สิ่งที่เรากดยอมรับไปนั้นกว้างกว่าที่คนส่วนใหญ่คิด และนั่นคือราคาที่เราจ่ายเมื่อแลกความเป็นส่วนตัวกับบริการฟรี
ส่วนที่ 2 — หาองค์ประกอบจากของใกล้ตัว
แทนที่จะเริ่มจากนิยาม ส่วนนี้หยิบของจริงสามอย่างมาถามคำถามเดียวกันทั้งสามอย่าง
Is it a secure system? — If yes, what does it have?
มันเป็นระบบที่ปลอดภัยไหม ถ้าใช่ มันมีอะไรอยู่ในนั้นบ้าง
วิธีนี้ทำให้เราไม่ต้องท่องนิยาม แต่ได้นิยามมาจากการสังเกตของที่คนทั่วโลกยอมรับกันอยู่แล้วว่าปลอดภัย ถ้าของสามอย่างที่ต่างกันคนละแบบกลับมีชิ้นส่วนชุดเดียวกัน แปลว่าชิ้นส่วนชุดนั้นน่าจะเป็นสิ่งที่ขาดไม่ได้จริง
สามตัวอย่างนั้นคือ ตู้ ATM, ตู้นิรภัยของธนาคาร (Security Deposit Box) และ ของรอบตัวเรา อย่างบ้านของคุณหรือคอมพิวเตอร์ของคุณ
การเข้าถึงตู้นิรภัยของธนาคาร มีหลายขั้นตอน แต่สไลด์ไม่ได้ไล่ทีละขั้นให้ดู
- เดินเข้าธนาคาร แจ้งว่าจะขอเปิดตู้นิรภัย
- ยื่นบัตรประชาชน แล้วเซ็นชื่อเทียบกับลายเซ็นที่ธนาคารเก็บไว้
- พนักงานเปิดสมุดดูว่าตู้นี้เป็นของเราจริง และเรามีสิทธิ์เปิดคนเดียวหรือต้องมาพร้อมกันสองคน
- พนักงานใช้กุญแจของธนาคาร เราใช้กุญแจของเรา ต้องไขพร้อมกันทั้งสองดอกตู้ถึงจะเปิด
- ลงเวลาเข้าและออกในสมุดบันทึกการเข้าใช้
จะเห็นว่าขั้นที่ 2 ตอบคำถามว่า เราเป็นใคร ขั้นที่ 3 และ 4 ตอบว่า เรามีสิทธิ์ไหม และขั้นที่ 5 ตอบว่า เราทำอะไรไป
Look around yourself to find more examples — ลองมองของรอบตัว แล้วถามคำถามชุดเดิมกับมัน
ส่วนที่ 3 — AAA สามองค์ประกอบของความปลอดภัย
ชิ้นส่วนสามอย่างที่หาเจอจากตัวอย่างเมื่อกี้มีชื่อเรียกว่า the AAA of Security
Authentication — คุณเป็นใคร
Authentication (การพิสูจน์ตัวจริง) คือขั้นตอนที่ระบบถามว่า
Who are you? Are you really the person whom you claim to be?
คุณเป็นใคร และคุณเป็นคนคนนั้นจริงอย่างที่อ้างหรือเปล่า
สังเกตว่าคำถามมีสองท่อน ท่อนแรกคือ อ้างว่าเป็นใคร ท่อนที่สองคือ พิสูจน์ว่าเป็นคนนั้นจริง การพิมพ์ username คือท่อนแรก การพิมพ์รหัสผ่านคือท่อนที่สอง เรื่องนี้ทั้งเรื่องคือเนื้อหาของ คาบถัดไป
Authorization — คุณมีสิทธิ์ทำสิ่งนี้ไหม
Authorization (การให้สิทธิ์เข้าถึง) คือขั้นตอนที่ระบบถามว่า
Do you have the authority to do what you are trying to do?
คุณมีอำนาจที่จะทำสิ่งที่กำลังจะทำหรือเปล่า
Accounting — คุณทำอะไรไปบ้าง
Accounting (การบันทึกการใช้งาน) หรือเรียกอีกชื่อว่า Auditing (การตรวจสอบย้อนหลัง) คือขั้นตอนที่ระบบตอบคำถามว่า
What did you do?
คุณทำอะไรไปบ้าง
คนมักคิดว่า Authentication กับ Authorization เป็นเรื่องเดียวกัน เพราะเจอพร้อมกันตอน login ทั้งคู่
แต่มันตอบคนละคำถาม การรู้ว่าคุณคือใคร ไม่ได้แปลว่าคุณทำได้ทุกอย่าง พนักงานธนาคารพิสูจน์ตัวตนผ่านแล้ว ก็ยังเปิดตู้นิรภัยของลูกค้าคนอื่นไม่ได้อยู่ดี
เอาตู้ ATM มาจับคู่กับสามด่าน
AAA ถูกเทียบกับ Kerberos สุนัขสามหัวเฝ้าประตูยมโลกในตำนานกรีก หัวหนึ่งต่อหนึ่งองค์ประกอบ
ชื่อนี้ไม่ได้ถูกหยิบมาลอย ๆ โครงการ Athena ของ MIT ตั้งชื่อระบบพิสูจน์ตัวจริงของตัวเองว่า "Kerberos" ตามสุนัขตัวนี้จริง ๆ
ที่มาของชื่อคือ Cerberus หรือ Kerberos (กรีก Κέρβερος แปลว่า "ปีศาจแห่งหลุมลึก") เป็นสุนัขล่าเนื้อของ Hades มีสามหัว หางเป็นงู บางตำนานว่ามีถึง 50 หรือ 100 หัว
จุดที่การเทียบนี้ดีคือ หัวทั้งสามอยู่บนตัวเดียวกัน ไม่ใช่สุนัขสามตัวที่แยกกันเฝ้า ระบบเดียวต้องมีครบทั้งสามอย่าง ไม่ใช่ให้ระบบสามระบบมีคนละอย่าง
ลองตอบดู: เว็บหนึ่งให้ทุกคนเข้าดูได้โดยไม่ต้อง login แต่เก็บ log ทุกครั้งที่มีคนเปิดหน้าเว็บ เว็บนี้มีองค์ประกอบครบไหม
ไม่ครบ
มี Accounting (เก็บ log แล้ว) แต่ไม่มี Authentication เพราะไม่มีการพิสูจน์ว่าใครเป็นใคร และเมื่อไม่รู้ว่าใครเป็นใคร Authorization ก็ทำไม่ได้ตามไปด้วย
ที่สำคัญกว่านั้นคือ log ที่เก็บได้แทบไม่มีค่า เพราะบอกได้แค่ว่า "มีคนเปิดหน้านี้" แต่บอกไม่ได้ว่าเป็นใคร Accounting จะมีความหมายก็ต่อเมื่อมี Authentication มาก่อน
ส่วนที่ 4 — สองแนวคิดที่มาช่วยหนุน
คำถามที่ตามมาคือ AAA is not enough? และคำตอบคือยังมีของอีกชุดที่ต้องมี
Integrity — ของต้องครบและไม่ถูกแก้
นิยามจากพจนานุกรมคือ
Integrity (n) "the quality or state of being complete or undivided"
คุณสมบัติของการอยู่ครบถ้วน ไม่ถูกแบ่งแยกหรือทำให้ขาดหาย
Integrity (ความครบถ้วนถูกต้องของข้อมูล) ตอบคำถามที่ AAA ตอบไม่ได้ คือ ข้อมูลที่อยู่ในระบบยังเป็นตัวเดิมอยู่ไหม ต่อให้คุมได้หมดว่าใครเข้าได้และทำอะไรได้ ถ้าข้อมูลข้างในถูกแก้ไปแล้ว ระบบนั้นก็ใช้ไม่ได้
Software Engineering และ Threat Modeling
นิยามคือ
Threat modeling is a method of addressing and documenting the security risks associated with an application.
การทำ threat modeling คือวิธีจัดการและบันทึกความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้องกับแอปพลิเคชันหนึ่ง ๆ
Threat Modeling (การวางแผนรับมือภัยคุกคามล่วงหน้า) คือการนั่งลงเขียนตั้งแต่ตอนออกแบบว่า ระบบนี้จะมีใครมาโจมตีได้บ้าง โจมตีตรงไหน และถ้าโดนแล้วจะเสียหายแค่ไหน คำสำคัญในนิยามคือ documenting คือต้องเขียนเก็บไว้ ไม่ใช่คิดในหัวแล้วจบ
Validation of Input — เชื่อ input ไม่ได้
หลักของเรื่องนี้มีประโยคเดียว
All input is evil until proven otherwise
ถือว่า input ทุกตัวเป็นของร้าย จนกว่าจะพิสูจน์ได้ว่าไม่ใช่
ฟอร์ม login รับ username มาแล้วเอาไปต่อเป็นคำสั่งค้นฐานข้อมูลตรง ๆ
ถ้าโปรแกรมสร้างคำสั่งด้วยการต่อข้อความ แล้วมีคนกรอก username เป็น
' OR '1'='1คำสั่งที่ออกมาจะกลายเป็นเงื่อนไขที่เป็นจริงเสมอ ระบบก็จะคืนผู้ใช้ทุกคนในตารางออกมา ทั้งที่คนกรอกไม่รู้รหัสผ่านของใครเลย
ทั้งสามด่านของ AAA ยังอยู่ครบ ไม่มีใครปิดมันเลย แต่ระบบก็ถูกเจาะได้ เพราะข้อมูลที่คนนอกพิมพ์เข้ามาถูกเชื่อว่าเป็นคำสั่งที่ถูกต้อง
- ตรวจความถูกต้องด้วย JavaScript ในหน้าเว็บอย่างเดียว
- ฝั่งเซิร์ฟเวอร์รับค่ามาใช้ต่อทันที
การตรวจในหน้าเว็บช่วยแค่ให้ผู้ใช้ทั่วไปกรอกผิดน้อยลง คนที่ตั้งใจโจมตีไม่ได้ใช้หน้าเว็บของเรายิงเข้ามาอยู่แล้ว
- ตรวจซ้ำที่ฝั่งเซิร์ฟเวอร์เสมอ ต่อให้หน้าเว็บตรวจไปแล้ว
- กำหนดไว้ว่าอะไรคือค่าที่ยอมรับได้ แล้วปฏิเสธที่เหลือทั้งหมด
หลักคือถือว่าทุกอย่างที่มาจากนอกเส้นในรูปที่ 4 เป็นของร้าย จนกว่าจะตรวจแล้ว
หน้า 17 ไล่แนวคิดสนับสนุนไว้ สามข้อ คือ Integrity, Software Engineering & Threat Modeling และ Validation of Input
แต่หน้าสรุปคือหน้า 18 เขียนว่า 2 Supporting Concepts แล้วนับเฉพาะ Integrity กับ Input Validations
หน้านี้เก็บไว้ทั้งสามข้อ เพราะทั้งสามข้ออยู่ในสไลด์จริง แต่ถ้าข้อสอบถามว่า supporting concepts มีกี่ข้อ ให้ตอบตามหน้าสรุปคือสองข้อ
ส่วนที่ 5 — ข้อสรุปสองข้อที่ต้องจำ
สองประโยคนี้อ่านเผิน ๆ เหมือนขัดกันเอง
Missing a component means a system is not secure. ขาดองค์ประกอบข้อใดข้อหนึ่ง แปลว่าระบบนั้นไม่ปลอดภัย
Having all components does not mean the system is secure. มีองค์ประกอบครบ ไม่ได้แปลว่าระบบนั้นปลอดภัย
สองประโยคนี้ไม่ได้ขัดกัน มันบอกว่า AAA เป็น เงื่อนไขจำเป็น แต่ไม่ใช่เงื่อนไขเพียงพอ
- ทิศทางแรกใช้ตัดทิ้ง — เจอระบบที่ขาดข้อใดข้อหนึ่ง ฟันธงได้เลยว่าไม่ปลอดภัย ไม่ต้องดูอะไรต่อ
- ทิศทางที่สองใช้เตือน — เจอระบบที่ครบทั้งสามข้อ ยังฟันธงอะไรไม่ได้ ต้องดูต่อว่าแต่ละด่านทำงานได้ดีแค่ไหน
เหมือนรถที่ต้องมีเบรก ไฟหน้า และเข็มขัดนิรภัย รถที่ไม่มีเบรกคือรถที่ไม่ปลอดภัยแน่นอน ไม่ต้องทดสอบอะไรเพิ่ม
แต่รถที่มีครบทั้งสามอย่าง ก็ยังไม่ปลอดภัยถ้าผ้าเบรกหมด ไฟหน้าไม่สว่างพอ หรือเข็มขัดขาด มีของครบ กับของที่มีทำงานได้ดี เป็นคนละเรื่องกัน
กับดักที่พบบ่อยคือการเอา checklist ไปติ๊กแล้วจบ "มีระบบ login แล้ว ✓ มีการแบ่งสิทธิ์แล้ว ✓ มี log แล้ว ✓ เพราะฉะนั้นปลอดภัย"
ประโยคที่สองเขียนมาเพื่อกันเรื่องนี้โดยเฉพาะ ระบบ login ที่ยอมให้ตั้งรหัสผ่านว่า 1234 ก็นับว่ามี Authentication ครบตาม checklist แต่ไม่ได้ช่วยอะไรเลย
สองคำที่ต้องแยกให้ออก
- Security ถามว่า "ใครทำอะไรได้ เมื่อไหร่" — วัดที่ตัวระบบ
- Privacy คืออิสระที่จะคุมว่าใครเข้าถึงข้อมูลส่วนตัวของเราได้ — วัดที่เจตนาของเจ้าของข้อมูล
- ทั้งคู่ต้องการการควบคุมการเข้าถึงข้อมูลเหมือนกัน แต่ตอบคนละคำถาม
- เคสตัวอย่าง: hacker เจาะระบบแล้วรู้เรื่องสุขภาพของคนคนหนึ่ง เป็น security แน่นอน ส่วนจะเป็น privacy หรือไม่ ขึ้นกับว่าเจ้าตัวเปิดเผยเองอยู่แล้วหรือเปล่า
- ทางออกแบบง่าย ๆ ของ privacy คือให้ผู้ใช้เลือกเอง ผ่าน disclaimer, agreement และ privacy policy — วิธีนี้ถูกเรียกว่า naïve
สามองค์ประกอบ — the AAA of Security
- Authentication — "Who are you? Are you really the person whom you claim to be?"
- Authorization — "Do you have the authority to do what you are trying to do?"
- Accounting (Auditing) — "What did you do?"
- เทียบกับ Kerberos สุนัขสามหัว หัวหนึ่งต่อหนึ่งองค์ประกอบ อยู่บนตัวเดียวกัน
- หาชิ้นส่วนสามอย่างนี้ได้จากตู้ ATM ตู้นิรภัยธนาคาร และของรอบตัวเรา
แนวคิดที่มาช่วยหนุน
- Integrity — "the quality or state of being complete or undivided" ของต้องครบและไม่ถูกแก้
- Threat Modeling — เขียนบันทึกไว้ล่วงหน้าว่าใครจะโจมตีตรงไหนได้
- Input Validation — "All input is evil until proven otherwise"
- หน้า 17 นับสามข้อ หน้าสรุป 18 นับสองข้อ (Integrity กับ Input Validation)
สองประโยคปิดบท
- ขาดองค์ประกอบข้อใดข้อหนึ่ง = ไม่ปลอดภัยแน่นอน
- มีครบทุกข้อ = ยังไม่ได้แปลว่าปลอดภัย
- AAA เป็นเงื่อนไขจำเป็น แต่ไม่ใช่เงื่อนไขเพียงพอ