Theory
એ S જે મહત્ત્વનો છે
તમારા browser ના સરનામાના પટ્ટા પર જુઓ તો websites https:// થી શરૂ થતી દેખાશે. ક્યારેક હજી સાદું http:// પણ દેખાય. એ એક જ અક્ષર S, જે Secure માટે છે, રોજિંદા networking ના સૌથી અગત્યના ભેદોમાંનો એક દર્શાવે છે.
HTTP અને HTTPS બંને web નાં pages પહોંચાડે છે, એટલે કે browsers અને servers જે ભાષા બોલે છે એ એ જ છે. ફેર એટલો છે કે વાતચીતને વચ્ચેથી પકડનાર કોઈ પણ વાંચી શકે કે એ encrypt થયેલી અને સલામત હોય. આ પાઠ એ ફેર સમજાવે છે અને એ પણ કે તમે કરો છો એ દરેક login તથા ચુકવણી માટે એ કેમ મહત્ત્વનો છે.
Theory
HTTP: web નો પહોંચાડનારો protocol
HTTP (HyperText Transfer Protocol) એ application layer નો protocol છે જે તમારા browser અને web server વચ્ચે web નાં pages ખસેડે છે: તમારું browser page માંગે છે, અને server એ page સાથે જવાબ આપે છે.
સંવેદનશીલ data માટે HTTP ની એક ગંભીર નબળાઈ છે: એ બધું plaintext તરીકે, એટલે કે encryption વગર, મોકલે છે. એનો અર્થ એ કે રસ્તામાં જે કોઈ એ વહેવાર વચ્ચેથી પકડી શકે, ધારો કે સહિયારા Wi-Fi ના network પર, એ એને વાંચી શકે છે: pages તો ખરાં જ, પણ એથી ખરાબ એ કે તમે જે ટાઇપ કરો છો એ પણ, જેમ કે password કે card નો નંબર. સામાન્ય જાહેર લખાણ માટે HTTP ઠીક છે, પણ ખાનગી માહિતી માટે જોખમી છે. એનો મૂળભૂત port 80 છે.
Theory
HTTPS: HTTP ને સલામત બનાવેલું
HTTPS (HTTP Secure) એ એ જ HTTP છે, પણ SSL/TLS ના encryption પર ચાલતું. Web નો કોઈ પણ data વહે એ પહેલાં browser અને server encrypt થયેલી નળી ગોઠવી લે છે, એટલે મોકલાતું બધું જ રસ્તામાં ગૂંચવાયેલું હોય છે. છૂપી રીતે સાંભળનારને ફક્ત ન વંચાય એવું ciphertext દેખાય છે, તમારો password નહીં.
HTTPS બે કામ કરે છે: એ data ને encrypt કરે છે (જેથી રસ્તામાં એ વંચાય કે એમાં છેડછાડ થાય નહીં), અને એ certificate વાપરીને server ની ઓળખ ચકાસે છે (જેથી તમને ખાતરી રહે કે તમે ખરેખર તમારી bank સાથે વાત કરો છો, કોઈ ઢોંગી સાથે નહીં). Browsers HTTPS માટે તાળું દેખાડે છે, અને એનો મૂળભૂત port 443 છે. એટલા માટે જ સંવેદનશીલ sites હંમેશા HTTPS વાપરે છે.
At a glance
| બાબત | HTTP | HTTPS |
|---|---|---|
| સલામતી | Plaintext, વચ્ચેથી પકડાય તો વંચાય એવું | SSL/TLS થી encrypt થયેલું, છૂપી રીતે સાંભળનારને ન વંચાય એવું |
| ઓળખ | Server ની ચકાસણી થતી નથી | Certificate થી server ની ચકાસણી થાય છે |
| મૂળભૂત port | 80 | 443 |
| Browser ની નિશાની | ઘણી વાર 'Not secure' તરીકે દર્શાવાય છે | તાળાનું ચિહ્ન |
| શેના માટે વાપરવું | સામાન્ય જાહેર લખાણ | Logins, ચુકવણીઓ, અને કોઈ પણ સંવેદનશીલ data |
Quiz
તમે કોઈ website પર તમારો password અને card ની વિગતો ભરી રહ્યા છો. એ site કયો protocol વાપરવો જોઈએ, અને શા માટે?
- HTTP, કારણ કે encryption વગર એ વધુ ઝડપી છે
- HTTPS, કારણ કે એ SSL/TLS થી data ને encrypt કરે છે જેથી છૂપી રીતે સાંભળનારા તમારો password કે card નો નંબર વાંચી ન શકે
- બેમાંથી ગમે તે; એ બંને એકસરખાં સલામત છે
- HTTP, કારણ કે તાળું તો ફક્ત શણગાર છે
Show the answer
HTTPS, કારણ કે એ SSL/TLS થી data ને encrypt કરે છે જેથી છૂપી રીતે સાંભળનારા તમારો password કે card નો નંબર વાંચી ન શકે
અહીં HTTPS અનિવાર્ય છે: એ જોડાણને SSL/TLS થી encrypt કરે છે, જેથી તમારો password અને card ની વિગતો ગૂંચવાયેલા સ્વરૂપે મુસાફરી કરે અને વહેવાર વચ્ચેથી પકડનાર કોઈ એને વાંચી કે બદલી ન શકે, અને એ server ની ઓળખ પણ ચકાસે છે. વિકલ્પ A જોખમી રીતે ખોટો છે: HTTP બધું plaintext માં મોકલે છે, એટલે સહિયારા કે દુશ્મનાવટભર્યા network પર તમારી ઓળખની વિગતો સીધી વંચાઈ શકે; ઝડપની થોડી બચત માટે સંવેદનશીલ data ખુલ્લો મૂકવો એ કોઈ કારણ નથી. વિકલ્પ C ખોટો છે: HTTP અને HTTPS એકસરખાં સલામત નથી, અને એ ભેદનો આખો મુદ્દો જ એ છે. વિકલ્પ D ખોટો છે: તાળું શણગાર નથી; એ ખરેખર encrypt થયેલા અને ઓળખ ચકાસાયેલા HTTPS ના જોડાણનો સંકેત આપે છે. કોઈ પણ સંવેદનશીલ કામ માટે હંમેશા HTTPS નો આગ્રહ રાખો.
Think first
જાહેર Wi-Fi પર HTTPS તમારા password ને ખરેખર કઈ રીતે બચાવે છે?
Cafe ના સહિયારા Wi-Fi પર બીજા લોકો તમારો વહેવાર વચ્ચેથી પકડી શકે છે. તો પણ HTTPS તમારો password કઈ રીતે સલામત રાખે છે? વિચારીને પછી tap કરો.
Show the answer
તમારા સાધનમાંથી નીકળે એ પહેલાં જ data ને encrypt કરીને, જેથી દરેક packet પકડી લેનારને પણ ફક્ત અર્થહીન ગૂંચવાયેલું ciphertext જ દેખાય, તમારો ખરો password નહીં. ખુલ્લા Wi-Fi પર એ જ network પરની બીજી વ્યક્તિ હવામાંથી પસાર થતો વહેવાર વચ્ચેથી પકડી શકે એ ખરેખર શક્ય છે. જો site સાદું HTTP વાપરતી હોય, તો તમારો password એ વહેવારમાં વાંચી શકાય એવા plaintext તરીકે જ હોત, અને છૂપી રીતે સાંભળનાર એને સીધો ઉપાડી લેત. HTTPS સાથે, કોઈ ખરો data આપલે થાય એ પહેલાં તમારું browser અને server એક TLS ની હાથમિલાવણી કરે છે જે સહિયારું રહસ્ય અને encrypt થયેલી નળી ઊભી કરે છે; ત્યાર પછી બધું, તમારો password પણ, એવા ciphertext માં ફેરવાય છે જેને ફક્ત બંને સાચા છેડા જ ઉકેલી શકે. વચ્ચેથી પકડનાર packets તો પકડે જ છે, પણ ગુપ્ત ચાવીઓ વગર એ encryption ઊલટાવી શકતો નથી, એટલે એના માટે password નકામો છે. HTTPS server નું certificate પણ તપાસે છે, જે ખાતરી કરાવે છે કે તમે એ encrypt થયેલી નળી ખરેખરી website સાથે જ ગોઠવી છે, વચ્ચે ઘૂસી ગયેલા કોઈ ઢોંગી સાથે નહીં, અને એ 'વચ્ચેનો માણસ' વાળા હુમલા સામે રક્ષણ આપે છે. એટલે રક્ષણ એ નથી કે બીજા તમારો વહેવાર જોઈ જ ન શકે, કારણ કે સહિયારા Wi-Fi પર ઘણી વાર જોઈ શકે છે, પણ એ છે કે એ જે જુએ છે એ ન વંચાય એવું અને ન બદલાય એવું હોય છે. Encryption વચ્ચેથી પકડવાને ચોરીમાંથી ખભા ઉલાળવા જેવું બનાવી દે છે. એટલા માટે જ દરેક login અને ચુકવણીનું page HTTPS હોવું જ જોઈએ.
Summary
Key takeaways
- HTTP (HyperText Transfer Protocol) browser અને server વચ્ચે web નાં pages પહોંચાડે છે; એ application layer નો protocol છે.
- HTTP data ને plaintext માં મોકલે છે, એટલે વચ્ચેથી પકડાયેલો વહેવાર (passwords સહિત) વાંચી શકાય છે; એનો મૂળભૂત port 80 છે.
- HTTPS (HTTP Secure) એ SSL/TLS ના encryption પર ચાલતું HTTP છે; data રસ્તામાં ગૂંચવાયેલો રહે છે; એનો મૂળભૂત port 443 છે.
- HTTPS data ને encrypt કરે છે (છૂપી રીતે સાંભળનારને ન વંચાય એવો) અને certificate થી server ની ઓળખ ચકાસે છે.
- Browsers HTTPS માટે તાળું દેખાડે છે; logins, ચુકવણીઓ અને કોઈ પણ સંવેદનશીલ data માટે HTTPS વાપરો.
- સહિયારા Wi-Fi પર HTTPS password ને એટલા માટે સલામત રાખે છે કે વચ્ચેથી પકડનારને ફક્ત ન વંચાય એવું ciphertext જ દેખાય છે.
- યાદ રાખવાની કડી: HTTPS નો S એટલે Secure, HTTP એટલે port 80 પર plaintext, અને HTTPS એટલે port 443 પર encrypt થયેલું.