WSS ਸੁਰੰਗ ਦਾ ਐਨਕ੍ਰਿਪਸ਼ਨ ਐਪ ਵਿੱਚ ਨਹੀਂ, TLS ਟਰਮੀਨੇਟਰ 'ਤੇ ਰੁਕਦਾ ਹੈ
ਇੱਕ wss:// URL ਇੱਕ ਹੌਪ 'ਤੇ TLS ਹੋਣ ਦਾ ਸਬੂਤ ਦਿੰਦਾ ਹੈ। ਪੇਲੋਡ ਦਾ ਆਪਣਾ ਐਨਕ੍ਰਿਪਸ਼ਨ ਹੈ ਜਾਂ ਨਹੀਂ, ਇਹ ਇਸ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਕਲਾਇੰਟ ਅੰਦਰ ਕੀ ਰੱਖਦਾ ਹੈ ਅਤੇ ਉਹ TLS ਕੌਣ ਖਤਮ ਕਰਦਾ ਹੈ।
ਸੁਰੱਖਿਅਤ WebSocket ਅੰਦਰ ਲਿਜਾਈ ਜਾਂਦੀ ਸੁਰੰਗ ਵਿੱਚ ਬਿਲਕੁਲ ਉੱਨਾ ਹੀ ਐਨਕ੍ਰਿਪਸ਼ਨ ਹੁੰਦਾ ਹੈ ਜਿੰਨਾ ਕਲਾਇੰਟ ਨੇ ਇਸ ਵਿੱਚ ਪਾਇਆ ਹੁੰਦਾ ਹੈ, ਇਸ ਤੋਂ ਵੱਧ ਨਹੀਂ। wss:// ਸਕੀਮ ਕਹਿੰਦੀ ਹੈ ਕਿ TLS ਇੱਕ ਹੌਪ 'ਤੇ ਇੱਕ ਕਨੈਕਸ਼ਨ ਦੀ ਰੱਖਿਆ ਕਰਦਾ ਹੈ। ਇਹ ਇਸ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦੀ ਕਿ WebSocket ਸੁਨੇਹਿਆਂ ਦੇ ਅੰਦਰਲੇ ਬਾਈਟ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਸੁਰੱਖਿਅਤ ਹਨ ਜਾਂ ਨਹੀਂ, ਅਤੇ ਵਿਚਕਾਰ ਕੋਈ ਚੀਜ਼ TLS ਖਤਮ ਕਰਦੀ ਹੈ ਤਾਂ ਤੁਹਾਡਾ ਟ੍ਰੈਫਿਕ ਕੌਣ ਪੜ੍ਹ ਸਕਦਾ ਹੈ ਇਹ ਇਸੇ ਫਰਕ 'ਤੇ ਨਿਰਭਰ ਹੈ।
ਇੱਕੋ ਜਿਹੀਆਂ ਦਿਸਦੀਆਂ ਦੋ ਪਰਤਾਂ
ਸੁਰੱਖਿਅਤ WebSocket ਦਾ ਮਤਲਬ ਹੈ TLS, ਜਿਸ ਉੱਤੇ WebSocket ਹੈਂਡਸ਼ੇਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ RFC 6455 ਆਪਣੇ ਕਨੈਕਸ਼ਨ ਅਤੇ ਸੁਰੱਖਿਆ ਭਾਗਾਂ ਵਿੱਚ ਬਿਆਨ ਕਰਦਾ ਹੈ। TLS ਪਰਤ ਸਰਵਰ ਦੀ ਪ੍ਰਮਾਣਿਕਤਾ ਕਰਦੀ ਹੈ ਅਤੇ ਸਟ੍ਰੀਮ ਨੂੰ ਐਨਕ੍ਰਿਪਟ ਕਰਦੀ ਹੈ, ਫਿਰ WebSocket ਪਰਤ ਉਹ ਫਰੇਮ ਕਰਦੀ ਹੈ ਜੋ ਐਪਲੀਕੇਸ਼ਨ ਭੇਜਣ ਦਾ ਫੈਸਲਾ ਕਰਦਾ ਹੈ।
ਇਹ ਦੋ ਸੁਤੰਤਰ ਫੈਸਲੇ ਹਨ, ਅਤੇ ਪੂਰੇ ਰਾਹ ਉੱਤੇ ਇੱਕ ਹੀ ਤਾਲਾ ਖਿੱਚਣ ਵਾਲਾ ਚਿੱਤਰ ਦੂਜੇ ਨੂੰ ਲੁਕਾਉਂਦਾ ਹੈ। ਪੁੱਛੋ ਕਿ TLS ਕਨੈਕਸ਼ਨ ਕੌਣ ਖਤਮ ਕਰਦਾ ਹੈ। ਫਿਰ ਪੁੱਛੋ ਕਿ ਕਲਾਇੰਟ ਹਰ ਸੁਨੇਹੇ ਦੇ ਅੰਦਰ ਕੀ ਰੱਖਦਾ ਹੈ। ਤੈਨਾਤੀ ਬਾਰੇ ਬਾਕੀ ਸਭ ਕੁਝ ਇਹਨਾਂ ਦੋ ਜਵਾਬਾਂ ਤੋਂ ਆਉਂਦਾ ਹੈ।
ਡਿਜ਼ਾਈਨ A: ਢੋਆ-ਢੁਆਈ ਹੀ ਇੱਕੋ-ਇਕ ਐਨਕ੍ਰਿਪਸ਼ਨ ਹੈ
ਸਰਲ ਡਿਜ਼ਾਈਨ ਵਿੱਚ, ਕਲਾਇੰਟ ਕੱਚੇ IP ਪੈਕਟ ਲੈਂਦਾ ਹੈ ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ WebSocket ਸੁਨੇਹਿਆਂ ਵਿੱਚ ਲਪੇਟਦਾ ਹੈ। ਅੰਦਰ ਕੁਝ ਵੀ ਐਨਕ੍ਰਿਪਟ ਨਹੀਂ ਹੁੰਦਾ, ਇਸ ਲਈ TLS ਸੈਸ਼ਨ ਵਾਲਾ ਹਿੱਸਾ ਸਾਦਾ ਟੈਕਸਟ ਪੇਲੋਡ ਪੜ੍ਹਦਾ ਹੈ। ਜਦੋਂ ਉਹ ਹਿੱਸਾ ਤੁਹਾਡਾ ਆਪਣਾ ਸੁਰੰਗ ਸਰਵਰ ਹੁੰਦਾ ਹੈ, ਇਹੀ ਲੋੜੀਂਦਾ ਅੰਤ ਬਿੰਦੂ ਹੈ ਅਤੇ ਡਿਜ਼ਾਈਨ ਸੁਸੰਗਤ ਹੈ, ਕਿਉਂਕਿ ਸਰਵਰ ਨੇ ਟ੍ਰੈਫਿਕ ਹਰ ਹਾਲ ਵੇਖਣਾ ਸੀ।
ਇਹ ਵੱਖਰੀ ਵਿਵਸਥਾ ਬਣ ਜਾਂਦੀ ਹੈ ਜਦੋਂ ਰਾਹ ਵਿੱਚ ਨਿਰੀਖਣ ਪ੍ਰੌਕਸੀ ਬੈਠਦੀ ਹੈ ਅਤੇ ਕਲਾਇੰਟ ਦੇ ਭਰੋਸੇਯੋਗ ਸਰਟੀਫਿਕੇਟ ਨਾਲ TLS ਖਤਮ ਕਰਦੀ ਹੈ। ਉਸ ਪ੍ਰੌਕਸੀ ਕੋਲ ਹੁਣ ਉਹੀ ਸਾਦਾ ਟੈਕਸਟ ਹੈ ਜੋ ਸਰਵਰ ਕੋਲ ਹੋਣਾ ਸੀ, ਅਤੇ WebSocket ਫਰੇਮਿੰਗ ਦੀ ਕੋਈ ਵੀ ਮਾਤਰਾ ਇਸ ਨੂੰ ਨਹੀਂ ਬਦਲਦੀ। ਕਲਾਇੰਟ ਦਾ ਭਰੋਸਾ ਭੰਡਾਰ ਇਸ ਨਤੀਜੇ ਨੂੰ ਸੁਰੰਗ ਖੁੱਲ੍ਹਣ ਤੋਂ ਬਹੁਤ ਪਹਿਲਾਂ ਤੈਅ ਕਰ ਚੁੱਕਾ ਸੀ, ਕਿਉਂਕਿ ਉਸ ਨੇ ਉਸ ਨਾਮ ਲਈ ਉਹ ਸਰਟੀਫਿਕੇਟ ਸਵੀਕਾਰ ਕਰਨ ਦੀ ਚੋਣ ਕੀਤੀ। ਪ੍ਰੌਕਸੀ ਮੰਗਿਆ ਹੋਸਟ ਅਤੇ ਹਰ ਸੁਨੇਹੇ ਦਾ ਆਕਾਰ ਵੀ ਵੇਖਦੀ ਹੈ, ਜੋ ਹੋਰ ਕੁਝ ਵੀ ਡੀਕ੍ਰਿਪਟ ਕੀਤੇ ਬਿਨਾਂ ਬਹੁਤ ਸਾਰੀ ਗਤੀਵਿਧੀ ਦਾ ਫਿੰਗਰਪ੍ਰਿੰਟ ਲੈਣ ਲਈ ਕਾਫੀ ਹੈ।
ਡਿਜ਼ਾਈਨ B: ਪੇਲੋਡ ਆਪਣੀਆਂ ਚਾਬੀਆਂ ਲੈ ਕੇ ਚੱਲਦਾ ਹੈ
ਦੂਜੇ ਡਿਜ਼ਾਈਨ ਵਿੱਚ, ਕਲਾਇੰਟ ਆਪਣੇ ਪੈਕਟਾਂ ਨੂੰ ਆਪਣੀ ਪੀਅਰ ਪਛਾਣ ਅਤੇ ਕੁੰਜੀ ਬਦਲਾਅ ਵਾਲੇ VPN ਪ੍ਰੋਟੋਕੋਲ ਨਾਲ ਐਨਕ੍ਰਿਪਟ ਅਤੇ ਪ੍ਰਮਾਣਿਤ ਕਰਦਾ ਹੈ, ਫਿਰ ਨਤੀਜਾ WebSocket ਸੁਨੇਹਿਆਂ ਦੇ ਅੰਦਰ ਲਿਜਾਂਦਾ ਹੈ। ਇੱਥੇ ਬਾਹਰੀ TLS ਖਤਮ ਕਰਨ ਨਾਲ ਟ੍ਰੈਫਿਕ ਨਹੀਂ, ਸਾਈਫਰਟੈਕਸਟ ਖੁੱਲ੍ਹਦਾ ਹੈ। ਪ੍ਰੌਕਸੀ ਸੁਨੇਹਿਆਂ ਦਾ ਆਕਾਰ ਅਤੇ ਸਮਾਂ ਵੇਖ ਸਕਦੀ ਹੈ, ਪੇਲੋਡ ਵਿੱਚ ਹੋਰ ਕੁਝ ਨਹੀਂ। ਇਹ ਬਹੁਤ ਛੋਟਾ ਖੁੱਲ੍ਹਾਅ ਹੈ, ਅਤੇ ਇਹ ਸਮੀਖਿਆ ਵਿੱਚ ਨਾਮ ਲੈਣ ਯੋਗ ਮੈਟਾਡੇਟਾ ਹੀ ਹੈ, ਪਾਸੇ ਧੱਕਣ ਵਾਲੀ ਗੱਲ ਨਹੀਂ।
ਅੰਦਰੂਨੀ ਪ੍ਰੋਟੋਕੋਲ ਦੇ ਆਪਣੇ ਅੰਤ ਬਿੰਦੂ ਅਜੇ ਵੀ ਸਾਦਾ ਟੈਕਸਟ ਵੇਖਦੇ ਹਨ, ਇਹੀ ਵਿਵਸਥਾ ਦਾ ਮਕਸਦ ਹੈ ਅਤੇ ਇਸ ਦੀ ਸੀਮਾ ਵੀ। ਜੇ ਅੰਤ ਬਿੰਦੂ ਦਾ ਹਿੱਸਾ ਐਨਕ੍ਰਿਪਸ਼ਨ ਤੋਂ ਪਹਿਲਾਂ ਜਾਂ ਡੀਕ੍ਰਿਪਸ਼ਨ ਤੋਂ ਬਾਅਦ ਡੇਟਾ ਪੜ੍ਹਨ ਲਈ ਅਧਿਕਾਰਤ ਹੈ, ਤਾਂ ਵਾਧੂ ਪਰਤ ਉਸ ਨੂੰ ਸੀਮਿਤ ਨਹੀਂ ਕਰਦੀ। ਕੁੰਜੀਆਂ ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਸੰਭਾਲਣ ਵਾਲਾ ਸੌਫਟਵੇਅਰ ਹੀ ਮਹੱਤਵਪੂਰਨ ਸੀਮਾ ਰਹਿੰਦੇ ਹਨ।
VPN ਲੇਬਲ, ਜਾਣਿਆ-ਪਛਾਣਿਆ ਕਲਾਇੰਟ ਆਈਕਨ ਜਾਂ ਮਾਰਕੀਟਿੰਗ ਪੰਨਾ ਇਸ ਡਿਜ਼ਾਈਨ ਦੇ ਹੋਣ ਦਾ ਸਬੂਤ ਨਹੀਂ ਹੈ। ਪੇਲੋਡ ਫਾਰਮੈਟ ਪੜ੍ਹਨਾ ਸਬੂਤ ਹੈ।
ਪਤਾ ਲਗਾਓ ਕਿ ਸਾਦਾ ਟੈਕਸਟ ਅਸਲ ਵਿੱਚ ਕਿੱਥੇ ਦਿਖਦਾ ਹੈ
URL ਸਕੀਮ ਤੁਹਾਨੂੰ ਇੱਕ ਤੱਥ ਦਿੰਦੀ ਹੈ, ਇਸ ਲਈ ਬਾਕੀ ਇੰਟਰਫੇਸਾਂ ਤੋਂ ਲਓ। ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਜਾਂਚਾਂ ਕ੍ਰਮ ਨਾਲ ਚਲਾਓ, ਕਿਉਂਕਿ ਹਰ ਇੱਕ ਅਗਲੀ ਨੂੰ ਤੰਗ ਕਰਦੀ ਹੈ:
ss -tnp | grep -E ':(443|8443)\b' ip -br link show type tun openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief tcpdump -ni tun0 -c 5 -X
ਬਾਹਰੀ ਕਨੈਕਸ਼ਨ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ। TLS ਪੋਰਟ 'ਤੇ ਇੱਕ ਲੰਮਾ ਚੱਲਣ ਵਾਲਾ TCP ਸੈਸ਼ਨ ਹੋਣਾ ਹੀ WebSocket ਵਾਹਕ ਦਾ ਰੂਪ ਹੈ, ਅਤੇ ਅਸੰਬੰਧਿਤ ਹੋਸਟ 'ਤੇ ਦੂਜਾ ਸੈਸ਼ਨ ਡੂੰਘਾਈ ਨਾਲ ਦੇਖਣ ਤੋਂ ਪਹਿਲਾਂ ਵਿਆਖਿਆ ਦਾ ਹੱਕਦਾਰ ਹੈ। ਫਿਰ ਕਲਾਇੰਟ 'ਤੇ ਸੁਰੰਗ ਇੰਟਰਫੇਸ ਲੱਭੋ, ਕਿਉਂਕਿ tun ਜਾਂ tap ਜੰਤਰ ਦੱਸਦਾ ਹੈ ਕਿ ਕਲਾਇੰਟ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਸਟ੍ਰੀਮ ਪ੍ਰੌਕਸੀ ਕਰਨ ਦੀ ਥਾਂ IP ਪੈਕਟ ਸੰਭਾਲ ਰਿਹਾ ਹੈ।
ਸੁਰੰਗ ਇੰਟਰਫੇਸ 'ਤੇ ਕੈਪਚਰ ਆਮ ਤੌਰ 'ਤੇ ਪੇਲੋਡ ਦਾ ਸਵਾਲ ਹੱਲ ਕਰਦਾ ਹੈ। ਉੱਥੇ ਪੜ੍ਹਨਯੋਗ ਹੈਡਰ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਅੰਦਰਲੇ ਪੈਕਟ ਕਦੇ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਐਨਕ੍ਰਿਪਟ ਨਹੀਂ ਹੋਏ, ਜਦਕਿ ਉੱਚ ਐਂਟਰੋਪੀ ਵਾਲੇ ਪੇਲੋਡ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਹੋਏ। ਬਾਹਰੀ ਇੰਟਰਫੇਸ 'ਤੇ ਕੈਪਚਰ ਦੁਹਰਾਓ ਅਤੇ ਦੋਵਾਂ ਦੀ ਤੁਲਨਾ ਕਰੋ: ਜੇ ਦੋਵੇਂ ਬੇਤਰਤੀਬ ਦਿਖਦੇ ਹਨ, ਤਾਂ ਅੰਦਰਲੀ ਪਰਤ ਉਹ ਕੰਮ ਕਰ ਰਹੀ ਹੈ ਜੋ ਬਾਹਰੀ ਪਰਤ ਵਾਪਸ ਨਹੀਂ ਕਰ ਸਕਦੀ।
ਤੁਸੀਂ ਅਸਲ ਵਿੱਚ ਜੋ ਭਰੋਸਾ ਦਿੱਤਾ ਉਸ ਦੀ ਸਮੀਖਿਆ ਕਰੋ
ਸਥਾਪਿਤ ਕਾਰਪੋਰੇਟ ਰੂਟ ਸਰਟੀਫਿਕੇਟ ਕਲਾਇੰਟ ਦੇ ਭਰੋਸਾ ਭੰਡਾਰ ਬਾਰੇ ਤੱਥ ਹੈ, ਨਾ ਕਿ ਇਸ ਬਾਰੇ ਬਿਆਨ ਕਿ ਕੋਈ ਪ੍ਰੌਕਸੀ ਕੀ ਲੌਗ ਕਰਦੀ ਹੈ ਜਾਂ ਨਿਰੀਖਣ ਕਰਦੀ ਹੈ। CA ਹੋਣ ਤੋਂ ਵਿਵਹਾਰ ਦਾ ਅਨੁਮਾਨ ਲਾਉਣ ਦੀ ਥਾਂ ਤੈਨਾਤ ਨੀਤੀ ਅਤੇ ਅਸਲ ਕਨੈਕਸ਼ਨ ਰਾਹ ਸਥਾਪਿਤ ਕਰੋ।
ਪ੍ਰਬੰਧਿਤ ਉਪਕਰਨਾਂ 'ਤੇ, ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਪੁੱਛੋ ਕਿ ਕਿਹੜਾ ਹਿੱਸਾ TLS ਖਤਮ ਕਰਦਾ ਹੈ, ਕਲਾਇੰਟ ਪਿੰਨ ਕੀਤਾ ਸਰਟੀਫਿਕੇਟ ਜਾਂਚਦਾ ਹੈ ਜਾਂ ਜਨਤਕ, ਅਤੇ ਪੇਲੋਡ ਫਾਰਮੈਟ ਕੀ ਹੈ। ਉਹ ਤਿੰਨ ਜਵਾਬ ਅਜਿਹੀ ਖੋਜ ਦਿੰਦੇ ਹਨ ਜਿਸ ਦਾ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਬਚਾਅ ਕਰ ਸਕਦੇ ਹੋ।
ਨਤੀਜਾ ਫੈਸਲੇ ਦੀ ਥਾਂ ਸੀਮਾ ਵਜੋਂ ਲਿਖੋ। "TLS ਨਿਰੀਖਣ ਪ੍ਰੌਕਸੀ 'ਤੇ ਖਤਮ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਅੰਦਰਲਾ ਪੇਲੋਡ ਸਿਰਫ ਅੰਤ ਬਿੰਦੂਆਂ ਕੋਲ ਹੋਣ ਵਾਲੀਆਂ ਕੁੰਜੀਆਂ ਨਾਲ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਐਨਕ੍ਰਿਪਟ ਹੈ" ਇੱਕ ਜਾਂਚਯੋਗ ਬਿਆਨ ਹੈ ਜੋ ਵਿਕਰੇਤਾ ਬਦਲਣ 'ਤੇ ਵੀ ਟਿਕਦਾ ਹੈ। "WebSockets ਸੁਰੱਖਿਅਤ ਹਨ" ਨਹੀਂ ਟਿਕਦਾ।