- ਬੁਨਿਆਦੀ ਇਨਪੁਟ ਅੰਤਰ: HOTP ਇੱਕ ਲਗਾਤਾਰ ਵਧ ਰਹੇ ਕਾਊਂਟਰ C ਤੋਂ ਹੈਸ਼ ਗਣਨਾ ਕਰਦਾ ਹੈ, ਜਦੋਂ ਕਿ TOTP C ਨੂੰ ਇੱਕ ਯੂਨਿਕਸ ਯੁੱਗ ਸਮਾਂ ਕਦਮ T (CurrentUnixTime / 30) ਨਾਲ ਬਦਲਦਾ ਹੈ।
- ਸਿੱਧਾ ਸੰਬੰਧ: TOTP ਗਣਿਤਕ ਤੌਰ 'ਤੇ HOTP ਦਾ ਹੀ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਰੂਪ ਹੈ:
TOTP(K, Time) = HOTP(K, T)। ਦੋਵੇਂ ਐਲਗੋਰਿਦਮ ਬਿਲਕੁਲ ਇੱਕੋ ਜਿਹੇ Dynamic Truncation ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। - ਆਰਕੀਟੈਕਚਰਲ ਫ਼ੈਸਲਾਕੁੰਨ ਕਾਰਕ: HOTP ਸਟੇਟਫੁੱਲ (Stateful) ਹੈ (ਸਰਵਰਾਂ ਨੂੰ ਹਰੇਕ ਪ੍ਰਮਾਣੀਕਰਨ 'ਤੇ ਡਿਸਕ 'ਤੇ ਕਾਊਂਟਰਾਂ ਨੂੰ ਲਾਕ ਅਤੇ ਸਟੋਰ ਕਰਨਾ ਪੈਂਦਾ ਹੈ)। TOTP ਸਟੇਟਲੈੱਸ (Stateless) ਹੈ, ਜਿਸ ਨਾਲ ਆਧੁਨਿਕ ਕਲਾਊਡ ਮਾਈਕ੍ਰੋਸਰਵਿਸਿਜ਼ ਬਿਨਾਂ ਕੇਂਦਰੀ ਡਾਟਾਬੇਸ ਲਿਖਣ ਕਾਰਜਾਂ ਦੇ ਲੋਡ-ਬੈਲੈਂਸਡ ਕਲੱਸਟਰਾਂ ਵਿੱਚ ਟੋਕਨਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰ ਸਕਦੀਆਂ ਹਨ।
ਇਤਿਹਾਸਕ ਪਿਛੋਕੜ: ਹਾਰਡਵੇਅਰ ਟੋਕਨਾਂ ਤੋਂ ਓਪਨ ਵੈੱਬ ਸਟੈਂਡਰਡਾਂ ਤੱਕ
2000 ਦੇ ਦਹਾਕੇ ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ, ਕਾਰਪੋਰੇਟ ਦੋ-ਪੜਾਵੀ ਪ੍ਰਮਾਣੀਕਰਨ 'ਤੇ RSA SecurID ਵਰਗੇ ਮਲਕੀਅਤ ਵਾਲੇ ਹਾਰਡਵੇਅਰ ਟੋਕਨਾਂ ਦਾ ਦਬਦਬਾ ਸੀ। ਇਨ੍ਹਾਂ ਬੰਦ ਅਤੇ ਮਹਿੰਗੇ ਉਪਕਰਣਾਂ ਵਿੱਚ ਅੰਦਰੂਨੀ ਕੁਆਰਟਜ਼ ਕ੍ਰਿਸਟਲ ਹੁੰਦੇ ਸਨ ਜੋ ਕੰਪਨੀ ਦੇ ਸਰਵਰਾਂ ਨਾਲ ਸਮਕਾਲੀ ਹੁੰਦੇ ਸਨ। ਜੇਕਰ ਕੋਈ ਸੰਸਥਾ ਹਜ਼ਾਰਾਂ ਕਰਮਚਾਰੀਆਂ ਨੂੰ ਮਲਟੀ-ਫੈਕਟਰ ਸੁਰੱਖਿਆ ਪ੍ਰਦਾਨ ਕਰਨਾ ਚਾਹੁੰਦੀ ਸੀ, ਤਾਂ ਹਾਰਡਵੇਅਰ ਖਰੀਦ ਅਤੇ ਲਾਇਸੈਂਸ ਦੇ ਖ਼ਰਚੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਸਨ।
ਪ੍ਰਮਾਣੀਕਰਨ ਨੂੰ ਮਲਕੀਅਤ ਵਾਲੇ ਵਿਕਰੇਤਾਵਾਂ ਤੋਂ ਮੁਕਤ ਕਰਨ ਲਈ, ਉਦਯੋਗ ਦੇ ਆਗੂਆਂ ਦੁਆਰਾ OATH (Initiative for Open Authentication) ਕੰਸੋਰਟੀਅਮ ਦਾ ਗਠਨ ਕੀਤਾ ਗਿਆ ਤਾਂ ਜੋ ਖੁੱਲ੍ਹੇ, ਰਾਇਲਟੀ-ਮੁਕਤ IETF ਸਟੈਂਡਰਡ ਪ੍ਰਦਾਨ ਕੀਤੇ ਜਾ ਸਕਣ ਜਿਨ੍ਹਾਂ ਦੀ ਕੋਈ ਵੀ ਸਾਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰ ਸੁਤੰਤਰ ਤੌਰ 'ਤੇ ਜਾਂਚ, ਲਾਗੂਕਰਨ ਅਤੇ ਆਡਿਟ ਕਰ ਸਕੇ:
HMAC-Based One-Time Password Algorithm। ਭੌਤਿਕ ਪੁਸ਼ ਬਟਨਾਂ ਵਾਲੇ ਘੱਟ-ਪਾਵਰ ਮਾਈਕ੍ਰੋਕੰਟਰੋਲਰਾਂ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ। ਬਟਨ ਦਬਾਉਣ ਨਾਲ ਅੰਦਰੂਨੀ ਕਾਊਂਟਰ ਵਧਦਾ ਹੈ ਅਤੇ ਇੱਕ LCD ਸਕ੍ਰੀਨ 'ਤੇ 6-ਅੰਕਾਂ ਦਾ ਟੋਕਨ ਛਪਦਾ ਹੈ।
Time-Based One-Time Password Algorithm। ਜਿਵੇਂ ਹੀ ਸਮਾਰਟਫ਼ੋਨਾਂ ਦੀ ਵਰਤੋਂ ਵਧੀ, ਇਸਨੂੰ ਡਿਜ਼ਾਈਨ ਕੀਤਾ ਗਿਆ। ਸੈਲੂਲਰ NTP ਨੈੱਟਵਰਕ ਸਮਾਂ ਸਮਕਾਲੀਕਰਨ ਦਾ ਲਾਭ ਉਠਾ ਕੇ, TOTP ਨੇ ਭੌਤਿਕ ਬਟਨ ਸਥਿਤੀ ਦੇ ਮੇਲ ਨਾ ਖਾਣ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਖ਼ਤਮ ਕਰ ਦਿੱਤਾ।
HOTP (RFC 4226) ਆਰਕੀਟੈਕਚਰ ਅਤੇ Dynamic Truncation ਬਾਈਟ ਮਕੈਨਿਕਸ
HOTP ਦੀ ਮੁੱਖ ਗਣਿਤਕ ਪਰਿਭਾਸ਼ਾ ਬਹੁਤ ਸਰਲ ਅਤੇ ਸਪਸ਼ਟ ਹੈ:
ਪੈਰਾਮੀਟਰਾਂ ਦਾ ਵੇਰਵਾ:
K: ਸਾਂਝੀ ਸਮਮਿਤੀ ਗੁਪਤ ਕੁੰਜੀ (ਆਮ ਤੌਰ 'ਤੇ Base32 ਡੀਕੋਡ ਕੀਤੀ 160-ਬਿੱਟ / 20-ਬਾਈਟ ਬਾਈਨਰੀ ਕ੍ਰਮ)।C: 8-ਬਾਈਟ (64-ਬਿੱਟ) ਬਿਗ-ਐਂਡੀਅਨ ਪੂਰਨ ਅੰਕ ਕਾਊਂਟਰ।HMAC-SHA-1: ਕੁੰਜੀ ਵਾਲਾ ਹੈਸ਼ ਸੁਨੇਹਾ ਪ੍ਰਮਾਣੀਕਰਨ ਕੋਡ ਜੋ 20-ਬਾਈਟ (160-ਬਿੱਟ) ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਡਾਇਜੈਸਟ ਤਿਆਰ ਕਰਦਾ ਹੈ।
🔍 Dynamic Truncation (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 ਬਨਾਮ 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% ਆਧੁਨਿਕ ਵੈੱਬ ਪ੍ਰਮਾਣੀਕਰਤਾ |
ਡੀਸਿੰਕ੍ਰੋਨਾਈਜ਼ੇਸ਼ਨ ਬਨਾਮ ਟਾਈਮ ਡ੍ਰਿਫਟ: ਤਕਨੀਕੀ ਹੱਲ
ਵੰਡੇ ਹੋਏ ਪ੍ਰੋਡਕਸ਼ਨ ਵਾਤਾਵਰਣ ਵਿੱਚ, ਕਲਾਇੰਟ ਅਤੇ ਸਰਵਰ ਦੇ ਸਮੇਂ ਵਿੱਚ ਥੋੜ੍ਹਾ ਅੰਤਰ ਆਉਣਾ ਸੁਭਾਵਿਕ ਹੈ। ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਰਾਂ ਨੇ ਭਰੋਸੇਯੋਗਤਾ ਬਣਾਈ ਰੱਖਣ ਲਈ ਵਿਸ਼ੇਸ਼ ਮੁਆਵਜ਼ਾ ਵਿੰਡੋਜ਼ ਤਿਆਰ ਕੀਤੀਆਂ ਹਨ:
ਜੇਕਰ ਕੋਈ ਉਪਭੋਗਤਾ ਫਾਰਮ ਜਮ੍ਹਾ ਕੀਤੇ ਬਿਨਾਂ ਆਪਣੇ ਟੋਕਨ ਬਟਨ ਨੂੰ 5 ਵਾਰ ਦਬਾਉਂਦਾ ਹੈ, ਤਾਂ ਕਲਾਇੰਟ ਕਾਊਂਟਰ C+5 'ਤੇ ਪਹੁੰਚ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਕਿ ਸਰਵਰ C 'ਤੇ ਰਹਿੰਦਾ ਹੈ।
RFC 4226 ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ ਕਿ ਪ੍ਰਮਾਣੀਕਰਨ 'ਤੇ, ਸਰਵਰ ਇੱਕ ਲੁੱਕ-ਅਹੈੱਡ ਵਿੰਡੋ [C+1, C+s] (ਆਮ ਤੌਰ 'ਤੇ s=20) ਦੀ ਗਣਨਾ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਕੋਡ ਮੇਲ ਖਾਂਦਾ ਹੈ, ਤਾਂ ਸਰਵਰ ਤੁਰੰਤ ਅੱਗੇ ਵਧਦਾ ਹੈ ਅਤੇ ਕਾਊਂਟਰ 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 ਗਣਨਾਵਾਂ ਦਾ ਅਨੁਭਵ ਕਰੋ
ਦੇਖੋ ਕਿ ਕਿਵੇਂ ਤੁਹਾਡੀ Base32 ਸੀਕਰੇਟ ਸਟ੍ਰਿੰਗ HMAC-SHA1 dynamic truncation ਰਾਹੀਂ ਡਾਇਨਾਮਿਕ 6-ਅੰਕਾਂ ਦੇ ਕੋਡਾਂ ਵਿੱਚ ਬਦਲਦੀ ਹੈ। ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ 100% ਆਫ਼ਲਾਈਨ।
📚 ਸੰਬੰਧਿਤ ਸੁਰੱਖਿਆ ਗਾਈਡਾਂ
ਆਫ਼ਲਾਈਨ QR ਕੋਡ ਅਤੇ ਕਲਾਊਡ ਸਿੰਕ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਮਾਰਟਫ਼ੋਨਾਂ ਵਿੱਚ 2FA ਖਾਤਿਆਂ ਨੂੰ ਕਿਵੇਂ ਟ੍ਰਾਂਸਫਰ ਕਰਨਾ ਹੈ।
ਨਿਯਮ ਪਾਲਣਾ, ਰਿਕਵਰੀ ਕੋਡ ਸੁਰੱਖਿਅਤ ਕਰਨਾ, SSH ਕੁੰਜੀ ਸੰਬੰਧ, ਅਤੇ ਬਚਾਅ ਕਾਰਜਪ੍ਰਣਾਲੀ।
Google, Microsoft, Steam, Binance, Apple, ਅਤੇ Discord ਵਿੱਚ ਪਹੁੰਚ ਕਿਵੇਂ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨੀ ਹੈ।