సురక్షిత పుష్ నోటిఫికేషన్‌లు: సిద్ధాంతం నుండి అభ్యాసం వరకు

హే హబ్ర్!

ఈ రోజు నేను నా సహోద్యోగులు మరియు నేను చాలా నెలలుగా ఏమి చేస్తున్నాం అనే దాని గురించి మాట్లాడతాను: మొబైల్ ఇన్‌స్టంట్ మెసెంజర్‌ల కోసం పుష్ నోటిఫికేషన్‌లు. నేను ఇప్పటికే చెప్పినట్లుగా, మా అప్లికేషన్‌లో భద్రతపై ప్రధాన ప్రాధాన్యత ఉంది. అందువల్ల, పుష్ నోటిఫికేషన్‌లు "బలహీనమైన పాయింట్‌లు" కలిగి ఉన్నాయో లేదో మేము కనుగొన్నాము మరియు అలా అయితే, మా సేవకు ఈ ఉపయోగకరమైన ఎంపికను జోడించడానికి మేము వాటిని ఎలా సమం చేయవచ్చు.

మా అనువాదాన్ని ప్రచురిస్తున్నాను మీడియం నుండి కథనాలు నా నుండి కొన్ని చిన్న చేర్పులతో. ఇది "పరిశోధన" యొక్క ఫలితాలు మరియు సమస్య ఎలా పరిష్కరించబడింది అనే కథనాన్ని కలిగి ఉంది.

మేము పదార్థాన్ని పరిశీలిస్తాము

క్లాసిక్ మోడల్‌లో, పుష్ నోటిఫికేషన్‌లు మెసెంజర్‌లను MITM (మ్యాన్-ఇన్-ది-మిడిల్) దాడులకు గురి చేస్తాయి. ఉదాహరణకు, Google, Microsoft మరియు iMessage యొక్క పాత సంస్కరణతో, అప్లికేషన్ Apple సర్వర్‌లకు గుప్తీకరణ కీలను పంపుతుంది - సర్వర్‌లో, వినియోగదారులు ప్రమాణీకరించబడతారు మరియు సందేశ హెడర్ (లేదా దాని కంటెంట్) డీక్రిప్ట్ చేయబడుతుంది.

సురక్షిత పుష్ నోటిఫికేషన్‌లు: సిద్ధాంతం నుండి అభ్యాసం వరకు

ఫలితంగా, పుష్ నోటిఫికేషన్ సర్వర్‌కు ప్రాప్యతను పొందడం ద్వారా కరస్పాండెన్స్‌ను చదవడానికి అవకాశం ఉంది. కరస్పాండెన్స్ యొక్క ఏదైనా ఎన్‌క్రిప్షన్ పనికిరానిదని దీని అర్థం: పుష్ నోటిఫికేషన్‌లు ఇప్పటికీ మూడవ పక్షాలు చదివే అవకాశాన్ని వదిలివేస్తాయి. వ్యాసం యొక్క రచయితలు ఈ అవకాశాన్ని మరింత వివరంగా చర్చించారు. “సరిగ్గా గుప్తీకరించు” Xaker.ruలో, సందేశాలను గుప్తీకరించే పద్ధతులకు అంకితం చేయబడింది.

మీరు Apple మరియు Google సర్వర్‌లు వినియోగదారు ఎన్‌క్రిప్షన్ కీలను లీక్ చేయకుండా 100% సురక్షితమని భావిస్తే, వారి ఉద్యోగులకు వాటికి ప్రాప్యత ఉందని పరిగణించండి. మరియు ఉద్యోగులు ప్రజలు.
పుష్ నోటిఫికేషన్‌ల యొక్క అన్ని దుర్బలత్వాలు ఉన్నప్పటికీ, సిగ్నల్ మరియు టెలిగ్రామ్‌తో సహా అనేక "సురక్షిత" తక్షణ సందేశకులు వాటిని ఉపయోగిస్తున్నారు. లేకపోతే, వినియోగదారులు నిరంతరం అప్లికేషన్‌లోకి లాగిన్ చేయడం ద్వారా కొత్త సందేశాలను "మాన్యువల్‌గా" పర్యవేక్షించవలసి ఉంటుంది. ఇది చాలా అసౌకర్యంగా ఉంది మరియు పోటీ మెసెంజర్‌లు ప్రయోజనం పొందుతారు.

మతిస్థిమితం మరియు ఇంగితజ్ఞానం


మా ప్రాజెక్ట్‌లో, మేము చాలా నెలల క్రితం ఈ సమస్యను దగ్గరగా తీసుకున్నాము. మేము పోటీగా ఉండటానికి పుష్ నోటిఫికేషన్ ఎంపికను జోడించాలి. కానీ అదే సమయంలో, భద్రతా రంధ్రం తెరవవద్దు, ఎందుకంటే ఏదైనా డేటా లీక్ ప్రాజెక్ట్పై విశ్వాసాన్ని దెబ్బతీస్తుంది.

అయినప్పటికీ, మాకు ఇప్పటికే ఒక ముఖ్యమైన ప్రయోజనం ఉంది: మా మెసెంజర్ వికేంద్రీకరించబడింది (డేటా బ్లాక్‌చెయిన్‌లో నిల్వ చేయబడుతుంది), మరియు ఉద్యోగులకు ఖాతాలకు ప్రాప్యత లేదు. వినియోగదారులు మాత్రమే ఎన్‌క్రిప్షన్ కీలను కలిగి ఉంటారు మరియు MITM దాడుల నుండి రక్షించడానికి బ్లాక్‌చెయిన్‌లో ఇంటర్‌లోక్యూటర్‌ల పబ్లిక్ కీలు అందుబాటులో ఉంటాయి.

పుష్ నోటిఫికేషన్‌ల యొక్క మొదటి సంస్కరణలో, మేము దీన్ని వీలైనంత సురక్షితంగా ప్లే చేయాలని నిర్ణయించుకున్నాము మరియు సందేశ వచనాన్ని అస్సలు ప్రసారం చేయకూడదని నిర్ణయించుకున్నాము. పుష్ సేవ నోడ్ నుండి సందేశం యొక్క వచనాన్ని అందుకోలేదు, కానీ దాని రసీదు యొక్క వాస్తవం గురించి ఒక సిగ్నల్ మాత్రమే. అందువల్ల, వినియోగదారు "కొత్త సందేశం వచ్చింది" నోటిఫికేషన్‌ను చూసారు. మెసెంజర్‌లో మాత్రమే చదవడం సాధ్యమైంది.

సురక్షిత పుష్ నోటిఫికేషన్‌లు: సిద్ధాంతం నుండి అభ్యాసం వరకు
ఇది ఎలా పని చేసింది: వీడియో.

ఆ తర్వాత, Apple యొక్క తాజా వెర్షన్ నోటిఫికేషన్‌లు కొత్త భద్రతా లక్షణాలను కలిగి ఉన్నాయని మేము తెలుసుకున్నాము. వాళ్ళు విడుదల చేయబడింది UNNotificationServiceExtension, ఇది డెవలపర్‌లను APNS ద్వారా పూర్తిగా గుప్తీకరించిన నోటిఫికేషన్ డేటాను పంపడానికి అనుమతిస్తుంది. తుది వినియోగదారు పరికరంలోని యాప్ డిక్రిప్షన్ (లేదా అదనపు డేటాను డౌన్‌లోడ్ చేస్తుంది) మరియు నోటిఫికేషన్‌ను ప్రదర్శిస్తుంది. పుష్ నోటిఫికేషన్‌ల యొక్క రెండవ వెర్షన్‌కు మేము దీనిని ప్రాతిపదికగా తీసుకున్నాము.

మేము ఇప్పుడు iOS కోసం పుష్ నోటిఫికేషన్‌ల యొక్క రెండవ సంస్కరణను అభివృద్ధి చేసాము, ఇది భద్రతా ప్రమాదం లేకుండా సందేశం యొక్క వచనాన్ని ప్రదర్శించడానికి మిమ్మల్ని అనుమతిస్తుంది. కొత్త భావనలో, తర్కం ఇలా కనిపిస్తుంది:

  • పుష్ సేవ లావాదేవీ సంఖ్యతో పుష్ నోటిఫికేషన్‌ను పంపుతుంది (ఎన్‌క్రిప్టెడ్ సందేశం చాలా పెద్దదిగా ఉంటుంది మరియు నోటిఫికేషన్‌ల పరిమాణం చాలా పరిమితంగా ఉంటుంది)
  • పరికరం నోటిఫికేషన్‌ను స్వీకరించినప్పుడు, అది మా నోటిఫికేషన్ సర్వీస్ ఎక్స్‌టెన్షన్‌ను ప్రారంభిస్తుంది - ఇది నోడ్ నుండి ఐడి ద్వారా లావాదేవీని అభ్యర్థించడం, సేవ్ చేసిన పాస్‌ఫ్రేజ్‌ని ఉపయోగించి డీక్రిప్ట్ చేయడం మరియు సిస్టమ్‌కు కొత్త నోటిఫికేషన్‌ను పంపే మైక్రోఅప్లికేషన్. పాస్‌ఫ్రేజ్ సురక్షిత నిల్వలో నిల్వ చేయబడుతుంది.
  • సిస్టమ్ డిక్రిప్టెడ్ సందేశం లేదా అనువాదంతో నోటిఫికేషన్‌ను ప్రదర్శిస్తుంది.
  • సాదా వచన సందేశం వలె కీలు ఎక్కడికీ వెళ్లవు. సందేశాన్ని డీక్రిప్ట్ చేయడానికి పుష్ సేవకు మార్గం లేదు.

సురక్షిత పుష్ నోటిఫికేషన్‌లు: సిద్ధాంతం నుండి అభ్యాసం వరకు

మేము ఈ సంస్కరణను పని చేస్తున్నట్లు అంగీకరించాము మరియు iOS అప్లికేషన్ యొక్క తాజా నవీకరణలో దీన్ని అమలు చేసాము.
సాంకేతిక వైపు ఆసక్తి ఉన్నవారు సోర్స్ కోడ్‌ను చూడవచ్చు: github.com/Adamant-im/adamant-notificationService.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి