సమస్య: గుడ్డి నమ్మకం
మీరు బేబీ మానిటర్ యాప్ను ఇన్స్టాల్ చేసినప్పుడు, మీ బిడ్డ గది అనే అత్యంత వ్యక్తిగత ప్రదేశానికి దానికి యాక్సెస్ ఇస్తారు. యాప్ వింటుంది; కొన్నిసార్లు చూస్తుంది కూడా. అదే సమయంలో, నేపథ్యంలో ఏమి జరుగుతుందో తల్లిదండ్రులకు తరచూ కనిపించదు: స్ట్రీమ్లు మూడవ పక్ష సర్వర్ల ద్వారా వెళ్తాయా, వాడుక డేటాను సేకరిస్తారా, సాంకేతికంగా దేనికి ఎవరు యాక్సెస్ చేయగలరు?
నిజాయితీగా చెప్పాలంటే: చాలా యాప్ల విషయంలో మీకు తెలియదు. కోడ్ మూసివేయబడి ఉంటుంది, ఆర్కిటెక్చర్ కేవలం ఒక వాదనగానే మిగులుతుంది. చివరికి మీరు సేవా ప్రదాతను నమ్మాల్సి వస్తుంది.
మూసివేసిన కోడ్, తెరిచి ఉన్న బలహీనతలు
ఇటీవలి సంవత్సరాల్లో హ్యాక్కు గురైన బేబీ మానిటర్ల గురించి చాలానే నివేదికలు వచ్చాయి. అపరిచితులు వినగలిగారు, కెమెరాలను కదిలించగలిగారు లేదా స్పీకర్ల ద్వారా మాట్లాడగలిగారు. ఎక్కువసార్లు ఇవి అసాధారణమైన దాడులు కాదు; తీవ్రమైన లోపాలు: ఎన్క్రిప్షన్ లేని కనెక్షన్లు, డిఫాల్ట్ పాస్వర్డ్లు, లేని ప్రమాణీకరణ.
యాజమాన్య సాఫ్ట్వేర్లో, ఏదైనా జరిగిన తర్వాతే బయటివారికి ఆ బలహీనతలు తరచూ తెలుస్తాయి. భద్రతా పరిశోధకులు, స్వతంత్ర డెవలపర్లు, తల్లిదండ్రులు పూర్తయిన ఉత్పత్తిని బయటనుంచే చూస్తారు. బిడ్డ గదిలో ఉండే పరికరానికి ఇది బలహీనమైన విధానం.
భద్రతా సూత్రంగా పారదర్శకత
సమాచార భద్రతలో పాతదైనా ఉపయోగకరమైన ఒక నియమం ఉంది: కెర్క్హాఫ్స్ సూత్రం. భద్రత అనేది రూపకల్పన రహస్యంగా ఉండడంపై ఆధారపడకూడదు. వ్యవస్థ ఎలా నిర్మించబడిందో తెలిసినా అది సురక్షితంగానే ఉండాలి.
బహిరంగంగా డాక్యుమెంట్ చేసిన కోడ్ ఒక్కటే సాఫ్ట్వేర్ను సురక్షితం చేయదు. కానీ చెప్పే విషయాలను తనిఖీ చేయడానికి వీలు కల్పిస్తుంది. ఈ రంగాన్ని అర్థం చేసుకున్నవారు మార్కెటింగ్ మాటలు చదవడం బదులు డేటా ప్రవాహాలు, కీ డెరైవేషన్, నియమాలను పరిశీలించగలరు.
Timmy విధానం: విడిగా ఉన్న భద్రతా కోర్
Timmyలో ఇప్పుడు నిజంగా భద్రతకు కీలకమైన భాగాలను నేను చాలా స్పష్టంగా విడదీస్తున్నాను. ప్రతి UI లైన్ ఉత్పత్తి నమ్మదగినదా కాదా అనేది నిర్ణయించదు. బ్యాకెండ్ లాజిక్, సిగ్నలింగ్ కాంట్రాక్ట్లు, పెయిరింగ్ క్రిప్టోగ్రఫీ, ఏ డేటా సర్వర్కు చేరుతుందనే ప్రశ్నే నిర్ణయాత్మకమైనవి.
అందుకే భద్రతా కోర్ ఇప్పుడు పబ్లిక్ baby-monitor-timmy-core రిపాజిటరీలో ఉంది. ప్రస్తుతం పూర్తి యాప్ కోడ్ పబ్లిక్ కాదు. భద్రతకు కీలకమైన బిల్డింగ్ బ్లాక్లను UI, ఉత్పత్తి లాజిక్ నుంచి వేరు చేశాం, తద్వారా వాటిని విడిగా డాక్యుమెంట్ చేసి సమీక్షించవచ్చు.
దీని అర్థం ఆచరణలో ఏమిటి?
- స్పష్టమైన హద్దులు: భద్రతా బిల్డింగ్ బ్లాక్లు UI, ఉత్పత్తి లాజిక్ నుంచి వేరు చేయబడ్డాయి.
- తనిఖీ చేయదగిన డేటా ప్రవాహాలు: పెయిరింగ్, సిగ్నలింగ్, బ్యాకెండ్ ఇంటర్ఫేస్లను విడిగా డాక్యుమెంట్ చేయవచ్చు.
- దాచిన ట్రాకర్లు లేవు: కీలక మార్గాల్లో సాంకేతికంగా అవసరమైనవి మాత్రమే ఉంటాయి.
- దీర్ఘకాల నిర్వహణ సౌలభ్యం: నిర్మాణం లేని ఒకే భారీ కోడ్బేస్ కంటే విడిగా ఉన్న కోర్ను సమీక్షించడం సులభం.
ముగింపు: తల్లిదండ్రులకు పారదర్శకత కావాలి
ఒక యాప్కు బిడ్డ గదికి యాక్సెస్ ఉన్నప్పుడు, కీలక ప్రశ్నలకు అది స్పష్టమైన సమాధానం ఇవ్వాలి: ఏ డేటా తయారవుతుంది? అది ఎక్కడికి వెళ్తుంది? దాన్ని ఎవరు చదవగలరు? ఫుటర్లో ఉండే ప్రైవసీ బ్యాడ్జ్ కంటే ఎక్కువకు తల్లిదండ్రులు అర్హులు.
మంచి ఉత్పత్తి, తనిఖీ చేయదగిన భద్రత కలిసి ఉండగలవని Baby Monitor Timmy చూపించాలి. నా దృష్టిలో, దీనర్థం యాప్లోని ప్రతి భాగాన్ని పబ్లిక్ చేయడం కాదు. పెయిరింగ్, సిగ్నలింగ్, బ్యాకెండ్ యాక్సెస్, డేటా ప్రవాహాలను నిర్ణయించే భాగాలను తెరవడం.