ආරක්ෂිත තල්ලු දැනුම්දීම්: න්‍යායේ සිට පුහුණුව දක්වා

හෙලෝ, හබ්ර්!

අද මම මගේ සගයන් සහ මම මාස කිහිපයක් තිස්සේ කරමින් සිටින දේ ගැන කතා කරමි: ජංගම ක්ෂණික පණිවිඩකරුවන් සඳහා දැනුම්දීම් තල්ලු කරන්න. මම දැනටමත් පවසා ඇති පරිදි, අපගේ යෙදුමේ ප්රධාන අවධාරණය වන්නේ ආරක්ෂාවයි. එබැවින්, තල්ලු දැනුම්දීම්වල “දුර්වල ලකුණු” තිබේද යන්න සහ එසේ නම්, මෙම ප්‍රයෝජනවත් විකල්පය අපගේ සේවාවට එක් කිරීම සඳහා අපට ඒවා සමතලා කළ හැකි ආකාරය අපි සොයා ගත්තෙමු.

මම අපේ පරිවර්තනයක් පළ කරනවා මාධ්‍ය වෙතින් ලිපි මගෙන් කුඩා එකතු කිරීම් කිහිපයක් සමඟ. එහි "පරීක්ෂණයේ" ප්රතිඵල සහ ගැටලුව විසඳාගත් ආකාරය පිළිබඳ කථාවක් අඩංගු වේ.

අපි ද්රව්යය පරීක්ෂා කරමු

සම්භාව්‍ය මාදිලියේ, තල්ලු දැනුම්දීම් පණිවිඩකරුවන් MITM (Man-in-the-middle) ප්‍රහාරයන්ට ගොදුරු කරයි. උදාහරණයක් ලෙස, ගූගල්, මයික්‍රොසොෆ්ට් සහ iMessage හි පැරණි අනුවාදය සමඟ, යෙදුම Apple සේවාදායකයන් වෙත සංකේතන යතුරු යවයි - සේවාදායකයේ, පරිශීලකයින් සත්‍යාපනය කර පණිවිඩ ශීර්ෂය (හෝ එහි අන්තර්ගතය) විකේතනය කර ඇත.

ආරක්ෂිත තල්ලු දැනුම්දීම්: න්‍යායේ සිට පුහුණුව දක්වා

එහි ප්රතිඵලයක් වශයෙන්, තල්ලු දැනුම්දීම් සේවාදායකය වෙත ප්රවේශය ලබා ගැනීමෙන් ලිපි හුවමාරුව කියවීමට අවස්ථාවක් තිබේ. මෙයින් අදහස් කරන්නේ ලිපි හුවමාරුවේ ඕනෑම සංකේතනයක් නිෂ්ඵල බවයි: තල්ලු දැනුම්දීම් තෙවන පාර්ශවයන් විසින් කියවීමේ හැකියාව තවමත් ඉතිරි කරයි. ලිපියේ කතුවරුන් මෙම හැකියාව වඩාත් විස්තරාත්මකව සාකච්ඡා කළහ. "නිවැරදිව සංකේතනය කරන්න" Xaker.ru හි, පණිවිඩ සංකේතනය කිරීමේ ක්‍රම සඳහා කැපවී ඇත.

ඔබ Apple සහ Google සේවාදායකයන් පරිශීලක සංකේතාංකන යතුරු කාන්දු වීම සම්බන්ධයෙන් 100% ආරක්ෂිත යැයි සිතන්නේ නම්, ඔවුන්ගේ සේවකයින්ට ඒවාට ප්‍රවේශය ඇති බව සලකන්න. ඒ වගේම සේවකයන් කියන්නේ මිනිස්සු.
තල්ලු දැනුම්දීම් වල සියලුම දුර්වලතා තිබියදීත්, සිග්නල් සහ ටෙලිග්‍රාම් ඇතුළු බොහෝ "සුරක්ෂිත" ක්ෂණික පණිවිඩකරුවන් ඒවා භාවිතා කරයි. එසේ නොමැතිනම්, පරිශීලකයින්ට නිරන්තරයෙන් යෙදුමට පිවිසීමෙන් නව පණිවිඩ "අතින්" නිරීක්ෂණය කිරීමට සිදුවනු ඇත. එය ඉතා අපහසු වන අතර තරඟකාරී පණිවිඩකරුවන්ට වාසියක් ලැබෙනු ඇත.

ව්‍යාකූලත්වය සහ සාමාන්‍ය බුද්ධිය


අපගේ ව්‍යාපෘතියේ දී, අපි මාස කිහිපයකට පෙර මෙම ගැටළුව සමීපව ගෙන ගියෙමු. තරඟකාරී වීමට අපට තල්ලු දැනුම්දීමේ විකල්පයක් එක් කිරීමට අවශ්‍ය විය. නමුත් ඒ සමඟම, ආරක්ෂිත සිදුරක් විවෘත නොකරන්න, මන්ද ඕනෑම දත්ත කාන්දුවක් ව්‍යාපෘතිය කෙරෙහි ඇති විශ්වාසය අඩපණ කරයි.

කෙසේ වෙතත්, අපට දැනටමත් වැදගත් වාසියක් ඇත: අපගේ පණිවිඩකරු විමධ්‍යගත කර ඇත (දත්ත බ්ලොක්චේන් මත ගබඩා කර ඇත), සහ සේවකයින්ට ගිණුම් වෙත ප්‍රවේශය නොමැත. සංකේතාංකන යතුරු ඇත්තේ පරිශීලකයින්ට පමණක් වන අතර, MITM ප්‍රහාරවලින් ආරක්ෂා වීමට බ්ලොක්චේන් හි පොදු අන්තර් සම්බන්ධක යතුරු තිබේ.

තල්ලු දැනුම්දීම් වල පළමු අනුවාදයේ, අපි එය හැකිතාක් ආරක්ෂිතව වාදනය කිරීමට තීරණය කළ අතර පණිවිඩ පෙළ කිසිසේත් සම්ප්‍රේෂණය නොකිරීමට අපි තීරණය කළෙමු. තල්ලු සේවාවට නෝඩයෙන් පණිවිඩයේ පෙළ ලැබුණේ නැත, නමුත් එය ලැබීමේ කාරනය පිළිබඳ සංඥාවක් පමණි. එබැවින්, පරිශීලකයා "නව පණිවිඩය පැමිණ ඇත" දැනුම්දීම දුටුවේය. එය කියවීමට හැකි වූයේ පණිවිඩකරු තුළ පමණි.

ආරක්ෂිත තල්ලු දැනුම්දීම්: න්‍යායේ සිට පුහුණුව දක්වා
එය ක්‍රියාත්මක වූ ආකාරය: වීඩියෝ.

ඉන්පසුව, Apple හි නවතම දැනුම්දීම් අනුවාදයේ නව ආරක්ෂක විශේෂාංග ඇති බව අපට දැනගන්නට ලැබුණි. ඔව්හු නිදහස් UNNotificationServiceExtension, සංවර්ධකයින්ට APNS හරහා සම්පුර්ණයෙන් සංකේතාත්මක දැනුම්දීම් දත්ත යැවීමට ඉඩ සලසයි. අවසාන පරිශීලකයාගේ උපාංගයේ ඇති යෙදුම විකේතනය සිදු කරයි (හෝ අමතර දත්ත බාගත කරයි) සහ දැනුම්දීමක් පෙන්වයි. තල්ලු දැනුම්දීම් වල දෙවන අනුවාදය සඳහා අපි එය පදනම ලෙස ගත්තෙමු.

අපි දැන් iOS සඳහා තල්ලු දැනුම්දීම් වල දෙවන අනුවාදය සංවර්ධනය කර ඇත, එමඟින් ඔබට ආරක්ෂක අවදානමකින් තොරව පණිවිඩයේ පෙළ පෙන්වීමට ඉඩ සලසයි. නව සංකල්පය තුළ, තර්කනය මේ වගේ ය:

  • තල්ලු සේවාව ගනුදෙනු අංකය සමඟ තල්ලු දැනුම්දීමක් යවයි (සංකේතනය කළ පණිවිඩය ඉතා විශාල විය හැකි අතර දැනුම්දීම් ප්‍රමාණය ඉතා සීමිතය)
  • උපාංගයට දැනුම්දීමක් ලැබුණු විට, එය අපගේ NotificationServiceExtension දියත් කරයි - ක්ෂුද්‍ර යෙදුමක් වන අතර එය id මගින් node එකක් හරහා ගනුදෙනුවක් ඉල්ලා සිටින අතර එය සුරකින ලද මුර-වැකිකඩ භාවිතයෙන් විකේතනය කරයි, සහ පද්ධතියට නව දැනුම්දීමක් යවයි. මුරපදය ආරක්ෂිත ගබඩාවක ගබඩා කර ඇත.
  • පද්ධතිය විකේතනය කළ පණිවිඩයක් හෝ පරිවර්තනයක් සමඟ දැනුම්දීමක් පෙන්වයි.
  • සරල කෙටි පණිවිඩය මෙන් යතුරු කොතැනකවත් යන්නේ නැත. තල්ලු සේවාවට පණිවිඩය විකේතනය කිරීමට ක්‍රමයක් නොමැත.

ආරක්ෂිත තල්ලු දැනුම්දීම්: න්‍යායේ සිට පුහුණුව දක්වා

අපි මෙම අනුවාදය ක්‍රියා කරන බව පිළිගෙන iOS යෙදුමේ නවතම යාවත්කාලීනයේදී එය ක්‍රියාත්මක කළෙමු.
තාක්ෂණික පැත්ත ගැන උනන්දුවක් දක්වන අයට මූලාශ්ර කේතය බැලිය හැක: github.com/Adamant-im/adamant-notificationService.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න