2FA-Tool Logo
2FA-Tool.com ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಸುರಕ್ಷಿತ ಕ್ಲೈಂಟ್-ಸೈಡ್ 2FA ಕೋಡ್ ಜನರೇಟರ್
⏱️ ಕ್ರಿಪ್ಟೋಗ್ರಫಿ ಮತ್ತು RFC ಪ್ರೋಟೋಕಾಲ್‌ಗಳು ✓ IETF ಮಾನದಂಡಗಳ ವಿಶ್ಲೇಷಣೆ

TOTP vs HOTP ವಿವರಣೆ: ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸಗಳು, ಭದ್ರತೆ ಮತ್ತು ಕಾರ್ಯ ತತ್ವಗಳು

ಪ್ರತಿದಿನ ಲಕ್ಷಾಂತರ ಡೆವಲಪರ್‌ಗಳು ಮತ್ತು ಭದ್ರತಾ ಎಂಜಿನಿಯರ್‌ಗಳು ಪರದೆಯ ಮೇಲೆ ಬದಲಾಗುವ 6-ಅಂಕಿಯ ಪರಿಶೀಲನಾ ಕೋಡ್‌ಗಳನ್ನು ನೋಡುತ್ತಾರೆ, ಆದರೆ ಪರದೆಯ ಕೆಳಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಸೊಗಸಾದ ಗಣಿತದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಕೆಲವರು ಮಾತ್ರ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತಾರೆ. 2005 ರ RFC 4226 (HOTP) ಈವೆಂಟ್-ಚಾಲಿತ ಕೌಂಟರ್‌ಗಳಿಂದ ಹಿಡಿದು 2011 ರ RFC 6238 (TOTP) ಪ್ರತ್ಯೇಕ ಸಮಯದ ಹಂತಗಳವರೆಗೆ, ಈ ಮಾರ್ಗದರ್ಶಿಯು ಬೈಟ್-ಮಟ್ಟದ ಡೈನಾಮಿಕ್ ಟ್ರಂಕೇಶನ್ (Dynamic Truncation) ಅಲ್ಗಾರಿದಮ್, ಕೌಂಟರ್ ಡಿಸಿಂಕ್ ದುರ್ಬಲತೆಗಳು, ಗಡಿಯಾರ ವಿಚಲನೆ ಸಹಿಷ್ಣುತೆ ಮತ್ತು ಆಧುನಿಕ ವೆಬ್ ಅನ್ನು TOTP ಏಕೆ ವಶಪಡಿಸಿಕೊಂಡಿತು ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ.

2FA
2FA-Tool ಭದ್ರತಾ ತಂಡ
ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗಿದೆ: ಅಕ್ಟೋಬರ್ 2026
ಅಂದಾಜು ಓದುವ ಸಮಯ: 14 ನಿಮಿಷ (2,600+ ಪದಗಳು)
RFC 6238 RFC 4226 Dynamic Truncation
💡 ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಮುಖ್ಯಾಂಶಗಳು (TL;DR)
  • ಮೂಲಭೂತ ಇನ್‌ಪುಟ್ ವ್ಯತ್ಯಾಸ: HOTP ನಿರಂತರವಾಗಿ ಹೆಚ್ಚಾಗುವ ಕೌಂಟರ್ C ನಿಂದ ಹ್ಯಾಶ್‌ಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ, ಆದರೆ TOTP C ಯ ಬದಲಿಗೆ ಯುನಿಕ್ಸ್ ಎಪೋಕ್ ಸಮಯ ಹಂತ T (CurrentUnixTime / 30) ಅನ್ನು ಬಳಸುತ್ತದೆ.
  • ನೇರ ಉತ್ತರಾಧಿಕಾರ: ಗಣಿತದ ಪ್ರಕಾರ TOTP ಯು HOTP ಯ ಒಂದು ವಿಶೇಷ ರೂಪವಾಗಿದೆ: TOTP(K, Time) = HOTP(K, T). ಎರಡೂ ಅಲ್ಗಾರಿದಮ್‌ಗಳು ಒಂದೇ ರೀತಿಯ ಡೈನಾಮಿಕ್ ಟ್ರಂಕೇಶನ್ (Dynamic Truncation) ಕಾರ್ಯವನ್ನು ಬಳಸುತ್ತವೆ.
  • ಆರ್ಕಿಟೆಕ್ಚರಲ್ ನಿರ್ಣಾಯಕ ಅಂಶ: HOTP ಯು ಸ್ಟೇಟ್‌ಫುಲ್ (stateful) ಆಗಿದೆ (ಪ್ರತಿ ಮೌಲ್ಯೀಕರಣದ ನಂತರ ಸರ್ವರ್‌ಗಳು ಕೌಂಟರ್‌ಗಳನ್ನು ಡಿಸ್ಕ್‌ನಲ್ಲಿ ಲಾಕ್ ಮಾಡಿ ಸಂಗ್ರಹಿಸಬೇಕು). TOTP ಯು ಸ್ಟೇಟ್‌ಲೆಸ್ (stateless) ಆಗಿದೆ, ಇದು ಆಧುನಿಕ ಕ್ಲೌಡ್ ಮೈಕ್ರೋಸರ್ವಿಸ್‌ಗಳಿಗೆ ಕೇಂದ್ರೀಕೃತ ಡೇಟಾಬೇಸ್ ಬರವಣಿಗೆ ಕಾರ್ಯಾಚರಣೆಗಳಿಲ್ಲದೆ ವಿತರಿಸಲಾದ ಲೋಡ್-ಬ್ಯಾಲೆನ್ಸ್ಡ್ ಕ್ಲಸ್ಟರ್‌ಗಳಲ್ಲಿ ಟೋಕನ್‌ಗಳನ್ನು ಮೌಲ್ಯೀಕರಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.
01

ಐತಿಹಾಸಿಕ ಮೂಲಗಳು: ಸ್ವಾಮ್ಯದ ಹಾರ್ಡ್‌ವೇರ್ ಟೋಕನ್‌ಗಳಿಂದ ಮುಕ್ತ ವೆಬ್ ಮಾನದಂಡಗಳವರೆಗೆ

2000 ರ ದಶಕದ ಆರಂಭದಲ್ಲಿ, ಕಾರ್ಪೊರೇಟ್ ದ್ವಿ-ಅಂಶ ದೃಢೀಕರಣವು RSA SecurID ಯಂತಹ ಸ್ವಾಮ್ಯದ (proprietary) ಕೀ ಫೋಬ್‌ಗಳಿಂದ ಪ್ರಾಬಲ್ಯ ಹೊಂದಿತ್ತು. ಈ ದುಬಾರಿ, ಮುಚ್ಚಿದ ಸಾಧನಗಳು ಸ್ವಾಮ್ಯದ ಎಂಟರ್‌ಪ್ರೈಸ್ ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಲಾದ ಆಂತರಿಕ ಕ್ವಾರ್ಟ್ಜ್ ಹರಳುಗಳನ್ನು ಒಳಗೊಂಡಿದ್ದವು. ಒಂದು ಸಂಸ್ಥೆಯು ಸಾವಿರಾರು ಉದ್ಯೋಗಿಗಳಿಗೆ ಮಲ್ಟಿ-ಫ್ಯಾಕ್ಟರ್ ಭದ್ರತೆಯನ್ನು ಒದಗಿಸಲು ಬಯಸಿದರೆ, ಹಾರ್ಡ್‌ವೇರ್ ಖರೀದಿ ಮತ್ತು ಸ್ವಾಮ್ಯದ ಪರವಾನಗಿ ವೆಚ್ಚಗಳು ವಿಪರೀತವಾಗಿದ್ದವು.

ದೃಢೀಕರಣವನ್ನು ಸ್ವಾಮ್ಯದ ಮಾರಾಟಗಾರರಿಂದ ಮುಕ್ತಗೊಳಿಸಲು, ಉದ್ಯಮದ ಮುಖಂಡರಿಂದ OATH (Initiative for Open Authentication) ಒಕ್ಕೂಟವನ್ನು ರಚಿಸಲಾಯಿತು. ಇದು ಯಾವುದೇ ಸಾಫ್ಟ್‌ವೇರ್ ಎಂಜಿನಿಯರ್ ಮುಕ್ತವಾಗಿ ಪರಿಶೀಲಿಸಬಹುದಾದ, ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಮತ್ತು ಆಡಿಟ್ ಮಾಡಬಹುದಾದ ರಾಯಧನ-ಮುಕ್ತ IETF ಮಾನದಂಡಗಳನ್ನು ನೀಡಲು ಪ್ರಾರಂಭಿಸಿತು:

📜 2005: RFC 4226 (HOTP)

HMAC-Based One-Time Password Algorithm. ಭೌತಿಕ ಪುಶ್ ಬಟನ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ಕಡಿಮೆ-ವಿದ್ಯುತ್ ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್‌ಗಳಿಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಬಟನ್ ಒತ್ತುವುದರಿಂದ ಆಂತರಿಕ ಕೌಂಟರ್ ಹೆಚ್ಚಾಗುತ್ತದೆ ಮತ್ತು ಎಲ್‌ಸಿಡಿ ಪರದೆಯ ಮೇಲೆ 6-ಅಂಕಿಯ ಟೋಕನ್ ಪ್ರದರ್ಶಿತವಾಗುತ್ತದೆ.

📜 2011: RFC 6238 (TOTP)

Time-Based One-Time Password Algorithm. ಸ್ಮಾರ್ಟ್‌ಫೋನ್ ಬಳಕೆ ಹೆಚ್ಚಾದಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಸೆಲ್ಯುಲಾರ್ NTP ನೆಟ್‌ವರ್ಕ್ ಸಮಯ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಬಳಸುವ ಮೂಲಕ, TOTP ಭೌತಿಕ ಬಟನ್ ಸ್ಥಿತಿಯ ಹೊಂದಾಣಿಕೆಯಾಗದಿರುವ ಸಮಸ್ಯೆಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿವಾರಿಸಿತು.

02

HOTP (RFC 4226) ಆರ್ಕಿಟೆಕ್ಚರ್ ಮತ್ತು ಡೈನಾಮಿಕ್ ಟ್ರಂಕೇಶನ್ ಬೈಟ್ ಮೆಕ್ಯಾನಿಕ್ಸ್

HOTP ಯ ಪ್ರಮುಖ ಗಣಿತದ ವ್ಯಾಖ್ಯಾನವು ಅತ್ಯಂತ ಸಂಕ್ಷಿಪ್ತವಾಗಿದೆ:

HOTP(K, C) = Truncate(HMAC-SHA-1(K, C)) mod 10DigitCount

ಪ್ಯಾರಾಮೀಟರ್ ವಿವರಣೆ:

  • K: ಹಂಚಿದ ಸಮ್ಮಿತೀಯ ರಹಸ್ಯ ಕೀ (ಸಾಮಾನ್ಯವಾಗಿ Base32 ಡಿಕೋಡ್ ಮಾಡಲಾದ 160-ಬಿಟ್ / 20-ಬೈಟ್ ಬೈನರಿ ಅನುಕ್ರಮ).
  • C: 8-ಬೈಟ್ (64-ಬಿಟ್) ಬಿಗ್-ಎಂಡಿಯನ್ ಪೂರ್ಣಾಂಕ ಕೌಂಟರ್.
  • HMAC-SHA-1: 20-ಬೈಟ್ (160-ಬಿಟ್) ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಡೈಜೆಸ್ಟ್ ಅನ್ನು ಉತ್ಪಾದಿಸುವ ಕೀಲಿ-ಆಧಾರಿತ ಹ್ಯಾಶ್ ಸಂದೇಶ ದೃಢೀಕರಣ ಕೋಡ್.

🔍 ಡೈನಾಮಿಕ್ ಟ್ರಂಕೇಶನ್ (DT) 20 ಬೈಟ್‌ಗಳನ್ನು 6 ಅಂಕಿಗಳಾಗಿ ಹೇಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ:

HMAC-SHA1 ಡೈಜೆಸ್ಟ್ 160 ಬಿಟ್‌ಗಳನ್ನು (20 ಬೈಟ್‌ಗಳು) ಹೊಂದಿರುತ್ತದೆ. 6 ಏಕರೂಪದ ದಶಮಾಂಶ ಅಂಕಿಗಳನ್ನು ಹೊರತೆಗೆಯಲು RFC 4226 ರ ವಿಭಾಗ 5.3 ರಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ನಿರ್ಣಾಯಕ, ಘರ್ಷಣೆ-ನಿರೋಧಕ ಆಯ್ಕೆ ಕಾರ್ಯವಿಧಾನದ ಅಗತ್ಯವಿದೆ:

// ಹಂತ 1: ಡೈನಾಮಿಕ್ ಆಫ್‌ಸೆಟ್ ಲೆಕ್ಕಾಚಾರ ಮಾಡಿ
Offset = HS[19] & 0x0F
20-ಬೈಟ್ ಡೈಜೆಸ್ಟ್‌ನ ಕೊನೆಯ ಬೈಟ್ (ಇಂಡೆಕ್ಸ್ 19) ತೆಗೆದುಕೊಳ್ಳಿ. 0x0F ನೊಂದಿಗೆ ಮಾಸ್ಕ್ ಮಾಡುವುದರಿಂದ ಕಡಿಮೆ-ಕ್ರಮಾಂಕದ 4 ಬಿಟ್‌ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಿ, ಕಟ್ಟುನಿಟ್ಟಾಗಿ 0 ಮತ್ತು 15 (0x0 ನಿಂದ 0xF) ನಡುವಿನ ಪೂರ್ಣಾಂಕವನ್ನು ನೀಡುತ್ತದೆ. ಇದು ನಂತರದ 4-ಬೈಟ್ ಹೊರತೆಗೆಯುವಿಕೆಯು 20-ಬೈಟ್ ಬಫರ್ ಅನ್ನು ಮೀರುವುದಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ (ಏಕೆಂದರೆ 15 + 4 = 19).
// ಹಂತ 2: ಮಾಸ್ಕಿಂಗ್‌ನೊಂದಿಗೆ 4 ಅನುಕ್ರಮ ಬೈಟ್‌ಗಳನ್ನು ಹೊರತೆಗೆಯಿರಿ
P = ( (HS[Offset] & 0x7F) << 24 ) | ( (HS[Offset+1] & 0xFF) << 16 ) | ( (HS[Offset+2] & 0xFF) << 8 ) | ( HS[Offset+3] & 0xFF )
Offset ನಿಂದ ಪ್ರಾರಂಭಿಸಿ 4 ಬೈಟ್‌ಗಳನ್ನು ಹೊರತೆಗೆಯಿರಿ. 0x7F ಮಾಸ್ಕ್ ವಿವಿಧ ಸಿಪಿಯು ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಲ್ಲಿ ಸೈನ್ಡ್ ಪೂರ್ಣಾಂಕ ಓವರ್‌ಫ್ಲೋ ತಪ್ಪಿಸಲು ಅತ್ಯಂತ ಮಹತ್ವದ ಬಿಟ್ ಅನ್ನು ಶೂನ್ಯಗೊಳಿಸುತ್ತದೆ (ಸ್ವಚ್ಛ ಧನಾತ್ಮಕ 31-ಬಿಟ್ ಪೂರ್ಣಾಂಕವನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ).
// ಹಂತ 3: ಅಂತಿಮ ಅಂಕಿಗಳಿಗಾಗಿ ಮಾಡ್ಯುಲೊ ಅಂಕಗಣಿತ
OTP = P mod 106 = P mod 1000000
ಮಾಡ್ಯುಲೊ 1,000,000 ಅನ್ನು ಅನ್ವಯಿಸುವುದರಿಂದ ಅಂತಿಮ 6 ದಶಮಾಂಶ ಅಂಕಿಗಳು ಲಭ್ಯವಾಗುತ್ತವೆ, ಅಗತ್ಯವಿದ್ದರೆ ಆರಂಭಿಕ ಶೂನ್ಯಗಳೊಂದಿಗೆ ಪ್ಯಾಡ್ ಮಾಡಲಾಗುತ್ತದೆ (ಉದಾಹರಣೆಗೆ 748 ಎಂಬುದು "000748" ಆಗುತ್ತದೆ).
🧪 RFC 4226 ಅನುಬಂಧ D ಯಿಂದ ನಿಖರ ಪರೀಕ್ಷಾ ವೆಕ್ಟರ್:

ರಹಸ್ಯ ಕೀ ASCII "12345678901234567890" ಮತ್ತು ಕೌಂಟರ್ C = 0 ಎಂದು ಭಾವಿಸೋಣ. ಹೆಕ್ಸಾಡೆಸಿಮಲ್‌ನಲ್ಲಿ ಫಲಿತಾಂಶದ HMAC-SHA1 ಡೈಜೆಸ್ಟ್ ಹೀಗಿದೆ:

cc 93 cf 18 50 8d 94 93 4c 64 b6 6d 8b fb 87 fb 23 cb 4b 71

1. ಅಂತಿಮ ಬೈಟ್ 0x71 ಆಗಿದೆ. 0x71 & 0x0F = 0x01, ಆದ್ದರಿಂದ Offset = 1.
2. ಬೈಟ್‌ಗಳು 1 ರಿಂದ 4 ಹೀಗಿವೆ: 93 cf 18 50. MSB ಶೂನ್ಯಗೊಳಿಸಿದಾಗ 0x13cf1850 ಬರುತ್ತದೆ, ಇದು ದಶಮಾಂಶದಲ್ಲಿ 332,339,280 ಕ್ಕೆ ಸಮಾನವಾಗಿರುತ್ತದೆ.
3. 332339280 mod 1000000 = 339280. ಫಲಿತಾಂಶದ 6-ಅಂಕಿಯ OTP 339280 ಆಗಿದೆ!

03

TOTP (RFC 6238) ವಿಕಾಸ: ಟೈಮ್-ಸ್ಟೆಪ್ ಮ್ಯಾಜಿಕ್

HOTP ಕ್ಲೈಂಟ್‌ನಲ್ಲಿರುವ ಕೌಂಟರ್ ಅನ್ನು ಸರ್ವರ್‌ನೊಂದಿಗೆ ಸಿಂಕ್‌ನಲ್ಲಿ ಇರಿಸಿಕೊಳ್ಳುವ ಅಗತ್ಯವಿತ್ತು. ಸಾಫ್ಟ್‌ವೇರ್ ಸಾಧನಗಳಲ್ಲಿ, ಕೀಸ್ಟ್ರೋಕ್‌ಗಳು ಅಥವಾ ಬಟನ್ ಪ್ರೆಸ್‌ಗಳನ್ನು ಎಣಿಸುವುದು ನಿರಂತರ ಮಾನವ ದೋಷಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.

RFC 6238 ಕೌಂಟರ್ C ಅನ್ನು ಯುನಿಕ್ಸ್ ಎಪೋಕ್ ಗಡಿಯಾರದಿಂದ ನೇರವಾಗಿ ಪಡೆದ ಪ್ರತ್ಯೇಕ ಸಮಯದ ಹಂತ T ಯೊಂದಿಗೆ ಬದಲಾಯಿಸಿತು:

T = ⌊ (CurrentUnixTime - T0) / X ⌋
  • CurrentUnixTime: 1970-01-01 00:00:00 UTC ಯಿಂದ ಕಳೆದ ಸೆಕೆಂಡುಗಳು.
  • T0: ಎಪೋಕ್ ಆರಂಭಿಕ ಉಲ್ಲೇಖ (ಎಲ್ಲಾ ಆಧುನಿಕ ನಿಯೋಜನೆಗಳಲ್ಲಿ ಡೀಫಾಲ್ಟ್ ಆಗಿ 0).
  • X (ಸಮಯದ ಹಂತದ ವಿಂಡೋ): ಪ್ರಮಾಣಿತ ಶಿಫಾರಸು ಮಾಡಿದ ಅವಧಿ 30 ಸೆಕೆಂಡುಗಳು.
  • ಫ್ಲೋರ್ ಫಂಕ್ಷನ್ ⌊ ⌋: 30-ಸೆಕೆಂಡಿನ ವಿಂಡೋದೊಳಗಿನ ಯಾವುದೇ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್‌ಗೆ, T ಬದಲಾಗದೆ ಇರುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಎಪೋಕ್ ಸೆಕೆಂಡುಗಳು 1728211200 ಮತ್ತು 1728211229 ನಡುವೆ, T ನಿಖರವಾಗಿ ಅದೇ 64-ಬಿಟ್ ಪೂರ್ಣಾಂಕವನ್ನು ನೀಡುತ್ತದೆ.

ಬೈನರಿ ಸೀರಿಯಲೈಸೇಶನ್: T ಅನ್ನು ಲೆಕ್ಕಹಾಕಿದ ನಂತರ, ಅದನ್ನು 8-ಬೈಟ್ ಬಿಗ್-ಎಂಡಿಯನ್ ಬೈನರಿ ಬೈಟ್ ಬಫರ್‌ನಲ್ಲಿ ಪ್ಯಾಕ್ ಮಾಡಲಾಗುತ್ತದೆ (ಇದು HOTP ಯಲ್ಲಿನ ಕೌಂಟರ್ C ಯ ಮೆಮೊರಿ ರಚನೆಗೆ ಹೋಲುತ್ತದೆ). ಪರಿಣಾಮವಾಗಿ, ಏಕೀಕೃತ ಸೂತ್ರವು ಸರಳಗೊಳ್ಳುತ್ತದೆ:
TOTP(K, Time) = HOTP(K, T) ಈ ಗಣಿತದ ಸೊಬಗು, ನಿರಂತರ ಸ್ಥಿತಿ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಅಗತ್ಯವಿಲ್ಲದೆಯೇ ಆಥೆಂಟಿಕೇಟರ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಪ್ರತಿ 30 ಸೆಕೆಂಡಿಗೆ ಏಕಕಾಲದಲ್ಲಿ ಟೋಕನ್‌ಗಳನ್ನು ಏಕೆ ನವೀಕರಿಸುತ್ತವೆ ಎಂಬುದನ್ನು ವಿವರಿಸುತ್ತದೆ.

SHA-256 ಮತ್ತು SHA-512 ಗಾಗಿ RFC 6238 ಬೆಂಬಲ: RFC 4226 ಕಟ್ಟುನಿಟ್ಟಾಗಿ HMAC-SHA-1 ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿದರೆ, RFC 6238 HMAC-SHA-256 ಮತ್ತು HMAC-SHA-512 ಗಾಗಿ ಬೆಂಬಲವನ್ನು ವಿಸ್ತರಿಸಿತು. SHA-256 (32-ಬೈಟ್ ಡೈಜೆಸ್ಟ್) ನಲ್ಲಿ, ಆಫ್‌ಸೆಟ್ ಅನ್ನು ಬೈಟ್ 31 ರಿಂದ ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ (HS[31] & 0x0F); SHA-512 (64-ಬೈಟ್ ಡೈಜೆಸ್ಟ್) ನಲ್ಲಿ, ಆಫ್‌ಸೆಟ್ ಅನ್ನು ಬೈಟ್ 63 ರಿಂದ ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ (HS[63] & 0x0F). ಆದಾಗ್ಯೂ, 99.9% ವಾಣಿಜ್ಯ ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿ (Google, Microsoft, GitHub, AWS), ಹಳೆಯ ಮೊಬೈಲ್ ಕ್ಲೈಂಟ್ ಹೊಂದಾಣಿಕೆಯ ಕಾರಣದಿಂದಾಗಿ SHA-1 ಸಾರ್ವತ್ರಿಕ ಡೀಫಾಲ್ಟ್ ಆಗಿ ಉಳಿದಿದೆ.
04

ಸಮಗ್ರ ಮುಖಾಮುಖಿ ಹೋಲಿಕೆ ಮ್ಯಾಟ್ರಿಕ್ಸ್ (HOTP vs. TOTP)

ಆಯಾಮ HOTP (RFC 4226) TOTP (RFC 6238)
ಇನ್‌ಪುಟ್ ವೇರಿಯಬಲ್ ಈವೆಂಟ್ ಕೌಂಟರ್ C (ನಿರಂತರವಾಗಿ ಹೆಚ್ಚಾಗುವ) ಸಮಯದ ಹಂತ T (30-ಸೆಕೆಂಡ್ ಯುನಿಕ್ಸ್ ಎಪೋಕ್ ವಿಂಡೋ)
ಟೋಕನ್ ಜೀವಿತಾವಧಿ ಅನಿರ್ದಿಷ್ಟ (ಮುಂದಿನ ಲಾಗಿನ್‌ನಲ್ಲಿ ಬಳಸುವವರೆಗೆ ಮಾನ್ಯವಾಗಿರುತ್ತದೆ) ಕಟ್ಟುನಿಟ್ಟಾದ 30 ಸೆಕೆಂಡುಗಳು (ಸ್ವಯಂ ಅಮಾನ್ಯವಾಗುತ್ತದೆ)
ಸರ್ವರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಸ್ಟೇಟ್‌ಫುಲ್ (ಪ್ರತಿ ಲಾಗಿನ್‌ಗೆ ಪರಮಾಣು ಡೇಟಾಬೇಸ್ ಬರವಣಿಗೆ ಅಗತ್ಯವಿದೆ) ಸ್ಟೇಟ್‌ಲೆಸ್ (ಸ್ವತಂತ್ರ NTP ಪರಿಶೀಲನೆ)
ರೀಪ್ಲೇ ದಾಳಿಯ ಅಪಾಯ ಮಧ್ಯಮ (ಮಧ್ಯಪ್ರವೇಶಿಸಿದ ಟೋಕನ್ ಬಳಸುವವರೆಗೆ ಮಾನ್ಯವಾಗಿರುತ್ತದೆ) ಕನಿಷ್ಠ (ಪ್ರಸ್ತುತ ವಿಂಡೋದಲ್ಲಿ ಉಳಿದಿರುವ ಸೆಕೆಂಡುಗಳಿಗೆ ಸೀಮಿತವಾಗಿದೆ)
ಪ್ರಾಥಮಿಕ ವೈಫಲ್ಯ ಮೋಡ್ ಕೌಂಟರ್ ಡಿಸಿಂಕ್ರೊನೈಸೇಶನ್ (ಆಕಸ್ಮಿಕ ಕೀ ಪ್ರೆಸ್‌ಗಳು) ಗಡಿಯಾರ ವಿಚಲನೆ (ಕ್ಲೈಂಟ್ ಫೋನ್ ಸಮಯದ ವ್ಯತ್ಯಾಸ)
ಬೆಂಬಲಿತ ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಹ್ಯಾಶ್‌ಗಳು ಕೇವಲ HMAC-SHA-1 HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-512
ಉದ್ಯಮದ ಅಳವಡಿಕೆ ಲೆಗಸಿ ಬ್ಯಾಂಕಿಂಗ್ ಫೋಬ್‌ಗಳು, ವಿಶೇಷ ಭೌತಿಕ ಗೇಟ್‌ಗಳು ಆಧುನಿಕ ವೆಬ್ ಆಥೆಂಟಿಕೇಟರ್‌ಗಳಲ್ಲಿ 99.9%
05

ಡಿಸಿಂಕ್ರೊನೈಸೇಶನ್ vs ಸಮಯ ವಿಚಲನೆ: ತಾಂತ್ರಿಕ ಪರಿಹಾರಗಳು

ವಿತರಿಸಲಾದ ಉತ್ಪಾದನಾ ಪರಿಸರಗಳಲ್ಲಿ, ಕ್ಲೈಂಟ್‌ಗಳು ಮತ್ತು ಸರ್ವರ್‌ಗಳು ಅನಿವಾರ್ಯವಾಗಿ ವಿಚಲನೆಗೊಳ್ಳುತ್ತವೆ. ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು ಕ್ರಿಪ್ಟೋಗ್ರಾಫರ್‌ಗಳು ನಿರ್ದಿಷ್ಟ ಪರಿಹಾರ ವಿಂಡೋಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಿದ್ದಾರೆ:

⚙️ HOTP ಪರಿಹಾರ: ಲುಕ್-ಅಹೆಡ್ ಪರಿಶೀಲನಾ ವಿಂಡೋ (s)

ಒಬ್ಬ ಬಳಕೆದಾರರು ಸಬ್ಮಿಟ್ ಮಾಡದೆಯೇ ತಮ್ಮ ಟೋಕನ್ ಬಟನ್ ಅನ್ನು 5 ಬಾರಿ ಕ್ಲಿಕ್ ಮಾಡಿದರೆ, ಸರ್ವರ್ C ನಲ್ಲಿದ್ದಾಗ ಕ್ಲೈಂಟ್ ಕೌಂಟರ್ C+5 ತಲುಪುತ್ತದೆ.
RFC 4226 ಪ್ರಕಾರ, ದೃಢೀಕರಣದ ಸಮಯದಲ್ಲಿ ಸರ್ವರ್ [C+1, C+s] (ಸಾಮಾನ್ಯವಾಗಿ s=20) ವ್ಯಾಪ್ತಿಯ ಲುಕ್-ಅಹೆಡ್ ವಿಂಡೋವನ್ನು ಲೆಕ್ಕಹಾಕುತ್ತದೆ. ಹೊಂದಾಣಿಕೆ ಕಂಡುಬಂದರೆ, ಸರ್ವರ್ ತಕ್ಷಣವೇ ಮುಂದೆ ಸಾಗಿ ಕೌಂಟರ್ C ಅನ್ನು ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡುತ್ತದೆ.

⏱️ TOTP ಪರಿಹಾರ: ಸಮಯದ ವ್ಯತ್ಯಾಸ ಸಹಿಷ್ಣುತೆ (±1 ವಿಂಡೋ)

ನೆಟ್‌ವರ್ಕ್ ವಿಳಂಬ ಅಥವಾ ಕ್ಲೈಂಟ್ ಸಾಧನದ ಗಡಿಯಾರ ವಿಚಲನೆಯಿಂದಾಗಿ (ಉದಾಹರಣೆಗೆ, ಫೋನ್ ಗಡಿಯಾರವು 10 ಸೆಕೆಂಡುಗಳು ನಿಧಾನವಾಗಿದ್ದರೆ), ಟೋಕನ್‌ಗಳು ಪಕ್ಕದ ಸಮಯದ ಹಂತಗಳಲ್ಲಿ ಬರಬಹುದು.
ಪ್ರೊಡಕ್ಷನ್ ಸರ್ವರ್‌ಗಳು 3-ವಿಂಡೋ ಅರೇಯನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತವೆ: [T-1, T, T+1], ಇದು ಸ್ವೀಕಾರ ವಿಂಡೋವನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ 90 ಸೆಕೆಂಡುಗಳಿಗೆ ವಿಸ್ತರಿಸುತ್ತದೆ.

ಕಡ್ಡಾಯ ಆಂಟಿ-ರೀಪ್ಲೇ ನಿಯಮ: 90-ಸೆಕೆಂಡಿನ ವಿಚಲನೆ ವಿಂಡೋದಲ್ಲಿ ಮರುಪಂದ್ಯದ (replay) ದಾಳಿಗಳನ್ನು ತಡೆಗಟ್ಟಲು, ಸರ್ವರ್‌ಗಳು ಬಳಸಿದ ಟೋಕನ್‌ಗಳನ್ನು 90 ಸೆಕೆಂಡುಗಳ ಕಾಲ ಮೆಮೊರಿಯಲ್ಲಿ (ಉದಾ. Redis) ಕ್ಯಾಶ್ ಮಾಡಿ ಲಾಕ್ ಮಾಡಬೇಕು ಮತ್ತು ನಕಲಿ ಸಲ್ಲಿಕೆಗಳನ್ನು ತಿರಸ್ಕರಿಸಬೇಕು.
🛡️ ಕಾನ್ಸ್ಟಂಟ್-ಟೈಮ್ ಸ್ಟ್ರಿಂಗ್ ಹೋಲಿಕೆ (ಟೈಮಿಂಗ್ ದಾಳಿಯ ರಕ್ಷಣೆ):

ಬಳಕೆದಾರರು ಸಲ್ಲಿಸಿದ ಕೋಡ್ ಲೆಕ್ಕಹಾಕಿದ ಕೋಡ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆಯೇ ಎಂದು ಸರ್ವರ್‌ಗಳು ಪರಿಶೀಲಿಸಿದಾಗ, ಸಾಮಾನ್ಯ ಸ್ಟ್ರಿಂಗ್ ಸಮಾನತೆಯ ಪರಿಶೀಲನೆಗಳು (ಉದಾಹರಣೆಗೆ userOtp === serverOtp) ಮೊದಲ ಹೊಂದಾಣಿಕೆಯಾಗದ ಅಕ್ಷರದಲ್ಲೇ ನಿಲ್ಲುತ್ತವೆ. ಸೂಕ್ಷ್ಮ ನೆಟ್‌ವರ್ಕ್ ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯವನ್ನು ಅಳೆಯುವ ದಾಳಿಕೋರನು ಅಂಕಿಗಳನ್ನು ಹಂತ-ಹಂತವಾಗಿ ಮರುನಿರ್ಮಿಸಬಹುದು. ಸೈಡ್-ಚಾನೆಲ್ ಟೈಮಿಂಗ್ ವಿಶ್ಲೇಷಣೆಯನ್ನು ತಡೆಯಲು ಎಂಟರ್‌ಪ್ರೈಸ್ ಬ್ಯಾಕೆಂಡ್‌ಗಳು ಸ್ಥಿರ-ಸಮಯದ (constant-time) ಸಮಾನತೆಯ ಹೋಲಿಕೆಗಳನ್ನು (ಉದಾ. Node.js ನಲ್ಲಿ crypto.timingSafeEqual) ಜಾರಿಗೊಳಿಸುತ್ತವೆ.

06

ಆಧುನಿಕ ಇಂಟರ್ನೆಟ್ ಅನ್ನು TOTP ಏಕೆ ಗೆದ್ದಿತು

ವೆಬ್‌ನಾದ್ಯಂತ HOTP ಗಿಂತ TOTP ಯ ನಿರ್ಣಾಯಕ ಗೆಲುವಿಗೆ ಮೂರು ಆರ್ಕಿಟೆಕ್ಚರಲ್ ಅಗತ್ಯತೆಗಳು ಕಾರಣವಾಗಿವೆ:

☁️ ಸ್ಟೇಟ್‌ಲೆಸ್ ಕ್ಲೌಡ್ ಸ್ಕೇಲೆಬಿಲಿಟಿ

ವಿತರಿಸಲಾದ ಬಹು-ಪ್ರದೇಶದ ಮೈಕ್ರೋಸರ್ವಿಸ್‌ಗಳಲ್ಲಿ, NTP-ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಿದ ಗಡಿಯಾರವನ್ನು ಹೊಂದಿರುವ ಯಾವುದೇ ಸರ್ವರ್ ನಿದರ್ಶನವು ಕೇಂದ್ರೀಕೃತ ಡೇಟಾಬೇಸ್ ದಾಖಲೆಯನ್ನು ಪ್ರಶ್ನಿಸದೆ ಅಥವಾ ಲಾಕ್ ಮಾಡದೆ TOTP ಟೋಕನ್‌ಗಳನ್ನು ಮೌಲ್ಯೀಕರಿಸಬಹುದು.

📱 ಮೊಬೈಲ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯ ಸಿನರ್ಜಿ

ಸ್ಮಾರ್ಟ್‌ಫೋನ್‌ಗಳು ಸೆಲ್ಯುಲಾರ್ ಬೇಸ್ ಸ್ಟೇಷನ್‌ಗಳು ಮತ್ತು ಜಿಪಿಎಸ್ ಮೂಲಕ ತಮ್ಮ ಸಿಸ್ಟಮ್ ಗಡಿಯಾರಗಳನ್ನು ನಿರಂತರವಾಗಿ ಮಾಪನಾಂಕ ನಿರ್ಣಯಿಸುತ್ತವೆ, ಇದು ಭೌತಿಕ ಹಾರ್ಡ್‌ವೇರ್ ನಿರ್ವಹಣೆಯ ಅಗತ್ಯವಿಲ್ಲದೆ ಗಡಿಯಾರ ವಿಚಲನೆಯನ್ನು ನಿವಾರಿಸುತ್ತದೆ.

🛡️ ಕಿರಿದಾದ 30-ಸೆಕೆಂಡಿನ ದಾಳಿಯ ವಿಂಡೋ

HOTP ಟೋಕನ್‌ಗಳು ಬಳಸುವವರೆಗೆ ಅನಿರ್ದಿಷ್ಟವಾಗಿ ಮಾನ್ಯವಾಗಿರುತ್ತವೆ. TOTP ಟೋಕನ್‌ಗಳು 30 ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮುಕ್ತಾಯಗೊಳ್ಳುತ್ತವೆ, ಇದು ರಾಜಿ ಮಾಡಿಕೊಂಡ ಲಾಗ್‌ಗಳು ಮತ್ತು ನಿಷ್ಕ್ರಿಯ ಪ್ಯಾಕೆಟ್ ಕ್ಯಾಪ್ಚರ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.

🧮 ಶುದ್ಧ ಕ್ಲೈಂಟ್-ಸೈಡ್ RFC 6238 ಎಂಜಿನ್

2FA-Tool ನಲ್ಲಿ ರಿಯಲ್-ಟೈಮ್ TOTP ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಅನುಭವಿಸಿ

HMAC-SHA1 ಡೈನಾಮಿಕ್ ಟ್ರಂಕೇಶನ್ ಮೂಲಕ ನಿಮ್ಮ Base32 ರಹಸ್ಯ ಸ್ಟ್ರಿಂಗ್ ಹೇಗೆ ಡೈನಾಮಿಕ್ 6-ಅಂಕಿಯ ಕೋಡ್‌ಗಳಾಗಿ ರೂಪಾಂತರಗೊಳ್ಳುತ್ತದೆ ಎಂಬುದನ್ನು ವೀಕ್ಷಿಸಿ. ನಿಮ್ಮ ಬ್ರೌಸರ್‌ನಲ್ಲಿ 100% ಆಫ್‌ಲೈನ್.

ಆನ್‌ಲೈನ್ ಜನರೇಟರ್ ತೆರೆಯಿರಿ