સમસ્યા: આંધળો વિશ્વાસ
તમે બેબી મોનિટર એપ ઇન્સ્ટોલ કરો ત્યારે તેને બહુ ખાનગી જગ્યાની ઍક્સેસ આપો છો: તમારા બાળકનું રૂમ. એપ અવાજ સાંભળે છે અને ક્યારેક વિડિયો પણ જુએ છે. પરંતુ માતા-પિતાને ઘણી વાર ખબર પડતી નથી કે પાછળ શું થાય છે: શું સ્ટ્રીમ તૃતીય-પક્ષ સર્વર મારફતે જાય છે, શું ઉપયોગનો ડેટા એકત્ર થાય છે, અને ટેકનિકલી કોને કોઈ વસ્તુની ઍક્સેસ મળી શકે છે?
સાચો જવાબ એ છે કે ઘણી એપ્સમાં તમને ખબર જ નથી પડતી. કોડ બંધ હોય છે અને આર્કિટેક્ચર માત્ર દાવો બની રહે છે. અંતે તમને પ્રદાતા પર વિશ્વાસ રાખવા કહેવામાં આવે છે.
બંધ કોડ, ખુલ્લી નબળાઈઓ
છેલ્લાં વર્ષોમાં બેબી મોનિટર હૅક થયાના ઘણા અહેવાલો આવ્યા છે. અજાણ્યા લોકો સાંભળી શકતા, કેમેરા હલાવી શકતા અથવા સ્પીકર મારફતે બોલી શકતા. મોટાભાગે આ કોઈ અજાયબીભરા હુમલા નહોતા, પરંતુ ગંભીર ખામીઓ હતી: એન્ક્રિપ્શન વગરના કનેક્શન, ડિફૉલ્ટ પાસવર્ડ અને ગેરહાજર ઓથેન્ટિકેશન.
માલિકીહકવાળા સૉફ્ટવેરમાં બહારના લોકો ઘણી વાર આવી નબળાઈઓ કોઈ ઘટના બની ગયા પછી જ જોઈ શકે છે. સુરક્ષા સંશોધકો, સ્વતંત્ર ડેવલપરો અને માતા-પિતા બહારથી તૈયાર પ્રોડક્ટને જ જોઈ શકે છે. બાળકના રૂમમાં વપરાતા ઉપકરણ માટે આ નબળું મોડેલ છે.
સુરક્ષાના સિદ્ધાંત તરીકે પારદર્શકતા
માહિતી સુરક્ષામાં એક જૂનો, ઉપયોગી નિયમ છે: કર્કહોફ્સનો સિદ્ધાંત. સુરક્ષા ડિઝાઇન ગુપ્ત રહે તેના પર આધારિત ન હોવી જોઈએ. કોઈને સિસ્ટમ કેવી રીતે બનેલી છે તેની જાણ હોય તો પણ તે સુરક્ષિત રહેવી જોઈએ.
ખુલ્લેઆમ દસ્તાવેજિત કોડ પોતે જ સૉફ્ટવેરને સુરક્ષિત બનાવતો નથી. પરંતુ તે દાવાઓને ચકાસી શકાય એવા બનાવે છે. વિષયની સમજ ધરાવતા લોકો માર્કેટિંગની વાતો વાંચવાને બદલે ડેટા ફ્લો, કી ડેરિવેશન અને નિયમો તપાસી શકે છે.
Timmyનો અભિગમ: અલગ રાખેલો સુરક્ષા આધાર
Timmyમાં હું હવે ખરેખર સુરક્ષા માટે અગત્યના ભાગો કયા છે તે ખૂબ સ્પષ્ટ રીતે અલગ રાખું છું. UIની દરેક લાઇનથી નક્કી થતું નથી કે પ્રોડક્ટ વિશ્વાસપાત્ર છે કે નહીં. નિર્ણાયક ભાગો છે બૅકએન્ડ લૉજિક, સિગ્નલિંગ કોન્ટ્રાક્ટ્સ, પેરિંગ ક્રિપ્ટોગ્રાફી અને કયો ડેટા સર્વર સુધી પહોંચે છે તે પ્રશ્ન.
એટલા માટે સુરક્ષા આધાર હવે જાહેર baby-monitor-timmy-core રિપોઝિટરીમાં છે. સંપૂર્ણ એપ કોડ હાલ જાહેર નથી. સુરક્ષા માટે અગત્યના બિલ્ડિંગ બ્લોક્સને UI અને પ્રોડક્ટ લૉજિકથી અલગ કરવામાં આવ્યા છે, જેથી તેમને સ્વતંત્ર રીતે દસ્તાવેજિત અને સમીક્ષા કરી શકાય.
આનો વ્યવહારમાં શું અર્થ થાય છે?
- સ્પષ્ટ સીમાઓ: સુરક્ષા બિલ્ડિંગ બ્લોક્સને UI અને પ્રોડક્ટ લૉજિકથી અલગ રાખવામાં આવે છે.
- ચકાસી શકાય તેવા ડેટા ફ્લો: પેરિંગ, સિગ્નલિંગ અને બૅકએન્ડ ઇન્ટરફેસને અલગથી દસ્તાવેજિત કરી શકાય છે.
- કોઈ છુપાયેલા ટ્રેકર નહીં: મહત્વના માર્ગોમાં માત્ર ટેકનિકલી જરૂરી વસ્તુઓ જ હોય છે.
- લાંબા ગાળે જાળવણીની સરળતા: અલગ આધારની સમીક્ષા બિનરચનાત્મક મોનોલિથ કરતાં વધુ સરળ છે.
નિષ્કર્ષ: માતા-પિતા પારદર્શકતાના હકદાર છે
જ્યારે કોઈ એપને બાળકના રૂમની ઍક્સેસ હોય, ત્યારે તેને મહત્વના પ્રશ્નોના સ્પષ્ટ જવાબ આપવા જોઈએ: કયો ડેટા બને છે? તે ક્યાં જાય છે? તેને કોણ વાંચી શકે છે? માતા-પિતા ફૂટરમાં પ્રાઇવસી બેજ કરતાં વધુના હકદાર છે.
Baby Monitor Timmy બતાવવું જોઈએ કે સારું પ્રોડક્ટ અને ચકાસી શકાય એવી સુરક્ષા સાથે રહી શકે છે. મારા માટે તેનો અર્થ એપનો દરેક ખૂણો જાહેર કરવો નથી. તેનો અર્થ એ ભાગો ખુલ્લા રાખવા છે જે પેરિંગ, સિગ્નલિંગ, બૅકએન્ડ ઍક્સેસ અને ડેટા ફ્લો નક્કી કરે છે.