- அடிப்படை உள்ளீட்டு வேறுபாடு: HOTP ஆனது ஒரு சீராக அதிகரிக்கும் கவுண்டர் C-லிருந்து ஹாஷ்களைக் கணக்கிடுகிறது, அதேசமயம் TOTP ஆனது C-க்கு பதிலாக எபோக் நேரத்திலிருந்து பெறப்பட்ட ஒரு நேரப் படி T (தற்போதையUnixநேரம் / 30) ஐப் பயன்படுத்துகிறது.
- நேரடி மரபுரிமை: TOTP என்பது கணித ரீதியாக HOTP-ன் ஒரு சிறப்பு வடிவமாகும்:
TOTP(K, Time) = HOTP(K, T). இரண்டு அல்காரிதம்களும் முற்றிலும் ஒரே மாதிரியான டைனமிக் ட்ரங்க்கேஷன் (Dynamic Truncation) செயல்பாட்டைப் பயன்படுத்துகின்றன. - கட்டமைப்பு முடிவெடுக்கும் காரணி: 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-க்கு பதிலாக Unix எபோக் கடிகாரத்திலிருந்து நேரடியாக பெறப்பட்ட ஒரு தனித்துவமான நேரப் படி 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). இருப்பினும், வணிக வலைத்தளங்களில் (Google, Microsoft, GitHub, AWS) 99.9% பழைய மொபைல் கிளையன்ட் இணக்கத்தன்மை காரணமாக SHA-1 இயல்புநிலையாக உள்ளது.
விரிவான அருகருகே ஒப்பீட்டு அட்டவணை (HOTP vs. TOTP)
| பரிமாணம் | HOTP (RFC 4226) | TOTP (RFC 6238) |
|---|---|---|
| உள்ளீட்டு மாறி | நிகழ்வு கவுண்டர் C (சீராக அதிகரிக்கும்) | நேரப் படி T (30-வினாடி Unix எபோக் சாளரம்) |
| டோக்கன் ஆயுட்காலம் | காலவரையற்றது (அடுத்த உள்நுழைவில் பயன்படுத்தப்படும் வரை செல்லுபடியாகும்) | கடுமையான 30 வினாடிகள் (தானாக செல்லாததாகும்) |
| சர்வர் கட்டமைப்பு | நிலை சார்ந்தது (ஒவ்வொரு உள்நுழைவிற்கும் அணுகல் தரவுத்தள எழுத்துக்கள் தேவை) | நிலையற்றது (Stateless - சுயாதீன NTP நேர சரிபார்ப்பு) |
| ரீப்ளே தாக்குதல் வெளிப்பாடு | மிதமானது (இடைமறிக்கப்பட்ட டோக்கன் பயன்படுத்தப்படும் வரை செல்லுபடியாகும்) | மிகக் குறைவு (தற்போதைய சாளரத்தில் மீதமுள்ள வினாடிகளுக்கு மட்டுமே கட்டுப்படுத்தப்பட்டது) |
| முதன்மை தோல்வி முறை | கவுண்டர் ஒத்திசைவின்மை (தற்செயலான பொத்தான் அழுத்தங்கள்) | கடிகார நகர்வு (வாடிக்கையாளர் தொலைபேசி நேர விலகல்) |
| ஆதரிக்கப்படும் கிரிப்டோகிராஃபிக் ஹாஷ்கள் | HMAC-SHA-1 மட்டுமே | HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-512 |
| தொழில்துறை ஏற்பு | மரபு வங்கி ஃபாப்கள், பிரத்யேக இயற்பியல் வாயில்கள் | நவீன வலை அங்கீகாரிகளில் 99.9% |
ஒத்திசைவின்மை vs நேர நகர்வு: தொழில்நுட்ப தீர்வுகள்
விநியோகிக்கப்பட்ட உற்பத்தி சூழல்களில், கிளையன்ட்களும் சேவையகங்களும் தவிர்க்க முடியாமல் விலகுகின்றன. நம்பகத்தன்மையை பராமரிக்க கிரிப்டோகிராஃபர்கள் வெளிப்படையான இழப்பீட்டு சாளரங்களை வடிவமைத்துள்ளனர்:
ஒரு பயனர் சமர்ப்பிக்காமல் தனது டோக்கன் பொத்தானை 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 குறியீடுகள் மற்றும் Cloud Sync ஐப் பயன்படுத்தி ஸ்மார்ட்போன்களுக்கு இடையே 2FA கணக்குகளை பாதுகாப்பாக மாற்றுதல்.
இணக்க விதிகள், மீட்புக் குறியீடுகளைச் சேமித்தல், SSH விசை தொடர்பு மற்றும் மீட்பு பணிப்பாய்வுகள்.
Google, Microsoft, Steam, Binance, Apple மற்றும் Discord ஆகியவற்றில் அணுகலை எவ்வாறு மீட்டெடுப்பது.