អំពីកម្មវិធីនេះ
កូដ TOTP គឺលេខប្រាំមួយខ្ទង់ដែលកម្មវិធី authenticator បង្ហាញបន្ទាប់ពីពាក្យសម្ងាត់របស់អ្នក — ជាកត្តាទីពីរក្នុងការផ្ទៀងផ្ទាត់ពីរជំហាន — ហើយវាផ្លាស់ប្តូររៀងរាល់ ៣០ វិនាទី ព្រោះវាត្រូវបានគណនាពីអាថ៌កំបាំងរួម និងពេលវេលាបច្ចុប្បន្ន មិនមែនពីការភ្ជាប់ណាមួយទេ។ កម្មវិធីនេះគណនាកូដទាំងនោះនៅក្នុងកម្មវិធីរុករករបស់អ្នក៖ បិទភ្ជាប់អាថ៌កំបាំង Base32 ឬ otpauth:// URI — ប្រភេទដែល QR code ពី Facebook, Telegram, Gmail ឬធនាគារមាន — ហើយវាបង្ហាញកូដបច្ចុប្បន្នជាមួយការរាប់ថយក្រោយទៅកូដបន្ទាប់ រួមទាំងឧបករណ៍បកស្រាយដែលបង្ហាញថា URI មាន issuer គណនី និងប៉ារ៉ាម៉ែត្រអ្វីខ្លះ។ សូមប្រើវាដើម្បីពិនិត្យការផ្ទេរទៅទូរស័ព្ទថ្មី សាកល្បងអាថ៌កំបាំងដែលទើបដំឡើង ត្រួតពិនិត្យ URI មុនពេលទុកចិត្ត ឬរៀនពីរបៀបដែល 2FA ដំណើរការ។ កុំប្រើវាជា authenticator ប្រចាំថ្ងៃ៖ អាថ៌កំបាំង TOTP ដែលបិទភ្ជាប់ទៅគេហទំព័រណាមួយ — រួមទាំងគេហទំព័រនេះ — គឺជាលិខិតសម្គាល់ដែលលាតត្រដាងចំពោះអ្វីដែលដំណើរការក្នុងផ្ទាំងកម្មវិធីរុករកនោះ ដូច្នេះការប្រើប្រាស់សុវត្ថិភាពគឺសាកល្បង ពិនិត្យការផ្ទេរ និងរៀន មិនមែនការចូលគណនីរៀងរាល់ថ្ងៃទេ។ កម្មវិធី authenticator ផ្ទាល់ខ្លួនលើទូរស័ព្ទរបស់អ្នកនៅតែជាកន្លែងត្រឹមត្រូវសម្រាប់អាថ៌កំបាំងស្រាប់។
របៀបដំណើរការ
អ្វីៗទាំងអស់កើតឡើងក្នុងឯកសារពីរដែលអ្នកអាចអានបាន៖ web-static/lib/totp/totp.ts និង two-fa-code-generator-client.tsx។ បិទភ្ជាប់អាថ៌កំបាំង Base32 ធម្មតា ហើយទំព័រផ្ទៀងផ្ទាត់វាតួអក្សរម្តងមួយៗ (validateBase32) ឬបិទភ្ជាប់ otpauth:// URI ហើយ parseOtpauthUri បំបែកចេញ issuer គណនី អាថ៌កំបាំង ក្បួនគណនា ចំនួនខ្ទង់ និងរយៈពេល — ដោយបដិសេធ HOTP URI ព្រោះប្រភេទផ្អែកលើលេខរាប់មិនត្រូវបានគាំទ្រ។ ជាមួយអាថ៌កំបាំងធម្មតា អ្នកអាចប្តូរ SHA-1, SHA-256 ឬ SHA-512 ខ្ទង់ ៦ ឬ ៨ និងបង្អួច ៣០ ឬ ៦០ វិនាទី ខណៈ URI ផ្តល់ប៉ារ៉ាម៉ែត្ររបស់វាផ្ទាល់។ រៀងរាល់មួយវិនាទី កម្មវិធីគណនា generateTotpFromSecret ឡើងវិញ៖ ពេលវេលា Unix បច្ចុប្បន្នត្រូវបានបែងចែកនឹងរយៈពេល ដើម្បីទទួលបានលេខរាប់ HMAC លើលេខរាប់នោះត្រូវបានចុះហត្ថលេខាដោយ crypto.subtle ដោយប្រើអាថ៌កំបាំងដែលបានបកស្រាយរបស់អ្នកជាកូនសោ ហើយជំហានកាត់តួលេខស្តង់ដារ (dynamic truncation) ជ្រើសរើសខ្ទង់។ ការបែងចែកនោះជាមូលហេតុដែលកូដផ្លាស់ប្តូរនៅគ្រប់គែមបង្អួច — ហើយជាមូលហេតុដែលម៉ោងឧបករណ៍ខុស បង្កើតកូដខុស។ អាថ៌កំបាំងមានតែក្នុងអង្គចងចាំរបស់ទំព័រប៉ុណ្ណោះ៖ ការផ្ទុកឡើងវិញ ឬបិទផ្ទាំង លុបវាចេញ ហើយវាមិនដែលត្រូវបានសរសេរទៅកន្លែងរក្សាទុក ឬផ្ញើក្នុងសំណើឡើយ។
ករណីប្រើប្រាស់
- ពិនិត្យថាកម្មវិធី authenticator ដែលទើបដំឡើង បង្កើតកូដដូចគ្នាទៅនឹងអាថ៌កំបាំងដែលសេវាទើបបង្ហាញ។
- ផ្ទេរ 2FA ទៅទូរស័ព្ទថ្មី៖ បញ្ជាក់ថាអាថ៌កំបាំងបម្រុងទុកនៅតែបង្កើតកូដត្រឹមត្រូវ មុនពេលលុបទូរស័ព្ទចាស់។
- បកស្រាយ otpauth:// URI ពីរូបភាព QR ដើម្បីឃើញ issuer គណនី និងប៉ារ៉ាម៉ែត្រដែលវាមាន មុនពេលនាំចូល។
- អានកូដពីអាថ៌កំបាំងសង្គ្រោះ នៅពេលទូរស័ព្ទដែលមាន authenticator ខូច បាត់ ឬកំពុងជួសជុល។
- អ្នកអភិវឌ្ឍន៍នៅកម្ពុជា ឬបរទេស ផ្ទៀងផ្ទាត់ថាការចុះឈ្មោះ TOTP របស់សេវា ចេញ otpauth:// URI ត្រឹមត្រូវ និងប៉ារ៉ាម៉ែត្រស្តង់ដារ។
- រៀនពីរបៀបដែលកូដផ្ទៀងផ្ទាត់ពីរជំហានដំណើរការពិតប្រាកដ ដោយមើលក្បួនគណនា ចំនួនខ្ទង់ និងរយៈពេល ប្តូរលទ្ធផល។
សំណួរដែលគេសួរញឹកញាប់
ហេតុអ្វីបានជាកូដផ្លាស់ប្តូររៀងរាល់ ៣០ វិនាទី?
TOTP ផ្អែកលើម៉ោង មិនមែនផ្អែកលើការភ្ជាប់ទេ។ ក្បួនគណនាបែងចែកពេលវេលា Unix បច្ចុប្បន្ននឹងរយៈពេល — ៣០ វិនាទីជាលំនាំដើម — ហើយដាក់លេខរាប់នោះជាមួយអាថ៌កំបាំងរបស់អ្នកទៅក្នុងហត្ថលេខា HMAC។ នៅពេលលេខរាប់ផ្លាស់ប្តូរ កូដផ្សេងចេញមក។ កូដដំណើរការដោយគ្មានអ៊ីនធឺណិត ដោយហេតុផលដូចគ្នា៖ គ្មានអ្វីត្រូវបានទាញទេ ម៉ោងឧបករណ៍របស់អ្នក និងអាថ៌កំបាំង គឺជាធាតុចូលតែពីរប៉ុណ្ណោះ។
កូដរបស់ខ្ញុំមិនត្រូវនឹងកម្មវិធី authenticator របស់ខ្ញុំ — មានបញ្ហាអ្វី?
មូលហេតុញឹកញាប់បំផុតគឺម៉ោងល្អែក (clock skew)៖ TOTP ប្រើម៉ោងឧបករណ៍ ដូច្នេះប្រសិនបើពេលវេលាកុំព្យូទ័ររបស់អ្នកខុសលើសមួយជំហាន អាថ៌កំបាំងដូចគ្នាបង្កើតកូដខុសជាងនៅលើទូរស័ព្ទរបស់អ្នក។ ធ្វើសមកាលកម្មម៉ោង ហើយកូដត្រូវគ្នាវិញ។ បន្ទាប់មក ពិនិត្យប៉ារ៉ាម៉ែត្រ — ក្បួនគណនា (SHA-1, SHA-256 ឬ SHA-512) ចំនួនខ្ទង់ (៦ ឬ ៨) និងរយៈពេល (៣០ ឬ ៦០) ត្រូវត្រូវនឹងអ្វីដែលសេវាចេញ ដែល URI ដែលបិទភ្ជាប់មានរួចហើយ។
តើមានសុវត្ថិភាពទេ ក្នុងការបិទភ្ជាប់អាថ៌កំបាំង TOTP ពិតប្រាកដទៅទំព័រនេះ?
សូមចាត់ទុកវាជាការសម្រេចចិត្តដែលមានផលវិបាក។ អាថ៌កំបាំងស្រាប់ដែលបិទភ្ជាប់ទៅគេហទំព័រណាមួយ — រួមទាំងគេហទំព័រនេះ — ត្រូវបានលាតត្រដាងចំពោះអ្វីដែលដំណើរការក្នុងផ្ទាំងកម្មវិធីរុករកនោះ និងអ្នកផ្សេងដែលប្រើឧបករណ៍ ដូច្នេះការប្រើប្រាស់ត្រឹមត្រូវគឺសាកល្បង ពិនិត្យការផ្ទេរ និងរៀន មិនមែនការផ្ទៀងផ្ទាត់ប្រចាំថ្ងៃទេ។ សូមទុកអាថ៌កំបាំងស្រាប់ក្នុងកម្មវិធី authenticator ផ្ទាល់ខ្លួន ហើយប្រសិនបើអាថ៌កំបាំងដែលអ្នកពឹងផ្អែកត្រូវបានបិទភ្ជាប់កន្លែងដែលមានការចែករំលែក ចាត់ទុកវាថាត្រូវបានលាតត្រដាង ហើយប្តូរវា។
តើកម្មវិធីនេះជាការជំនួសកម្មវិធី authenticator ដែរឬទេ?
ទេ។ វាជាឧបករណ៍អាន និងបកស្រាយអាថ៌កំបាំង និង URI — ភាពងាយស្រួលសម្រាប់ស្ថានភាពដែលបានរាប់ខាងលើ — មិនមែនជាកន្លែងរក្សាទុកលិខិតសម្គាល់ទេ។ គ្មានអ្វីត្រូវបានរក្សាទុក៖ ការផ្ទុកទំព័រឡើងវិញបាត់បង់អាថ៌កំបាំង គ្មានការរក្សាទុកដែលអ៊ិនគ្រីប គ្មានការបម្រុងទុក និងគ្មានការការពារដោយសោឧបករណ៍។ កម្មវិធី authenticator រក្សាទុកអាថ៌កំបាំងក្នុងកន្លែងរក្សាទុកដែលអ៊ិនគ្រីប នៅក្រោយអេក្រង់ចាក់សោរបស់ទូរស័ព្ទ ដែលគេហទំព័រមិនអាចផ្តល់បាន។
តើអាថ៌កំបាំងដែលខ្ញុំបិទភ្ជាប់ ចាកចេញពីកម្មវិធីរុករករបស់ខ្ញុំឬទេ?
ទេ។ ការបង្កើតដំណើរការលើ crypto.subtle ក្នុងទំព័រ ហើយអាថ៌កំបាំងមានតែក្នុងអង្គចងចាំរបស់ទំព័រប៉ុណ្ណោះ — អ្នកអាចបញ្ជាក់ដោយបើក developer tools របស់កម្មវិធីរុករក ត្រង់ផ្ទាំងបណ្តាញ (network tab) លើ "all" ហើយមើលខណៈពេលអ្នកបិទភ្ជាប់ និងបង្កើត៖ គ្មានសំណើណាមួយដឹកវាឡើយ។ ទំព័រកត់ត្រាព្រឹត្តិការណ៍ប្រើប្រាស់ឆៀងឆ្កាង ដូចជា "URI ត្រូវបានវិភាគ" ដែលមិនដែលមានអាថ៌កំបាំងខ្លួនវាឡើយ។
តើវាល issuer និងគណនីក្នុង URI ដែលបកស្រាយ មានន័យយ៉ាងណា?
ពួកវាជាស្លាកបង្ហាញដែលសេវាចេញបានដាក់ក្នុង URI — issuer គឺឈ្មោះសេវា (ឧទាហរណ៍ "Facebook") ហើយគណនីគឺជាអ្នកកំណត់អត្តសញ្ញាណរបស់អ្នកនៅទីនោះ។ ពួកវាជួយកម្មវិធី authenticator រៀបចំបញ្ជីធាតុ ប៉ុន្តែមិនប៉ះពាល់កូដទេ។ មានតែអាថ៌កំបាំង ក្បួនគណនា ចំនួនខ្ទង់ និងរយៈពេល ប៉ុណ្ណោះដែលប្តូរលេខដែលបង្កើត។
ហេតុអ្វីបានជាកម្មវិធីបដិសេធ URI ផ្អែកលើលេខរាប់ (HOTP)?
កម្មវិធីនេះអនុវត្តតែ TOTP ប៉ុណ្ណោះ។ otpauth://hotp URI កូដកម្មលេខរាប់ដែលត្រូវនៅសមកាលកម្មរវាងអ្នក និងសេវា — ក្បួនគណនាផ្សេង (RFC 4226) ជាមួយរបៀបបរាជ័យផ្សេងគ្នា — ដូច្នេះជំនួសឲ្យការគាំទ្រពាក់កណ្តាល ឧបករណ៍វិភាគបដិសេធវាយ៉ាងច្បាស់។ សេវាអតិថិជនស្ទើរតែទាំងអស់ចេញ TOTP URI ដូច្នេះរឿងនេះកម្រកើតឡើងណាស់។
តើទំព័រនេះភ្ជាប់ទៅធនាគារកម្ពុជា ឬ Bakong ដែរឬទេ?
ទេ។ ទំព័រនេះមិនទាក់ទងទៅ ABA, Bakong ឬធនាគារណាមួយទេ ហើយមិនអាចអនុម័តការចូលគណនី ឬការទូទាត់បានឡើយ។ វាគ្រាន់តែគណនា TOTP ពីអាថ៌កំបាំង ឬ otpauth URI ដែលអ្នកផ្ដល់។ វាអាចប្រើជាមួយគណនីបាន លុះត្រាតែសេវានោះផ្ដល់ព័ត៌មាន TOTP ជាក់លាក់។ អនុវត្តតាមការណែនាំចុះឈ្មោះរបស់អ្នកផ្ដល់ ហើយរក្សាអាថ៌កំបាំងធនាគារពិតក្នុងកម្មវិធី authenticator ដែលបានអនុម័ត។
ទិន្នន័យ និងភាពជាក់លាក់
TOTP ត្រូវបានកំណត់ដោយ IETF RFC 6238 លើមូលដ្ឋានក្បួនគណនា HOTP ក្នុង RFC 4226 ហើយទម្រង់ otpauth:// URI គឺជាសំខាន់ de-facto របស់ Google Authenticator key-URI។ RFC 6238 ផ្នែក ៦ ក៏ជាមូលដ្ឋានសម្រាប់កំណត់សម្គាល់ម៉ោងល្អែក — វាកំណត់ការធ្វើសមកាលកម្មឡើងវិញ ព្រោះម៉ោងឧបករណ៍អតិថិជនល្អែកជានិច្ច។ ការគណនាប្រើ crypto.subtle របស់កម្មវិធីរុករក គ្មានទិន្នន័យខាងក្រៅត្រូវបានទាញ ដូច្នេះគ្មានអ្វីត្រូវធ្វើបច្ចុប្បន្នភាពឡើយ។
ប្រភពព័ត៌មាន
មាតិកាត្រូវបានពិនិត្យឡើងវិញចុងក្រោយ ថ្ងៃទី 21 តុលា 2026