- പ്രധാന ഇൻപുട്ട് വ്യത്യാസം: HOTP ഹാഷുകൾ കണക്കാക്കുന്നത് തുടർച്ചയായി വർദ്ധിക്കുന്ന കൗണ്ടർ C-ൽ നിന്നാണ്, എന്നാൽ TOTP കൗണ്ടർ C-ക്ക് പകരം യുണിക്സ് ടൈം സ്റ്റെപ്പ് T (CurrentUnixTime / 30) ഉപയോഗിക്കുന്നു.
- നേരിട്ടുള്ള പാരമ്പര്യം: TOTP ഗണിതശാസ്ത്രപരമായി HOTP-യുടെ ഒരു പ്രത്യേക രൂപമാണ്:
TOTP(K, Time) = HOTP(K, T). രണ്ട് അൽഗോരിതങ്ങളും ഒരേ ഡൈനാമിക് ട്രങ്കേഷൻ ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു. - നിർണ്ണായക ആർക്കിടെക്ചർ ഘടകം: HOTP സ്റ്റേറ്റ്ഫുൾ (Stateful) ആണ് (ഓരോ ലോഗിൻ പരിശോധനയ്ക്കും സെർവറുകൾ കൗണ്ടറുകൾ ഡിസ്കിൽ സേവ് ചെയ്യണം). TOTP സ്റ്റേറ്റ്ലെസ്സ് (Stateless) ആണ്, അതിനാൽ ക്ലൗഡ് മൈക്രോസർവീസുകൾക്ക് കേന്ദ്രീകൃത ഡാറ്റാബേസ് റൈറ്റ് ഓപ്പറേഷനുകൾ ഇല്ലാതെ ടോക്കണുകൾ പരിശോധിക്കാൻ സാധിക്കും.
ചരിത്രപരമായ പശ്ചാത്തലം: പ്രൊപ്രൈറ്ററി ഹാർഡ്വെയർ ടോക്കണുകളിൽ നിന്ന് ഓപ്പൺ വെബ് സ്റ്റാൻഡേർഡുകളിലേക്ക്
2000-കളുടെ തുടക്കത്തിൽ, കോർപ്പറേറ്റ് ടു-ഫാക്ടർ ഓതന്റിക്കേഷനിൽ RSA SecurID പോലുള്ള പ്രൊപ്രൈറ്ററി കീ ഫോബുകൾ ആധിപത്യം പുലർത്തിയിരുന്നു. ഈ അടഞ്ഞതും ചെലവേറിയതുമായ ഉപകരണങ്ങളിൽ എന്റർപ്രൈസ് സെർവറുകളുമായി സമന്വയിപ്പിച്ച ഇന്റേണൽ ക്വാർട്സ് ക്രിസ്റ്റലുകൾ അടങ്ങിയിരുന്നു. ഒരു സ്ഥാപനത്തിന് ആയിരക്കണക്കിന് ജീവനക്കാർക്ക് മൾട്ടി-ഫാക്ടർ സുരക്ഷ നൽകണമെങ്കിൽ, ഹാർഡ്വെയർ വാങ്ങുന്നതിനും ലൈസൻസിംഗിനുമുള്ള ചെലവ് വളരെ ഭീമമായിരുന്നു.
പ്രൊപ്രൈറ്ററി വെണ്ടർമാരിൽ നിന്ന് ഓതന്റിക്കേഷനെ മോചിപ്പിക്കുന്നതിനായി, ഏത് സോഫ്റ്റ്വെയർ എഞ്ചിനീയർക്കും സൗജന്യമായി പരിശോധിക്കാനും നടപ്പിലാക്കാനും ഓഡിറ്റ് ചെയ്യാനും കഴിയുന്ന ഓപ്പൺ IETF മാനദണ്ഡങ്ങൾ നൽകുന്നതിന് വ്യവസായ പ്രമുഖർ ചേർന്ന് OATH (Initiative for Open Authentication) കൺസോർഷ്യം രൂപീകരിച്ചു:
HMAC-Based One-Time Password Algorithm. ഫിസിക്കൽ പുഷ് ബട്ടണുകളുള്ള ലോ-പവർ മൈക്രോകൺട്രോളറുകൾക്കായി നിർമ്മിച്ചത്. ബട്ടൺ അമർത്തുന്നത് ആന്തരിക കൗണ്ടർ വർദ്ധിപ്പിക്കുകയും LCD സ്ക്രീനിൽ 6 അക്ക ടോക്കൺ പ്രദർശിപ്പിക്കുകയും ചെയ്യുന്നു.
Time-Based One-Time Password Algorithm. സ്മാർട്ട്ഫോൺ ഉപയോഗം വർദ്ധിച്ചതോടെ രൂപകൽപ്പന ചെയ്തത്. മൊബൈൽ നെറ്റ്വർക്ക് NTP ടൈം സിൻക്രൊണൈസേഷൻ പ്രയോജനപ്പെടുത്തി, TOTP ബട്ടൺ അമർത്തലുകളിലെ പൊരുത്തക്കേടുകൾ പൂർണ്ണമായും ഇല്ലാതാക്കി.
HOTP (RFC 4226) ആർക്കിടെക്ചറും ഡൈനാമിക് ട്രങ്കേഷൻ ബൈറ്റ് മെക്കാനിക്സും
HOTP-യുടെ പ്രധാന ഗണിതശാസ്ത്ര നിർവചനം വളരെ ലളിതമാണ്:
പരാമീറ്റർ വിശദാംശങ്ങൾ:
K: പങ്കിട്ട സിമെട്രിക് സീക്രട്ട് കീ (സാധാരണയായി Base32 ഡീകോഡ് ചെയ്ത 160-ബിറ്റ് / 20-ബൈറ്റ് ബൈനറി സീക്വൻസ്).C: 8-ബൈറ്റ് (64-ബിറ്റ്) ബിഗ്-എൻഡിയൻ ഇന്റിജർ കൗണ്ടർ.HMAC-SHA-1: 20-ബൈറ്റ് (160-ബിറ്റ്) ക്രിപ്റ്റോഗ്രാഫിക് ഡൈജസ്റ്റ് സൃഷ്ടിക്കുന്ന കീഡ്-ഹാഷ് മെസ്സേജ് ഓതന്റിക്കേഷൻ കോഡ്.
🔍 ഡൈനാമിക് ട്രങ്കേഷൻ (DT) എങ്ങനെയാണ് 20 ബൈറ്റുകളെ 6 അക്കങ്ങളാക്കി മാറ്റുന്നത്:
HMAC-SHA1 ഡൈജസ്റ്റിൽ 160 ബിറ്റുകൾ (20 ബൈറ്റുകൾ) അടങ്ങിയിരിക്കുന്നു. കൃത്യമായ 6 ഡെസിമൽ അക്കങ്ങൾ വേർതിരിച്ചെടുക്കുന്നതിന് RFC 4226 സെക്ഷൻ 5.3-ൽ നിർവചിച്ചിരിക്കുന്ന കൊളീഷൻ-റെസിസ്റ്റന്റ് രീതി താഴെ പറയുന്നതാണ്:
സീക്രട്ട് കീ ASCII "12345678901234567890" ആണെന്നും കൗണ്ടർ C = 0 ആണെന്നും കരുതുക. ഹെക്സാഡെസിമലിൽ ലഭിക്കുന്ന HMAC-SHA1 ഡൈജസ്റ്റ് ഇതാണ്:
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 ആണ്!
TOTP (RFC 6238) പരിണാമം: ടൈം-സ്റ്റെപ്പ് മാജിക്
ക്ലയന്റിലെ കൗണ്ടർ സെർവറുമായി സമന്വയിപ്പിച്ച് നിലനിർത്താൻ HOTP-ക്ക് ആവശ്യമായിരുന്നു. സോഫ്റ്റ്വെയർ ഉപകരണങ്ങളിൽ, ബട്ടൺ പ്രസ്സുകൾ എണ്ണുന്നത് മനുഷ്യസഹജമായ പിശകുകൾക്ക് കാരണമാകുന്നു.
RFC 6238 കൗണ്ടർ C-ക്ക് പകരം യുണിക്സ് ക്ലോക്കിൽ നിന്ന് നേരിട്ട് കണക്കാക്കുന്ന ഡിസ്ക്രീറ്റ് ടൈം സ്റ്റെപ്പ് T ഉപയോഗിച്ചു:
- 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 സെക്കൻഡിലും ടോക്കണുകൾ സ്വയമേവ മാറ്റുന്നത് എന്തുകൊണ്ടാണെന്ന് ഈ ഗണിതശാസ്ത്ര ലാളിത്യം വ്യക്തമാക്കുന്നു.
HS[31] & 0x0F); SHA-512-ൽ (64-ബൈറ്റ് ഡൈജസ്റ്റ്) ഓഫ്സെറ്റ് 63-ാം ബൈറ്റിൽ നിന്നാണ് എടുക്കുന്നത് (HS[63] & 0x0F). എന്നിരുന്നാലും, വാണിജ്യ വെബ്സൈറ്റുകളിൽ 99.9%-ലും (Google, Microsoft, GitHub, AWS) പഴയ മൊബൈൽ ക്ലയന്റുകളുമായുള്ള പൊരുത്തക്കേടുകൾ ഒഴിവാക്കാൻ SHA-1 തന്നെയാണ് പ്രധാനമായും ഉപയോഗിക്കുന്നത്.
സമഗ്രമായ താരതമ്യ പട്ടിക (HOTP vs. TOTP)
| ഘടകം | HOTP (RFC 4226) | TOTP (RFC 6238) |
|---|---|---|
| ഇൻപുട്ട് വേരിയബിൾ | ഇവന്റ് കൗണ്ടർ C (തുടർച്ചയായി വർദ്ധിക്കുന്നത്) | ടൈം സ്റ്റെപ്പ് T (30 സെക്കൻഡ് യുണിക്സ് വിൻഡോ) |
| ടോക്കൺ കാലാവധി | അനിശ്ചിതകാലം (അടുത്ത ലോഗിൻ വരെ സാധുതയുള്ളത്) | കൃത്യം 30 സെക്കൻഡ് (സ്വയം അസാധുവാകുന്നു) |
| സെർവർ ആർക്കിടെക്ചർ | സ്റ്റേറ്റ്ഫുൾ (ഓരോ ലോഗിനിലും ഡാറ്റാബേസ് റൈറ്റ് ആവശ്യമാണ്) | സ്റ്റേറ്റ്ലെസ്സ് (സ്വതന്ത്ര NTP പരിശോധന) |
| റീപ്ലേ അറ്റാക്ക് സാധ്യത | ഇടത്തരം (ഉപയോഗിക്കുന്നത് വരെ ടോക്കൺ സാധുതയുള്ളതാണ്) | വളരെ കുറവ് (നിലവിലെ 30 സെക്കൻഡിനുള്ളിൽ മാത്രം) |
| പ്രധാന തകരാർ കാരണം | കൗണ്ടർ ഡിസിൻക് (അബദ്ധത്തിൽ ബട്ടൺ അമർത്തുന്നത് വഴി) | ക്ലോക്ക് ഡ്രിഫ്റ്റ് (ഫോണിലെ സമയ വ്യത്യാസം) |
| പിന്തുണയ്ക്കുന്ന ഹാഷുകൾ | HMAC-SHA-1 മാത്രം | HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-512 |
| വ്യവസായ ഉപയോഗം | പഴയ ബാങ്കിംഗ് ഉപകരണങ്ങൾ, സുരക്ഷാ ഗേറ്റുകൾ | 99.9% ആധുനിക വെബ് ഓതന്റിക്കേറ്ററുകൾ |
ഡിസിൻക്രൊണൈസേഷനും ടൈം ഡ്രിഫ്റ്റും: സാങ്കേതിക പരിഹാരങ്ങൾ
വിതരണം ചെയ്യപ്പെട്ട പ്രൊഡക്ഷൻ പരിതസ്ഥിതികളിൽ ക്ലയന്റുകളും സെർവറുകളും തമ്മിൽ വ്യത്യാസങ്ങൾ ഉണ്ടാകാറുണ്ട്. വിശ്വാസ്യത നിലനിർത്താൻ ക്രിപ്റ്റോഗ്രാഫർമാർ പ്രത്യേക കോമ്പൻസേഷൻ വിൻഡോകൾ രൂപകൽപ്പന ചെയ്തിട്ടുണ്ട്:
ഒരു ഉപയോക്താവ് ലോഗിൻ ചെയ്യാതെ 5 തവണ ടോക്കൺ ബട്ടൺ അമർത്തിയാൽ, ക്ലയന്റ് കൗണ്ടർ C+5-ൽ എത്തുകയും സെർവർ C-ൽ തുടരുകയും ചെയ്യും.
ഓതന്റിക്കേഷൻ സമയത്ത് സെർവർ [C+1, C+s] (സാധാരണയായി s=20) എന്ന വിൻഡോ പരിശോധിക്കണമെന്ന് RFC 4226 വ്യക്തമാക്കുന്നു. പൊരുത്തം കണ്ടെത്തിയാൽ, സെർവർ കൗണ്ടർ C തൽക്ഷണം അപ്ഡേറ്റ് ചെയ്യുന്നു.
നെറ്റ്വർക്ക് ലേറ്റൻസി അല്ലെങ്കിൽ ക്ലയന്റ് ഫോൺ ക്ലോക്കിലെ വ്യത്യാസങ്ങൾ കാരണം (ഉദാ: ഫോൺ ക്ലോക്ക് 10 സെക്കൻഡ് പിന്നിലായാൽ), അടുത്തുള്ള ടൈം സ്റ്റെപ്പുകളിൽ ടോക്കണുകൾ എത്തിയേക്കാം.
പ്രൊഡക്ഷൻ സെർവറുകൾ 3 വിൻഡോകൾ പരിശോധിക്കുന്നു: [T-1, T, T+1], ഇത് സ്വീകാര്യതാ വിൻഡോ 90 സെക്കൻഡായി ഫലപ്രദമായി വിപുലീകരിക്കുന്നു.
ഉപയോക്താവ് സമർപ്പിച്ച കോഡ് കണക്കാക്കിയ കോഡുമായി പൊരുത്തപ്പെടുന്നുണ്ടോ എന്ന് സെർവറുകൾ പരിശോധിക്കുമ്പോൾ, സാധാരണ സ്ട്രിംഗ് താരതമ്യങ്ങൾ (userOtp === serverOtp പോലെ) ആദ്യത്തെ തെറ്റായ അക്ഷരത്തിൽ തന്നെ അവസാനിക്കുന്നു. നെറ്റ്വർക്ക് റെസ്പോൺസ് സമയം കൃത്യമായി അളക്കുന്നതിലൂടെ അക്രമികൾക്ക് ഓരോ അക്കങ്ങളും കണ്ടെത്താനാകും. സൈഡ്-ചാനൽ ടൈമിംഗ് വിശകലനത്തെ പ്രതിരോധിക്കാൻ എന്റർപ്രൈസ് സെർവറുകൾ കോൺസ്റ്റന്റ്-ടൈം താരതമ്യം (ഉദാ: Node.js-ലെ crypto.timingSafeEqual) ഉപയോഗിക്കുന്നു.
എന്തുകൊണ്ട് TOTP ആധുനിക ഇന്റർനെറ്റിൽ വിജയിച്ചു
വെബിലുടനീളം HOTP-യേക്കാൾ TOTP വിജയിച്ചതിന് പിന്നിൽ മൂന്ന് പ്രധാന ആർക്കിടെക്ചർ ഘടകങ്ങളാണുള്ളത്:
വിവിധ പ്രദേശങ്ങളിലായി വിന്യസിച്ചിരിക്കുന്ന മൈക്രോസർവീസുകളിൽ, NTP സമന്വയിപ്പിച്ച ക്ലോക്കുള്ള ഏത് സെർവർ ഇൻസ്റ്റൻസിനും കേന്ദ്രീകൃത ഡാറ്റാബേസ് അന്വേഷിക്കാതെ തന്നെ TOTP പരിശോധിക്കാൻ കഴിയും.
സെല്ലുലാർ ടവറുകൾ വഴിയും GPS വഴിയും സ്മാർട്ട്ഫോണുകൾ അവയുടെ സിസ്റ്റം ക്ലോക്ക് സ്വയമേവ ക്രമീകരിക്കുന്നു, ഇത് ഹാർഡ്വെയർ മെയിന്റനൻസ് ഇല്ലാതെ തന്നെ ക്ലോക്ക് ഡ്രിഫ്റ്റ് ഒഴിവാക്കുന്നു.
HOTP ടോക്കണുകൾ ഉപയോഗിക്കുന്നത് വരെ സാധുതയുള്ളതായി തുടരുമ്പോൾ, TOTP ടോക്കണുകൾ 30 സെക്കൻഡിനുള്ളിൽ കാലഹരണപ്പെടുന്നു, ഇത് ചോർന്ന ലോഗുകളിലെ വിവരങ്ങൾ ഉപയോഗശൂന്യമാക്കുന്നു.
2FA-Tool-ൽ തത്സമയ TOTP കണക്കുകൂട്ടലുകൾ അനുഭവിക്കുക
HMAC-SHA1 ഡൈനാമിക് ട്രങ്കേഷൻ വഴി നിങ്ങളുടെ Base32 രഹസ്യ സ്ട്രിംഗ് എങ്ങനെ 6 അക്ക കോഡുകളായി മാറുന്നുവെന്ന് കാണുക. നിങ്ങളുടെ ബ്രൗസറിൽ 100% ഓഫ്ലൈനായി പ്രവർത്തിക്കുന്നു.
📚 അനുബന്ധ സുരക്ഷാ ഗൈഡുകൾ
ഓഫ്ലൈൻ QR കോഡുകളും ക്ലൗഡ് സമന്വയവും ഉപയോഗിച്ച് സ്മാർട്ട്ഫോണുകൾക്കിടയിൽ 2FA അക്കൗണ്ടുകൾ എങ്ങനെ മാറ്റാം.
കംപ്ലയിൻസ് നിയമങ്ങൾ, റിക്കവറി കോഡുകൾ സൂക്ഷിക്കൽ, SSH കീ ഇന്റർപ്ലേ, റെസ്ക്യൂ പ്രക്രിയകൾ.
Google, Microsoft, Steam, Binance, Apple, Discord എന്നിവയിലുടനീളം അക്കൗണ്ട് പ്രവേശനം എങ്ങനെ വീണ്ടെടുക്കാം.