Cross Origin Storage API: கோப்புகளைத் திரும்பத் திரும்பப் பதிவிறக்குவதைத் தவிர்க்கவும்

Cross-Origin Storage API மூலம் உலாவிகள் (browsers) இரண்டு இணையதளங்களுக்கு இடையே 33 GB அளவுள்ள ஒரு AI மாதிரியைப் (model) பகிர்ந்து கொள்ள முடியும். இதன் மூலம் நீங்கள் பதிவிறக்கம் செய்யும் தரவின் அளவு 66 GB-யிலிருந்து 33 GB-யாகக் குறையும்.

முன்பு, ஒரு இணையதளம் ஏற்கனவே பதிவிறக்கம் செய்த கோப்பை மற்றுமொரு இணையதளமும் மீண்டும் பயன்படுத்த உலாவிகள் அனுமதித்தன. உதாரணமாக, ஒரு CDN-லிருந்து ஒரே React bundle-ஐ இரண்டு பக்கங்களில் ஏற்றும்போது, இரண்டாவது முறை உலாவியானது ஏற்கனவே சேமிக்கப்பட்ட (cached) நகலையே வழங்கும். ஆனால், தனியுரிமை (privacy) சார்ந்த சில மாற்றங்களால் இந்த வசதி பாதிக்கப்பட்டது: இப்போது உலாவிகள் cache-களை இணையதள வாரியாகப் பிரிக்கின்றன (partition), இதனால் ஒரே மாதிரியான URL-களாக இருந்தாலும், அவை ஒவ்வொரு மூலத்திற்கும் (origin) தனித்தனியாகச் சேமிக்கப்படுகின்றன. இதன் விளைவாக, ஒன்றுக்கும் மேற்பட்ட இணையதளங்களில் தோன்றும் ஒவ்வொரு பெரிய கோப்பிற்கும் (asset) மீண்டும் மீண்டும் தரவுப் பரிமாற்றம் (duplicate traffic) ஏற்படுகிறது.

ஏன் இந்தத் திரும்பத் திரும்பப் பதிவிறக்கும் சிக்கல் இப்போது முக்கியமானது

இந்தத் தரவு விரயம் சிறிய கோப்புகளில்—web fonts அல்லது சில மெகாபைட் JavaScript—தெரியாமல் இருக்கலாம், ஆனால் கோப்பு பல ஜிகாபைட் அளவுள்ள AI model அல்லது WebAssembly module ஆக இருக்கும்போது இது மிகப்பெரிய பாதிப்பை ஏற்படுத்துகிறது.

Cross-Origin Storage (COS) API எவ்வாறு செயல்படுகிறது

இந்த முன்மொழிவு, URL-அடிப்படையிலான தேடலுக்குப் பதிலாக உள்ளடக்க-அடிப்படையிலான (content-addressed) தேடலைப் பயன்படுத்துகிறது. ஒரு இணையதளம் தனக்குத் தேவையான கோப்பின் SHA-256 hash-ஐ வழங்கும். அந்த கோப்பை முதலில் எந்த இணையதளம் பதிவிறக்கியது என்பதைப் பொருட்படுத்தாமல், உலாவியானது தனது உள்ளூர் சேமிப்பகத்தில் (local store) அந்தத் துல்லியமான hash இருக்கிறதா என்று சரிபார்க்கும். கோப்பு இருந்தால், உலாவியானது அதை வழங்கும்; இல்லையெனில், அது நெட்வொர்க்கிலிருந்து கோப்பைப் பதிவிறக்கம் செய்து, எதிர்காலப் பயன்பாட்டிற்காக அந்த hash-ன் கீழ் சேமித்து வைக்கும்.

  • Hash மூலம் அடையாளம் காணுதல். Hash என்பது கோப்பின் இருப்பிடத்தைக் குறிக்காமல், அதன் bytes-களைத் தனித்துவமாகக் குறிக்கிறது.
  • Cross-origin அணுகல். Hash தெரிந்த எந்தவொரு இணையதளமும் அந்த கோப்பைக் கோர முடியும், அது வேறு எங்கிருந்து வந்திருந்தாலும் சரி.
  • உள்ளூர் cache பகிர்வு. ஒரே ஒரு நகல் பல கோரிக்கைகளைப் பூர்த்தி செய்யும்.

இந்த API வேண்டுமென்றே ஒரு குறிப்பிட்ட நோக்கத்திற்காக மட்டுமே உருவாக்கப்பட்டுள்ளது: இது தற்போதுள்ள Cache API அல்லது IndexedDB-க்கு மாற்றாக அமையாது. அவை பொதுவான பயன்பாட்டிற்கான சேமிப்பு கருவிகளாகத் தொடரும்; COS என்பது பெரிய மற்றும் ஒரே மாதிரியான தரவுத் தொகுப்புகளுக்கான (blobs) ஒரு குறிப்பிட்ட நோக்கத்திற்கான குறுக்குவழியாகும்.

வடிவமைப்பில் சேர்க்கப்பட்டுள்ள தனியுரிமைப் பாதுகாப்புகள்

இணையதளங்கள் பயனரின் cache-ஐ ஆராய அனுமதிப்பது, cache partitioning தடுப்ப intended செய்த கண்காணிப்பு முறைகளை (tracking vectors) மீண்டும் கொண்டு வரக்கூடும். COS மூன்று விதிகளின் மூலம் அந்த அபாயத்தைத் தடுக்கிறது:

  1. பட்டியலிட முடியாது (No enumeration). ஸ்கிரிப்டுகளால் “உங்களிடம் என்னென்ன hash-கள் உள்ளன?” என்று கேட்க முடியாது—சேமிப்பகம் வெளிப்படையாகத் தெரியாத வகையில் (opaque) இருக்கும்.
  2. தெரிந்த hash தேவை. ஒரு இணையதளம் துல்லியமான hash தெரிந்தால் மட்டுமே கோப்பைக் கோர முடியும். முன்கூட்டிய அறிவு இல்லாமல் தன்னிச்சையாகத் தேடுவது (random probing) சாத்தியமற்றது.
  3. உலகளாவிய அணுகலுக்கான பிரபலத் தகுதி (Popularity threshold). ஒரு கோப்பை வேறு ஒரு இணையதளம் பெற வேண்டுமானால், அது போதுமான அளவு பொதுவானதாக (அதாவது “anonymous”) இருக்க வேண்டும். அரிதான கோப்புகள் அவற்றை முதலில் பதிவிறக்கம் செய்த இணையதளத்துடன் மட்டுமே தனிமைப்படுத்தப்பட்டிருக்கும்.

இந்த வரம்புகள், API-யை உண்மையான பகிரப்பட்ட சொத்துக்களுக்குப் பயனுள்ளதாக வைத்திருப்பதோடு மட்டுமல்லாமல், அது fingerprinting செய்வதற்கான ஒரு பக்கப் பாதையாக (side channel) மாறுவதையும் தடுக்கின்றன.

அடுத்து கவனிக்க வேண்டியவை

உலாவிகளுக்குள் இருக்கும் மிகப்பெரிய தரவுத் தொகுப்புகளால் (assets) உருவான ஒரு சிக்கலுக்கு Cross-Origin Storage API ஒரு நேரடியான தீர்வை வழங்குகிறது. இணையச் சமூகம், அலைக்கற்றைத் திறன் (bandwidth efficiency) மற்றும் cache partitioning-க்குக் காரணமான தனியுரிமை உத்தரவாதங்களுக்கு இடையே சமநிலையைப் பேண முடியுமா என்பது, இந்த யோசனை வரைவு நிலையைக் கடந்து முன்னேறுமா என்பதைத் தீர்மானிக்கும். அது வெற்றியடைந்தால், எதிர்கால உலாவிகள் நீங்கள் 30 GB-க்கும் அதிகமான அளவுள்ள ஒரு AI மாதிரியை ஒருமுறை மட்டும் பதிவிறக்கம் செய்து, அதை எல்லா இடங்களிலும் மீண்டும் பயன்படுத்த அனுமதிக்கும்—இது நேரம், தரவு மற்றும் ஆற்றலைச் சேமிக்கும்.