ត្រឡប់ទៅប្លុក

ពិនិត្យការបង្ហាញ Browser Fingerprint៖ ការត្រួតពិនិត្យភាពស៊ីគ្នា 6 ចំណុច

ទំព័រសាកល្បង fingerprint បង្ហាញទិន្នន័យជាច្រើនដែលគេហទំព័រអាចអានបានស្រាប់។ ការត្រួតពិនិត្យ 6 ចំណុចនេះជួយរកភាពមិនស៊ីគ្នារវាង browser, system, តំបន់, network និង rendering ព្រោះសញ្ញាដែលផ្ទុយគ្នាជាច្រើនងាយឲ្យគេសម្គាល់ជាងតម្លៃចម្លែកតែមួយ។

បើបើកទំព័រសាកល្បង browser fingerprint ណាមួយ អ្នកនឹងឃើញបញ្ជី field វែងៗដូចជា UA, screen, time zone, fonts, លទ្ធផល Canvas rendering និង hardware parameters។ មនុស្សជាច្រើនមើល “uniqueness” មុនគេ ប៉ុន្តែវាមិនមែនជាចំណុចសំខាន់បំផុតទេ។ ចំណុចសំខាន់ជាងគេគឺថា field ទាំងនេះស៊ីគ្នាឬអត់។

浏览器指纹暴露自查:六项核对与自洽判断的关键步骤与判断维度示意图

អ្វីខ្លះដែលគេហទំព័រអាចអានបានស្រាប់

Fingerprint មិនត្រូវបានរក្សាទុកដូច cookie ទេ។ Cookie អាចលុប បិទ ឬជៀសវាងដោយ private browsing បាន ប៉ុន្តែ fingerprint កើតចេញពីការកំណត់របស់ browser និង device ខ្លួនឯង។ UA មានប្រភេទ និង version របស់ browser ព្រមទាំង operating system និង version របស់វា។ ក៏មាន installed plugins, screen resolution និង color depth, បញ្ជី fonts, time zone និង preferred language, ប្រភេទ CPU, GPU model និង memory, IP address, ISP និង connection type ព្រមទាំងលទ្ធផល rendering ពី HTML5 interfaces ដូចជា Canvas និង WebGL។ ពេលបញ្ចូលគ្នា field ទាំងនេះក្លាយជាអត្តសញ្ញាណមួយដែលជាទូទៅមិនផ្លាស់ប្តូរទេ ទោះប្តូរ IP, សម្អាត cookies ឬប្រើ private mode ក៏ដោយ។ Platform ក៏ប្រើគោលការណ៍ដូចគ្នានេះដើម្បីវាយតម្លៃថា account ផ្សេងៗអាចពាក់ព័ន្ធគ្នាឬអត់។

ជាមុន សូមផ្ទៀងផ្ទាត់ 3 ចំណុចជាមួយ system

User Agent គួរតែពិនិត្យមុនគេ ព្រោះវាជាវិធីដែល browser ពណ៌នាខ្លួនឯង។ ចម្លង UA ពីទំព័រសាកល្បង រួចពិនិត្យ browser version ក្នុង browser settings និង operating system version ក្នុង system settings។ បើ system ឬ kernel version ដែល UA បង្ហាញមិនត្រូវនឹងម៉ាស៊ីនពិត ឬចាស់ជាង version ដែលគេប្រើទូទៅបច្ចុប្បន្នយ៉ាងច្បាស់ នោះគឺជាភាពមិនស៊ីគ្នាដែលងាយសម្គាល់។

Time zone គួរត្រូវនឹងតំបន់នៃ network exit។ ទំព័រសាកល្បងភាគច្រើនបង្ហាញ current time zone ដោយផ្ទាល់ ហើយ script សាមញ្ញសម្រាប់អាន time zone ក៏ផ្តល់តម្លៃដូចគ្នា។ ប្រើទំព័រ IP lookup ណាមួយដើម្បីមើលថា exit IP ត្រូវបានកំណត់ទៅតំបន់ណា។ បើទាំងពីរបង្ហាញតំបន់ខុសគ្នា គួរតែដោះស្រាយ mismatch នោះ។

Language និង region ជាសញ្ញាខ្សោយពេលមើលដោយឡែក ប៉ុន្តែមានប្រយោជន៍ពេលមើលរួមគ្នា។ ពិនិត្យបញ្ជីដែល navigator.language និង navigator.languages ត្រឡប់មក ហើយប្រៀបធៀបជាមួយភាសាដែលគេប្រើទូទៅនៅ exit region។ បើ time zone នៅសហរដ្ឋអាមេរិក language ជាភាសាចិន ហើយ exit នៅអឺរ៉ុប ការរួមបញ្ចូលបែបនេះគួរឲ្យសម្គាល់ជាងសញ្ញាតែមួយ។

Screen, network exit និង rendering characteristics

សម្រាប់ screen និង hardware parameters ត្រូវមើលពីរចំណុច៖ តម្លៃទាំងនេះជារឿងធម្មតាឬអត់ ហើយវាត្រូវនឹង device type ដែល UA បង្ហាញឬអត់។ Resolution, pixel ratio, available area, ចំនួន CPU cores និង memory អាចពិនិត្យរួមគ្នា។ Resolution ទំហំដូចទូរស័ព្ទ ប៉ុន្តែភ្ជាប់ជាមួយ desktop UA គឺជាភាពផ្ទុយគ្នាដែលឃើញញឹកញាប់។

WebRTC គួរតែត្រួតពិនិត្យដោយឡែក ព្រោះវាអាចបង្ហាញ network information ពិត។ ទំព័រសាកល្បងភាគច្រើនមាន item ដាច់ដោយឡែកសម្រាប់វា។ មើលថាតើវាបង្ហាញ local network address ដូចជាអាសយដ្ឋានចាប់ផ្តើមដោយ 192.168 ឬ 10 ឬបង្ហាញ public exit address ពិតតែម្តង។ បើក proxy រួចហើយ ប៉ុន្តែអាសយដ្ឋានពិតនៅតែបង្ហាញ នោះ traffic នោះមិនបានឆ្លងកាត់ proxy ទេ។ ចំណុចនេះមានអាទិភាពខ្ពស់បំផុត។

សម្រាប់ Canvas និង WebGL ត្រូវមើលថាលទ្ធផលមានស្ថិរភាពឬអត់ និងស៊ីគ្នាជាមួយ GPU model ដែលបានបង្ហាញឬអត់។ មានលម្អិតមួយសំខាន់៖ បើមាន environment ច្រើនដំណើរការជាមួយគ្នាលើម៉ាស៊ីនតែមួយ ហើយវាផ្តល់ rendering values ដូចគ្នាទាំងស្រុង វាងាយឲ្យគេភ្ជាប់ពាក់ព័ន្ធគ្នាជាង values ដែលមានការប្រែប្រួល ឬ noise ខ្លះ។

ភាពផ្ទុយគ្នាលេចធ្លោជាងតម្លៃដែលមិនសូវធម្មជាតិ

Platform មិនទាមទារឲ្យ device នីមួយៗ unique ទាំងស្រុងទេ។ អ្វីដែលវាចង់វាយតម្លៃគឺថា ព័ត៌មានទាំងមូលមើលទៅដូចជាបញ្ជូនចេញពីម៉ាស៊ីនធម្មតាឬអត់។ តម្លៃមួយដែលមិនសូវ “realistic” ដូចជា resolution កម្រមួយ ជាទូទៅគ្រាន់តែជាសញ្ញាខ្សោយ។ ប៉ុន្តែពេល field ជាច្រើនផ្ទុយគ្នា ភាពមិនស៊ីគ្នានោះងាយសម្គាល់ណាស់។ UA បង្ហាញ Windows ប៉ុន្តែ font list ដូច macOS; time zone នៅសហរដ្ឋអាមេរិក language ជាភាសាចិន ហើយ exit នៅអឺរ៉ុប; resolution ដូចទូរស័ព្ទ ប៉ុន្តែ UA បង្ហាញ desktop browser។ ករណីណាមួយបែបនេះអាចធ្វើឲ្យការកែតម្រូវលម្អិតនៅកន្លែងផ្សេងមិនមានប្រយោជន៍។ ដូច្នេះ self-check គួររក hard contradiction ជាមុន សិនទើបពិចារណាលម្អិតតាម parameter។

បើចង់កែតែ 3 ចំណុច

WebRTC leak មកមុនគេ ព្រោះវាបង្ហាញ network information ពិត។ ទីពីរ time zone និង language គួរស៊ីគ្នាជាមួយ exit region ព្រោះ mismatch បែបនេះអាចសន្សំជាសញ្ញាមិនប្រក្រតីបានងាយ។ ទីបីគឺការគ្រប់គ្រង Canvas និង WebGL ដើម្បីកុំឲ្យម៉ាស៊ីនតែមួយបង្ហាញ stable unique rendering value ដោយផ្ទាល់។

ក៏មានកម្រិតជាក់ស្តែងផងដែរ៖ ការបិទ ឬកម្រិត JavaScript អាចរារាំងការប្រមូលទិន្នន័យខ្លះ ប៉ុន្តែវានឹងប៉ះពាល់យ៉ាងច្បាស់ដល់ភាពងាយស្រួលប្រើគេហទំព័រ។ Privacy browser មានការការពារខ្លះស្រាប់ ហើយជាញឹកញាប់គ្រប់គ្រាន់សម្រាប់ browsing ប្រចាំថ្ងៃ ប៉ុន្តែអាចមានភាពបត់បែនតិចជាងនៅពេលត្រូវរក្សា identity ច្រើនដែលមិនពាក់ព័ន្ធគ្នារយៈពេលយូរ។

របៀបរក្សា environment ច្រើន

ចំណុចសំខាន់មិនមែនបង្កើត fingerprint random ទាំងស្រុងរាល់ពេលទេ។ Environment នីមួយៗគួរមានស្ថិរភាពនៅខាងក្នុង ហើយខុសពី environment ផ្សេងៗ។ ជាមួយ PurpleMark អ្នកអាចបង្កើត browser environment ដាច់ដោយឡែកសម្រាប់ account នីមួយៗ គ្រប់គ្រង parameter ដូចជា Canvas ដោយឡែក ហើយប្រើ test page ដើម្បីពិនិត្យ internal consistency របស់ environment នីមួយៗ។ Environment ដែលឆ្លងកាត់ការត្រួតពិនិត្យនេះទើបសមស្របសម្រាប់ប្រើរយៈពេលវែង។

សរុបមក fingerprint testing មានគោលបំណងតែពីរ៖ មើលថាអ្នកកំពុងបង្ហាញអ្វី និងបញ្ជាក់ថាព័ត៌មានទាំងមូលស៊ីគ្នា។ Uniqueness គឺជាចំណុចដែលមិនគួរព្រួយបារម្ភបំផុត។