ฉันเจอกลไกการเข้าสู่ระบบแบบสองปัจจัยโดยใช้ OTP ตามเวลา (TOTP) TOTP (6 หลัก) แสดงให้ผู้ใช้เห็นในแอป
มีสองวิธีในการเข้าสู่ระบบ
วิธีที่ 1:
ผู้ใช้ป้อนชื่อผู้ใช้และรหัสผ่าน จากนั้นอนุมัติการแจ้งเตือนการเข้าสู่ระบบที่ได้รับในแอป TOTP กรณีนี้ไม่ต้องกรอก TOTP
ชื่อผู้ใช้ = ชื่อผู้ใช้
รหัสผ่าน = รหัสผ่าน
วิธีที่ 2:
ผู้ใช้ป้อนการเชื่อมรหัสผ่านและ TOTP จากแอปเป็นรหัสผ่าน ไม่ได้รับการแจ้งเตือนในแอปในกรณีนี้
ชื่อผู้ใช้ = ชื่อผู้ใช้
รหัสผ่าน = รหัสผ่าน + TOTP (6 หลัก)
ชื่อผู้ใช้และรหัสผ่านจะถูกส่งผ่าน TLS
ทางฝั่งเซิร์ฟเวอร์ ฉันถือว่าพวกเขาแยก 6 หลักสุดท้ายจากค่ารหัสผ่านที่ได้รับ และตรวจสอบว่าตรงกับ TOTP หรือไม่ (จากนั้นจับคู่สตริงที่เหลือกับรหัสผ่านที่เก็บไว้)
มิฉะนั้น พวกเขาจะแฮชรหัสผ่านที่สมบูรณ์และจับคู่กับค่าที่จัดเก็บไว้ในฐานข้อมูล (สมมติว่ารหัสผ่านไม่ได้จัดเก็บเป็นข้อความธรรมดา) หากตรงกัน ระบบจะส่งการแจ้งเตือนไปยังอุปกรณ์ของผู้ใช้
อะไรคือปัญหาที่เป็นไปได้หรือจุดอ่อนทางวิทยาการเข้ารหัสลับในระบบนี้?