VPN ਵਿੱਚ nonce ਕੀ ਹੈ, ਅਤੇ ਮੁੜ ਵਰਤੋਂ ਟਨਲ ਨੂੰ ਕਿਉਂ ਤੋੜਦੀ ਹੈ
nonce ਹਰ ਸੁਨੇਹੇ ਲਈ ਇੱਕ ਮੁੱਲ ਹੈ ਜੋ ਇੱਕ ਹੀ ਕੁੰਜੀ ਹੇਠ ਕਦੇ ਦੁਹਰਾਇਆ ਨਹੀਂ ਜਾਣਾ ਚਾਹੀਦਾ, ਅਤੇ ਇਹ ਆਮ ਤੌਰ ’ਤੇ ਖੁੱਲ੍ਹੇ ਵਿੱਚ ਸਫ਼ਰ ਕਰਦਾ ਹੈ। ਇਸਨੂੰ ਹੱਥ ਨਾਲ ਸੋਧਣਾ ਉਹ ਗਲਤੀ ਹੈ ਜਿਸ ਤੋਂ ਬਚਣਾ ਚਾਹੀਦਾ ਹੈ।
ਬਹੁਤੇ ਲੋਕ VPN ਪਰੋਫ਼ਾਈਲ ਵਿੱਚ nonce ਸ਼ਬਦ ਨੂੰ ਮਿਲਦੇ ਹਨ ਅਤੇ ਮੰਨ ਲੈਂਦੇ ਹਨ ਕਿ ਇਹ ਸਾਥੀਆਂ ਵਿਚਕਾਰ ਕਾਪੀ ਕਰਨ ਵਾਲਾ ਇੱਕ ਹੋਰ ਸਾਂਝਾ ਭੇਤ ਹੈ। ਅਜਿਹਾ ਨਹੀਂ ਹੈ। nonce ਇੱਕ ਮੁੱਲ ਹੈ ਜੋ ਉਸੇ ਕੁੰਜੀ ਹੇਠ ਕਦੇ ਦੁਹਰਾਇਆ ਨਹੀਂ ਜਾਣਾ ਚਾਹੀਦਾ, ਅਤੇ nonce-ਆਧਾਰਿਤ ਜ਼ਿਆਦਾਤਰ ਇਨਕ੍ਰਿਪਸ਼ਨ ਵਿੱਚ ਇਹ ਖੁੱਲ੍ਹੇ ਵਿੱਚ ਸਫ਼ਰ ਕਰਦਾ ਹੈ। ਉਲਝਣ ਉਦੋਂ ਤੱਕ ਨਿਰਦੋਸ਼ ਰਹਿੰਦੀ ਹੈ ਜਦੋਂ ਤੱਕ ਕੋਈ ਇਸਨੂੰ ਹੱਥ ਨਾਲ ਸੋਧਦਾ ਨਹੀਂ, ਅਤੇ ਅਸਲ ਟੁੱਟਣ ਉੱਥੋਂ ਹੀ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ।
nonce ਅਸਲ ਵਿੱਚ ਕਿੱਥੋਂ ਆਉਂਦਾ ਹੈ
ਪ੍ਰਮਾਣਿਤ ਇਨਕ੍ਰਿਪਸ਼ਨ ਨੂੰ ਕੁੰਜੀ ਹੇਠ ਇਨਕ੍ਰਿਪਟ ਕੀਤੇ ਹਰ ਸੁਨੇਹੇ ਲਈ ਵੱਖਰਾ nonce ਚਾਹੀਦਾ ਹੈ। ਪ੍ਰੋਟੋਕਾਲ ਇਹ ਲੋੜ ਵੱਖ-ਵੱਖ ਤਰੀਕਿਆਂ ਨਾਲ ਪੂਰੀ ਕਰਦੇ ਹਨ: ਇਕਸਾਰ ਵਧਣ ਵਾਲਾ ਕਾਊਂਟਰ, ਪੈਕੇਟ ਪਛਾਣਕਰਤਾ ਨਾਲ ਮਿਲਾਇਆ ਲੂਣ, ਜਾਂ ਕਾਫ਼ੀ ਲੰਮਾ ਬੇਤਰਤੀਬ ਮੁੱਲ। IKEv2 ਸ਼ੁਰੂਆਤੀ ਅਦਲ-ਬਦਲ ਦੌਰਾਨ nonce ਦਾ ਅਦਲ-ਬਦਲ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਹ ਭੇਤ ਨਹੀਂ, ਕੁੰਜੀ ਉਤਪੱਤੀ ਲਈ ਜਨਤਕ ਇਨਪੁੱਟ ਹਨ।
ਵਿਲੱਖਣਤਾ ਢਾਂਚਾਗਤ ਜਾਂ ਸੰਭਾਵਨਾਤਮਕ ਹੋ ਸਕਦੀ ਹੈ। ਕਾਊਂਟਰ ਰੈਪ ਹੋਣ ਤੱਕ ਦੁਹਰਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ, ਇਸ ਲਈ ਪ੍ਰੋਟੋਕਾਲ ਉਸ ਤੋਂ ਬਹੁਤ ਪਹਿਲਾਂ ਕੁੰਜੀ ਨਵੀਨੀਕਰਨ ਬਿੰਦੂ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਬੇਤਰਤੀਬ ਮੁੱਲ ਸੁਨੇਹਾ ਸੀਮਾ ਅੰਦਰ ਟਕਰਾਅ ਅਸੰਭਵ ਹੋਣ ਲਈ ਕਾਫ਼ੀ ਬਿੱਟਾਂ ’ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ, ਜੋ ਵੱਖਰੀ ਅਸਫਲਤਾ ਵਿਧੀ ਵਾਲੀ ਵੱਖਰੀ ਦਲੀਲ ਹੈ। ਪ੍ਰੋਟੋਕਾਲ ਦਸਤਾਵੇਜ਼ ਦੱਸਦਾ ਹੈ ਕਿ ਕਿਹੜੀ ਵਿਧੀ ਲਾਗੂ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਦੋਵੇਂ ਸਿਰਫ਼ ਉਦੋਂ ਤੱਕ ਸੁਰੱਖਿਅਤ ਹਨ ਜਦੋਂ ਤੱਕ ਘੋਸ਼ਿਤ ਸੀਮਾ ਦਾ ਪਾਲਣ ਹੁੰਦਾ ਹੈ।
| Design | Where uniqueness comes from | Exhaustion is handled by |
|---|---|---|
| AES-GCM records | An IV, typically a counter | Rekey before the counter wraps |
| ChaCha20-Poly1305 | A 96-bit nonce from a counter or generator | A message limit per key |
| WireGuard | A per-key 64-bit counter | Rekey at a message cap |
| OpenVPN AEAD | Packet identifier plus implicit key material | Rekey on the packet-id limit |
| IKEv2 | Fresh nonces per exchange | A new security association |
ਮੁੜ ਵਰਤੋਂ ਦੀ ਅਸਲ ਕੀਮਤ
ਇੱਕ ਕੁੰਜੀ ਹੇਠ nonce ਦੀ ਮੁੜ ਵਰਤੋਂ ਕਰਨਾ ਕਾਰਜਕੁਸ਼ਲਤਾ ਦਾ ਛੋਟਾ ਸਵਾਲ ਨਹੀਂ ਹੈ। GCM ਨਾਲ, ਇੱਕ IV ਸਾਂਝਾ ਕਰਨ ਵਾਲੇ ਦੋ ਸੁਨੇਹੇ ਨਿਰੀਖਕ ਨੂੰ ਪ੍ਰਮਾਣੀਕਰਨ ਕੁੰਜੀ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਅਤੇ ਦੋ ਸਪਸ਼ਟ ਪਾਠਾਂ ਦੀ ਵਿਸ਼ੇਸ਼-ਜਾਂ ਗਣਨਾ ਕਰਨ ਦਿੰਦੇ ਹਨ। ਸਟ੍ਰੀਮ-ਆਧਾਰਿਤ ਬਣਤਰਾਂ ਉਸੇ ਤਰੀਕੇ ਨਾਲ ਕੁੰਜੀ-ਸਟ੍ਰੀਮ ਦੀ ਮੁੜ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ, ਜੋ ਸਿਫਰਟੈਕਸਟ ਨੂੰ ਭੇਤ ਦੀ ਬਜਾਏ ਬੁਝਾਰਤ ਬਣਾ ਦਿੰਦਾ ਹੈ।
ਇਸ ਲਈ ਕਾਰਜਾਨਵਿਤੀਆਂ ਕਾਊਂਟਰ ਰੈਪ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਕੁੰਜੀ ਨਵੀਨੀਕਰਨ ਕਰਦੀਆਂ ਹਨ, ਅਤੇ ਇਸ ਲਈ ਜਦੋਂ ਉਨ੍ਹਾਂ ਦੀ ਸਥਿਤੀ ਅਨਿਸ਼ਚਿਤ ਹੁੰਦੀ ਹੈ ਤਾਂ ਉਹ ਜਾਰੀ ਰੱਖਣ ਦੀ ਬਜਾਏ ਰੁਕ ਜਾਂਦੀਆਂ ਹਨ। ਕਾਊਂਟਰ ਰੀਸੈਟ ਕਰਨ ਵਾਲਾ ਰੀਬੂਟ ਜਦੋਂ ਸਾਥੀ ਅਜੇ ਵੀ ਪੁਰਾਣੀ ਕੁੰਜੀ ਰੱਖਦਾ ਹੈ, ਜਾਂ ਸੈਸ਼ਨ ਦੇ ਵਿਚਕਾਰ ਲਏ ਸਨੈਪਸ਼ਾਟ ਤੋਂ ਬਹਾਲ ਕੀਤੀ ਵਰਚੁਅਲ ਮਸ਼ੀਨ, ਠੀਕ ਉਹੀ ਸਥਿਤੀ ਹੈ ਜਿਸਨੂੰ ਰੋਕਣ ਲਈ ਸੀਮਾਵਾਂ ਮੌਜੂਦ ਹਨ। ਕਿਸੇ ਹਮਲਾਵਰ ਦੀ ਲੋੜ ਨਹੀਂ; ਆਮ ਕਾਰਵਾਈਆਂ ਕਾਫ਼ੀ ਹਨ।
ਹੱਥ ਨਾਲ ਸੋਧ ਕਿਉਂ ਗਲਤ ਹੱਲ ਹੈ
ਕਾਊਂਟਰ, ਲੂਣ ਅਤੇ ਪੈਕੇਟ ਪਛਾਣਕਰਤਾ ਦੋਵੇਂ ਸਿਰਿਆਂ ਦੁਆਰਾ ਸਾਂਝੀਆਂ ਕੀਤੀਆਂ ਸਥਿਤੀ ਮਸ਼ੀਨਾਂ ਹਨ। ਇੱਕ ਪਾਸਾ ਬਦਲਣ ਨਾਲ ਦੂਜਾ ਸਿੰਕ ਵਿੱਚ ਨਹੀਂ ਰਹਿੰਦਾ, ਅਤੇ ਟਨਲ ਰਾਊਟਿੰਗ ਸਮੱਸਿਆ ਵਾਂਗ ਦਿਖਣ ਵਾਲੇ ਢੰਗ ਨਾਲ ਅਸਫਲ ਹੁੰਦਾ ਹੈ। ਸਮਰਥਿਤ ਲੀਵਰ ਨਵਾਂ ਕੁੰਜੀ ਅਦਲ-ਬਦਲ ਹੈ, ਜੋ ਇੱਕੋ ਸਮੇਂ ਦੋਵੇਂ ਸਿਰਿਆਂ ਦੀ ਸਥਿਤੀ ਰੀਸੈਟ ਕਰਦਾ ਹੈ।
ਪਾਸਵਰਡ ਅਤੇ nonce ਵੀ ਵੱਖਰੀਆਂ ਭੂਮਿਕਾਵਾਂ ਨਿਭਾਉਂਦੇ ਹਨ। ਪਾਸਵਰਡ ਕੁੰਜੀ ਉਤਪੱਤੀ ਲਈ ਗੁਪਤ ਇਨਪੁੱਟ ਹੈ; nonce ਹਰ ਸੁਨੇਹੇ ਲਈ ਜਨਤਕ ਇਨਪੁੱਟ ਹੈ। nonce ਲੇਬਲ ਵਾਲਾ ਪਰੋਫ਼ਾਈਲ ਖੇਤਰ ਜੋ ਲੰਮਾ ਭੇਤ ਮੰਗਦਾ ਹੈ, ਆਮ ਤੌਰ ’ਤੇ ਕਿਸੇ ਹੋਰ ਨਾਮ ਹੇਠ ਸਥਿਰ ਕੁੰਜੀ ਜਾਂ ਪਹਿਲਾਂ ਸਾਂਝਾ ਕੀਤਾ ਭੇਤ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਅੰਦਾਜ਼ਾ ਲਾਉਣ ਦੀ ਬਜਾਏ ਉਸ ਖੇਤਰ ਦਾ ਦਸਤਾਵੇਜ਼ ਪੜ੍ਹੋ।
ਜਦੋਂ ਸਲਾਹ nonce ਸੰਭਾਲਣ ਬਾਰੇ ਹੋਵੇ, ਤਾਂ ਸੁਧਾਰ ਸੰਭਾਲਕਰਤਾ ਦਾ ਸੋਧਿਆ ਸੰਸਕਰਣ ਹੈ, ਨਾ ਕੋਈ ਹੋਰ ਸਿਫਰ ਨਾ ਛੋਟੀ ਕੁੰਜੀ। nonce ਸ਼ਬਦ ਤੋਂ ਬਚਣ ਲਈ ਸਿਫਰ ਬਦਲਨਾ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਦੀ ਬਜਾਏ ਹਿਲਾ ਦਿੰਦਾ ਹੈ।
ਅੰਦਾਜ਼ਾ ਲਾਏ ਬਿਨਾਂ ਚੇਤਾਵਨੀ ਪੜ੍ਹਨਾ
ਕਾਊਂਟਰ ਜਾਂ nonce ਬਾਰੇ ਲਾਗ ਲਾਈਨ ਆਮ ਤੌਰ ’ਤੇ ਹਮਲੇ ਦੀ ਬਜਾਏ ਗੁਆਚੀ ਸਥਿਤੀ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ। ਜਾਂਚੋ ਕਿ ਕੀ ਇੱਕ ਸਾਥੀ ਮੁੜ ਸ਼ੁਰੂ ਹੋਇਆ, ਕੀ ਕਲੋਨ ਕੀਤੀ ਵਰਚੁਅਲ ਮਸ਼ੀਨ ਨੇ ਉਹੀ ਪਛਾਣ ਮੁੜ ਵਰਤੀ, ਅਤੇ ਕੀ ਦੋਵੇਂ ਸਿਰੇ ਕੁੰਜੀ ਨਵੀਨੀਕਰਨ ਸੈਟਿੰਗਾਂ ’ਤੇ ਸਹਿਮਤ ਹਨ। ਫਿਰ ਨਵਾਂ ਸੈਸ਼ਨ ਸਥਾਪਿਤ ਕਰੋ ਅਤੇ ਦੇਖੋ ਕਿ ਸੁਨੇਹਾ ਵਾਪਸ ਆਉਂਦਾ ਹੈ ਜਾਂ ਨਹੀਂ।
ਨਿਦਾਨ ਨੂੰ ਅਸੰਬੰਧਿਤ ਅਸਫਲਤਾਵਾਂ ਤੋਂ ਵੱਖ ਰੱਖੋ। ਲੋਡ ਨਾ ਹੋਣ ਵਾਲਾ ਪੰਨਾ, ਜਾਂ ਲੂਪ ਵਿੱਚ ਘੁੰਮਦਾ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਪ੍ਰੋਂਪਟ, nonce ਮੁੜ ਵਰਤੋਂ ਦਾ ਸਬੂਤ ਨਹੀਂ ਹੈ, ਅਤੇ ਇਸਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਲੈਣਾ ਤੁਹਾਨੂੰ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਪਰਤ ਵਿੱਚ ਭੇਜਦਾ ਹੈ ਜਦੋਂ ਸਮੱਸਿਆ ਉਸ ਤੋਂ ਉੱਪਰ ਹੈ।
ਆਮ ਵਰਤੋਂ ਲਈ, ਸੁਰੱਖਿਅਤ ਨਿਯਮ ਸੰਖੇਪ ਹੈ: nonce ਕਾਰਜਾਨਵਿਤੀ ਨੂੰ ਸੰਭਾਲਣ ਦਿਓ, ਦੋਵੇਂ ਸਿਰੇ ਸਮਰਥਿਤ ਸੰਸਕਰਣਾਂ ’ਤੇ ਰੱਖੋ, ਅਤੇ ਕਿਸੇ ਵੀ ਸਥਿਤੀ ਰੀਸੈਟ ਨੂੰ ਮੁੱਲ ਸੋਧਣ ਦੀ ਬਜਾਏ ਕੁੰਜੀ ਨਵੀਨੀਕਰਨ ਦਾ ਕਾਰਨ ਮੰਨੋ। ਜੇ ਪਰੋਫ਼ਾਈਲ ਖੇਤਰ ਵਿਕਰੇਤਾ ਦੇ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਨਹੀਂ ਹੈ, ਤਾਂ ਇਸ ਲਈ ਮੁੱਲ ਨਾ ਘੜੋ। ਟਨਲ ਠੀਕ ਕਰਨਾ ਇਹ ਜਾਣਨ ਤੋਂ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕਿਹੜੀ ਪਰਤ ਦੇਖ ਰਹੇ ਹੋ।