เมื่อไม่กี่วันก่อน Apple เปิดตัวรุ่นที่ร้อย อัปเดต iOS 7.0.6เกี่ยวกับการเปิดเผยที่เราแจ้งให้คุณทราบ หลายคนอาจแปลกใจที่การอัปเดตนี้เผยแพร่สำหรับ iOS 6 รุ่นเก่า (เวอร์ชัน 6.1.6) และ Apple TV (เวอร์ชัน 6.0.2) ด้วย นี่คือแพตช์รักษาความปลอดภัย ดังนั้น Apple จึงไม่สามารถอัปเดตอุปกรณ์เพียงบางส่วนได้ ยิ่งไปกว่านั้น ปัญหานี้ยังส่งผลต่อ OS X อีกด้วย ตามที่โฆษกของ Apple Trudy Muller กล่าวไว้ การอัปเดต OS X จะออกโดยเร็วที่สุด
เหตุใดจึงมีกระแสฮือฮามากมายเกี่ยวกับการอัพเดตนี้? ข้อบกพร่องในโค้ดของระบบทำให้สามารถข้ามการตรวจสอบเซิร์ฟเวอร์ในการส่งข้อมูลที่ปลอดภัยที่เลเยอร์เชิงสัมพันธ์ของโมเดลอ้างอิง ISO/OSI โดยเฉพาะอย่างยิ่ง ข้อผิดพลาดคือการใช้งาน SSL ที่ไม่ถูกต้องในส่วนที่เกิดการตรวจสอบใบรับรองเซิร์ฟเวอร์ ก่อนที่ฉันจะอธิบายเพิ่มเติม ฉันชอบอธิบายแนวคิดพื้นฐานมากกว่า
SSL (Secure Socket Layer) เป็นโปรโตคอลที่ใช้สำหรับการสื่อสารที่ปลอดภัย บรรลุความปลอดภัยด้วยการเข้ารหัสและการรับรองความถูกต้องของฝ่ายสื่อสาร การรับรองความถูกต้องคือการตรวจสอบตัวตนที่นำเสนอ ตัวอย่างเช่น ในชีวิตจริง คุณพูดชื่อของคุณ (ข้อมูลประจำตัว) และแสดงบัตรประจำตัวของคุณเพื่อให้บุคคลอื่นสามารถตรวจสอบได้ (รับรองความถูกต้อง) การรับรองความถูกต้องจะแบ่งออกเป็นการตรวจสอบซึ่งเป็นเพียงตัวอย่างด้วยบัตรประจำตัวประชาชนหรือบัตรประจำตัว เมื่อบุคคลที่เป็นปัญหาสามารถระบุตัวตนของคุณโดยที่คุณไม่ต้องแสดงให้เขาเห็นล่วงหน้า
ตอนนี้ฉันจะไปที่ใบรับรองเซิร์ฟเวอร์โดยย่อ ในชีวิตจริง ใบรับรองของคุณอาจเป็น เช่น บัตรประจำตัวประชาชน ทุกอย่างขึ้นอยู่กับการเข้ารหัสแบบอสมมาตร โดยแต่ละหัวข้อจะเป็นเจ้าของสองคีย์ - ส่วนตัวและสาธารณะ ความงามทั้งหมดอยู่ที่ความจริงที่ว่าข้อความสามารถเข้ารหัสด้วยกุญแจสาธารณะและถอดรหัสด้วยกุญแจส่วนตัว ซึ่งหมายความว่ามีเพียงเจ้าของคีย์ส่วนตัวเท่านั้นที่สามารถถอดรหัสข้อความได้ ในขณะเดียวกันก็ไม่ต้องกังวลกับการโอนคีย์ลับไปยังทั้งสองฝ่ายที่สื่อสารกัน ใบรับรองจะเป็นคีย์สาธารณะของหัวข้อที่เสริมด้วยข้อมูลและลงนามโดยหน่วยงานออกใบรับรอง ในสาธารณรัฐเช็ก หนึ่งในหน่วยงานออกใบรับรอง ได้แก่ Šeská Pošta ด้วยใบรับรองนี้ iPhone จึงสามารถตรวจสอบได้ว่ากำลังสื่อสารกับเซิร์ฟเวอร์ที่กำหนดจริงๆ
SSL ใช้การเข้ารหัสแบบอสมมาตรเมื่อสร้างการเชื่อมต่อที่เรียกว่า การจับมือ SSL- ในขั้นตอนนี้ iPhone ของคุณจะตรวจสอบว่ากำลังสื่อสารกับเซิร์ฟเวอร์ที่กำหนด และในเวลาเดียวกัน ด้วยความช่วยเหลือของการเข้ารหัสแบบอสมมาตร คีย์สมมาตรจะถูกสร้างขึ้น ซึ่งจะใช้สำหรับการสื่อสารที่ตามมาทั้งหมด การเข้ารหัสแบบสมมาตรเร็วขึ้น ตามที่เขียนไว้แล้ว เกิดข้อผิดพลาดระหว่างการตรวจสอบเซิร์ฟเวอร์ มาดูโค้ดที่ทำให้เกิดช่องโหว่ของระบบนี้กัน
static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa,
SSLBuffer signedParams, uint8_t *signature, UInt16 signatureLen)
{
OSStatus err;
…
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
goto fail;
…
fail:
SSLFreeBuffer(&signedHashes);
SSLFreeBuffer(&hashCtx);
return err;
}
ในเงื่อนไขที่สอง if คุณสามารถดูสองคำสั่งด้านล่าง ไปล้มเหลว;- และนั่นคืออุปสรรค์ รหัสนี้จะทำให้คำสั่งที่สองถูกดำเนินการในขั้นตอนที่ควรตรวจสอบใบรับรอง ไปล้มเหลว;- ซึ่งทำให้เงื่อนไขที่สามถูกข้ามไป if และจะไม่มีการตรวจสอบเซิร์ฟเวอร์เลย
ผลกระทบก็คือใครก็ตามที่ทราบถึงช่องโหว่นี้สามารถเสนอใบรับรองปลอมให้กับ iPhone ของคุณได้ คุณหรือ iPhone ของคุณ คุณจะคิดว่าคุณกำลังสื่อสารแบบเข้ารหัส ในขณะที่มีผู้โจมตีระหว่างคุณกับเซิร์ฟเวอร์ การโจมตีดังกล่าวเรียกว่า การโจมตีคนที่อยู่ตรงกลางซึ่งแปลเป็นภาษาเช็กคร่าวๆ ว่า การโจมตีจากคนกลาง หรือ ผู้ชายในหมู่- การโจมตีโดยใช้ข้อบกพร่องเฉพาะนี้ใน OS X และ iOS สามารถทำได้หากผู้โจมตีและเหยื่ออยู่ในเครือข่ายเดียวกันเท่านั้น ดังนั้นจึงเป็นการดีกว่าที่จะหลีกเลี่ยงเครือข่าย Wi-Fi สาธารณะหากคุณไม่ได้อัปเดต iOS ผู้ใช้ Mac ควรระมัดระวังเกี่ยวกับเครือข่ายที่พวกเขาเชื่อมต่อและไซต์ที่พวกเขาเยี่ยมชมบนเครือข่ายเหล่านั้น
ไม่น่าเชื่อว่าข้อผิดพลาดร้ายแรงดังกล่าวสามารถทำให้เกิด OS X และ iOS เวอร์ชันสุดท้ายได้อย่างไร อาจเป็นการทดสอบโค้ดที่เขียนไม่ดีไม่สอดคล้องกัน นี่หมายความว่าทั้งโปรแกรมเมอร์และผู้ทดสอบจะทำผิดพลาด สิ่งนี้อาจดูไม่น่าเป็นไปได้สำหรับ Apple และมีการคาดเดากันว่าข้อผิดพลาดนี้จริงๆ แล้วเป็นแบ็คดอร์ หรือที่เรียกว่า ประตูหลัง- ไม่ใช่เพื่ออะไรที่พวกเขาบอกว่าประตูหลังที่ดีที่สุดดูเหมือนเป็นความผิดพลาดที่ละเอียดอ่อน อย่างไรก็ตาม นี่เป็นเพียงทฤษฎีที่ยังไม่ได้รับการยืนยัน ดังนั้นเราจะถือว่ามีใครบางคนทำผิดพลาด
หากคุณไม่แน่ใจว่าระบบหรือเบราว์เซอร์ของคุณปลอดภัยจากจุดบกพร่องนี้หรือไม่ โปรดไปที่หน้านี้ gotofail.com- ดังที่คุณเห็นในภาพด้านล่าง Safari 7.0.1 ใน OS X Mavericks 10.9.1 มีข้อบกพร่อง ในขณะที่ Safari ใน iOS 7.0.6 ทุกอย่างเรียบร้อยดี
โจมตีผ่าน…. ฉันไม่ได้หัวเราะที่ดีและไพเราะขนาดนี้มานานแล้ว!
เป็นไปได้ว่าโดยส่วนตัวแล้วฉันเข้าใจว่านี่เป็นข้อความจาก APPLE ถึงผู้ใช้ทุกคน - ไม่ว่าจะเป็นทางใดทางหนึ่ง (และฉันไม่คิดว่าความเป็นไปได้มากกว่า 2 ประการที่กล่าวถึงในการเกิดข้อผิดพลาดนี้จะเป็นเรื่องจริง) ทั้งสองเป็นการเยาะเย้ยธรรมดา ๆ ของเจ้าของสิ่งของ APPLE ธรรมดา!
ขอบคุณพระเจ้าที่คุณพูดถูก
ฉันจะเชื่อว่านี่เป็นความผิดพลาดที่แท้จริง ฉันนึกภาพออกว่ามันถูกสร้างขึ้นเมื่อรวมสองสาขาในระบบการกำหนดเวอร์ชัน หากสาขาใดสาขาหนึ่งยาวกว่าบรรทัด อย่างไรก็ตาม นี่เป็นอีกกรณีที่ยืนยันว่าการบังคับให้โปรแกรมเมอร์ใส่แม้แต่บรรทัดเดียวหากเนื้อหาในบล็อกสมเหตุสมผล
ขอบคุณสำหรับคำอธิบายโดยละเอียด!
ขออภัยที่เขียนนอกการสนทนา แต่ตอนนี้ฉันอ่านเจอแล้วว่า iPhone ที่ใหญ่กว่าที่ถูกกล่าวหาควรเรียกว่า iPhablet :-D ฉันเกือบจะทำมันหายแล้ว.. :-D สวัสดีผู้ชื่นชอบแอปเปิ้ลทุกคน
…..ว้าว ความคิดสร้างสรรค์ไม่ได้ค่อยๆ หายไป …..อาจจะเป็นแค่เป็ดก็ได้!
สวัสดี คุณมีปัญหาเรื่องอายุการใช้งานแบตเตอรี่หลังจากการอัพเดตหรือไม่? ฉันได้รับแบตเตอรี่ใหม่หลังจากการร้องเรียนมากมายเกี่ยวกับ iP5 ดังนั้นฉันจึงมีแบตเตอรี่ใหม่ที่ใช้งานได้เกือบสองวัน หลังจากอัปเดต โทรศัพท์ของฉันก็ใช้งานไม่ได้ภายใน 8 ชั่วโมงและฉันไม่ได้ใช้งานมากนัก
โดยส่วนตัวแล้วฉันไม่ได้ลงทะเบียนปัญหาใด ๆ กับไฟฉาย ได้ในอดีต และการสำรองและการติดตั้ง iOS ใหม่ทั้งหมดก็ช่วยได้เสมอ หวังว่ามันจะช่วยคุณได้
ฉันทำอย่างนั้นวันนี้และน่าเสียดายที่ไม่มีการเปลี่ยนแปลง :-/