TOTP และ HOTP
รหัสผ่านใช้ครั้งเดียวตามเวลา
TOTP และ HOTP เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
รหัสผ่านใช้ครั้งเดียว
รหัสผ่านใช้ครั้งเดียว (OTP)คือรหัสที่ใช้ได้สำหรับการเข้าสู่ระบบหนึ่งครั้งหรือในช่วงเวลาสั้น ๆ
มีอัลกอริทึมมาตรฐานสองแบบที่ใช้สร้างรหัสนี้ ได้แก่ HOTP และ TOTP
ความลับร่วม
อัลกอริทึมทั้งสองเริ่มจากความลับร่วมที่มีเพียงเซิร์ฟเวอร์และแอปยืนยันตัวตนของคุณเท่านั้นที่รู้
โดยปกติความลับนี้จะถูกส่งในรูปคิวอาร์โค้ดระหว่างการตั้งค่าและจัดเก็บไว้ทั้งสองฝั่ง
HOTP: อิงตัวนับ
HOTP (OTP ที่ใช้ HMAC)จะนำความลับร่วมมาผสมกับตัวนับโดยใช้ HMAC จากนั้นตัดผลลัพธ์ให้เหลือเป็นรหัสตัวเลขสั้น ๆ
ตัวนับจะเพิ่มขึ้นหนึ่งหน่วยทุกครั้งที่สร้างรหัส
HOTP = Truncate( HMAC-SHA1(secret, counter) )TOTP: อิงเวลา
TOTP (OTP ที่อิงเวลา)คือ HOTP ที่ใช้เวลาปัจจุบันหารเป็นช่วงคงที่แทนตัวนับ โดยปกติช่วงละ 30 วินาที
เนื่องจากเวลาเดินไปข้างหน้าเสมอ ทั้งสองฝั่งจึงยังตรงกันได้โดยไม่ต้องติดตามตัวนับด้วยตนเอง
T = floor( (current_unix_time) / 30 )
TOTP = Truncate( HMAC-SHA1(secret, T) )ช่วงเวลา 30 วินาที
โดยทั่วไป รหัส TOTP จะเปลี่ยนทุก 30 วินาที อายุการใช้งานที่สั้นนี้จำกัดระยะเวลาที่รหัสที่ถูกขโมยไปจะนำไปใช้ได้
นี่คือเหตุผลที่แอปยืนยันตัวตนแสดงแถบนับถอยหลัง
ค่าคลาดเคลื่อนของนาฬิกา
นาฬิกาของอุปกรณ์อาจคลาดเคลื่อนเล็กน้อย เพื่อไม่ให้ปฏิเสธรหัสที่ถูกต้อง เซิร์ฟเวอร์จึงยอมรับรหัสจากหนึ่งช่วงก่อนหน้าและถัดไปจากช่วงเวลาปัจจุบัน
ช่วงเวลาที่กว้างเกินไปจะลดความปลอดภัย จึงต้องกำหนดให้แคบ
การทำให้ HOTP ตรงกัน
HOTP อาจคลาดเคลื่อนได้หากไม่ได้ใช้รหัสที่สร้างขึ้น เพราะตัวนับบนอุปกรณ์เพิ่มขึ้นแต่บนเซิร์ฟเวอร์ไม่เพิ่ม
เซิร์ฟเวอร์จะอนุญาตช่วงตรวจล่วงหน้าขนาดเล็กเพื่อทำให้กลับมาตรงกัน แต่หากคลาดเคลื่อนมากจะต้องทำให้ตรงกันด้วยตนเอง
URI ของ otpauth
คิวอาร์โค้ดจะเข้ารหัสURI ของ otpauthซึ่งอธิบายความลับและพารามิเตอร์ต่าง ๆ
otpauth://totp/Example:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example&period=30เหตุใด TOTP จึงได้รับความนิยม
TOTP พบได้บ่อยกว่า HOTP มากเนื่องจาก:
- ไม่มีตัวนับที่อาจคลาดเคลื่อนหรือต้องทำให้ตรงกันใหม่
- รหัสหมดอายุเองตามธรรมชาติ
- ทำงานแบบออฟไลน์ได้ ไม่จำเป็นต้องใช้เครือข่ายเพื่อสร้างรหัส
จุดแข็งและข้อจำกัด
TOTP ยกระดับความปลอดภัยจากการใช้รหัสผ่านเพียงอย่างเดียวได้มาก แต่ยังสามารถถูกหลอกให้เปิดเผยได้: เว็บไซต์ปลอมอาจหลอกให้ผู้ใช้พิมพ์รหัสที่ยังใช้งานได้
กุญแจฮาร์ดแวร์ (ซึ่งจะกล่าวถึงในบทเรียนถัดไป) ป้องกันการโจมตีนี้ได้
การสำรองและการกู้คืน
การสูญเสียอุปกรณ์ที่เก็บความลับอาจทำให้คุณถูกล็อกไม่ให้เข้าสู่ระบบ แนวทางปฏิบัติที่ดีคือ:
- บันทึกรหัสกู้คืนที่ได้รับระหว่างการตั้งค่า
- สำรองความลับอย่างปลอดภัย หรือลงทะเบียนแอปยืนยันตัวตนตัวที่สอง
ตรวจสอบความเข้าใจ
ความแตกต่างสำคัญระหว่าง HOTP กับ TOTP คืออะไร
สรุปทบทวน
คุณได้เรียนรู้ว่าอัลกอริทึม OTP ทำงานอย่างไร
- ทั้งสองแบบสร้างขึ้นจากความลับร่วมและรหัสยืนยันข้อความด้วยแฮช
- HOTP ใช้ตัวนับ ส่วน TOTP ใช้เวลา
- รหัส TOTP หมดอายุทุกประมาณ 30 วินาที แต่ยังเสี่ยงต่อฟิชชิง
- เก็บรหัสกู้คืนไว้
ต่อไป เราจะสำรวจการอนุมัติผ่านการแจ้งเตือนและคีย์ฮาร์ดแวร์
คำถามที่พบบ่อย
บทเรียน “TOTP และ HOTP” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “TOTP และ HOTP” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “TOTP และ HOTP”
รหัสผ่านใช้ครั้งเดียวตามเวลา คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “TOTP และ HOTP” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ