acs ACOSJ-G កាត Java
ការណែនាំ
អតិថិជនជាទីគោរព!
សូមអរគុណសម្រាប់ការទិញផលិតផលរបស់យើង។ សូមអានការណែនាំខាងក្រោមដោយប្រុងប្រយ័ត្នមុនពេលប្រើលើកដំបូង ហើយរក្សាទុកសៀវភៅណែនាំអ្នកប្រើប្រាស់នេះសម្រាប់ជាឯកសារយោងនាពេលអនាគត។ យកចិត្តទុកដាក់ជាពិសេសចំពោះការណែនាំអំពីសុវត្ថិភាព។ ប្រសិនបើអ្នកមានចម្ងល់ ឬមតិយោបល់អំពីឧបករណ៍នេះ សូមទាក់ទងទៅកាន់បន្ទាត់អតិថិជន។
ជាងview
ACOSJ គឺជាប្រព័ន្ធប្រតិបត្តិការកាតឆ្លាតវៃដែលបង្កើតឡើងដោយ Advanced Card Systems Ltd. វាដំណើរការដោយផ្អែកលើ JAVA Card Virtual Machine និងអនុលោមតាម GlobalPlatform Card Specification Version 2.2.1, JAVA Card Virtual Machine និងអនុលោមតាម GlobalPlatform Card Specification Version 2.2.1, JAVA Card Specification Version 3.0.4 និង Mapping Guidelines 1.0.1 លើមុខងារ និងការកំណត់របស់វា។ គោលបំណងនៃឯកសារនេះគឺដើម្បីពិពណ៌នាលម្អិតអំពីលក្ខណៈពិសេស និងមុខងារនៃប្រព័ន្ធប្រតិបត្តិការកាតឆ្លាតវៃ ACOSJ ។
កំណែ ACOSJ-G
| កំណែ | ទិន្នន័យដែលបានចេញផ្សាយ | ការកែប្រែ |
| ACOSJ v1.01 | ខែមិថុនា ឆ្នាំ 2015 | · 40KB EEPROM
· វ៉ុលប្រតិបត្តិការtage: 2.7V ទៅ 5.5V |
|
ACOSJ v2.00 |
ឧសភា 2018 |
· 95KB EEPROM
· វ៉ុលប្រតិបត្តិការtage: 2.1V ទៅ 5.5V · ការផ្លាស់ប្តូរអាសយដ្ឋានអង្គចងចាំក្នុងការកំណត់រចនាសម្ព័ន្ធ |
|
ACOSJ v2.04 |
មេសា |
· 95KB EEPROM
· វ៉ុលប្រតិបត្តិការtage: 2.1V ទៅ 5.5V · ការផ្លាស់ប្តូរអាសយដ្ឋានអង្គចងចាំក្នុងការកំណត់រចនាសម្ព័ន្ធ ·ការកែលម្អលក្ខណៈពិសេស |
និមិត្តសញ្ញា និងអក្សរកាត់
| អក្សរកាត់ | ការពិពណ៌នា |
| AES | ស្តង់ដារអ៊ិនគ្រីបកម្រិតខ្ពស់ |
| ជំនួយ | កម្មវិធីកំណត់អត្តសញ្ញាណកម្មវិធី |
| APDU | ឯកតាទិន្នន័យពិធីការកម្មវិធី |
| API | ចំណុចប្រទាក់កម្មវិធីកម្មវិធី |
| ASCII | លេខកូដស្តង់ដារអាមេរិកសម្រាប់ការផ្លាស់ប្តូរព័ត៌មាន |
| ATR | ចម្លើយទៅនឹងការកំណត់ឡើងវិញ |
| ATQ | ចម្លើយទៅនឹងសំណើ (សម្រាប់កាតគ្មានទំនាក់ទំនង) |
| BCD | លេខគោលពីរខ្ទង់ទសភាគ |
| ប៊ឺ | ច្បាប់នៃការអ៊ិនកូដមូលដ្ឋាន |
| ឆ្មា | កញ្ចប់ឧបករណ៍កម្មវិធីកាត៖ ឬទម្រង់ការអនុញ្ញាតការគ្រីបតូ |
| ស៊ី.ប៊ី.ស៊ី | ខ្សែសង្វាក់ Cipher Block |
| CCT | គ្រប់គ្រងគំរូឯកសារយោងសម្រាប់ Cryptographic Checksum |
| CIN | លេខកាតរូបភាព/លេខអត្តសញ្ញាណប័ណ្ណ |
| សិល្បៈខ្មែរអមតៈ | ថ្នាក់បៃនៃសារបញ្ជា |
| CRT | គ្រប់គ្រងគំរូឯកសារយោង |
| CT | គ្រប់គ្រងគំរូឯកសារយោងសម្រាប់ការសម្ងាត់ |
| CVM | វិធីសាស្ត្រផ្ទៀងផ្ទាត់ម្ចាស់ប័ណ្ណ |
| DAP | លំនាំការផ្ទៀងផ្ទាត់ទិន្នន័យ |
| DEK | សោអ៊ិនគ្រីបទិន្នន័យ |
| DER | ច្បាប់បំប្លែងកូដដោយឡែក |
| DES | ស្តង់ដារអ៊ិនគ្រីបទិន្នន័យ |
| DST | គ្រប់គ្រងគំរូឯកសារយោងសម្រាប់ហត្ថលេខាឌីជីថល |
| ECB | សៀវភៅលេខកូដអេឡិចត្រូនិច |
| EMV | Europay, Mastercard និង VISA៖ ប្រើដើម្បីយោងទៅ ICC Specifications សម្រាប់
ប្រព័ន្ធទូទាត់ |
| អេន។ ស៊ី។ ស៊ី | ការអ៊ិនគ្រីប |
| FCI | File ព័ត៌មានត្រួតពិនិត្យ |
| HEX | លេខគោលដប់ប្រាំមួយ។ |
| HMAC | លេខកូដផ្ទៀងផ្ទាត់សារ Keyed-Hash |
| អាយ.ស៊ី.ស៊ី | កាតសៀគ្វីរួមបញ្ចូលគ្នា |
| ICV | វ៉ិចទ័រខ្សែសង្វាក់ដំបូង |
| IIN | លេខអត្តសញ្ញាណអ្នកចេញ |
| INS | បៃការណែនាំនៃសារបញ្ជា |
| អាយអេសអូ | អង្គការអន្តរជាតិសម្រាប់ស្តង់ដារនីយកម្ម |
| Lc | ប្រវែងពិតប្រាកដនៃទិន្នន័យនៅក្នុងពាក្យបញ្ជា case 3 ឬ case 4 |
| Le | រយៈពេលអតិបរមានៃទិន្នន័យដែលរំពឹងទុកក្នុងការឆ្លើយតបទៅនឹងករណីទី 2 ឬករណីទី 4
បញ្ជា |
| LV | តម្លៃប្រវែង |
| MAC | លេខកូដផ្ទៀងផ្ទាត់សារ |
| មែល | MULTOS ភាសាដែលអាចប្រតិបត្តិបាន។ សំណុំការណែនាំរបស់ MULTOSTM
បរិស្ថានពេលដំណើរការ |
| OID | ឧបករណ៍កំណត់អត្តសញ្ញាណវត្ថុ |
| P1 | ប៉ារ៉ាម៉ែត្រត្រួតពិនិត្យយោង 1 |
| P2 | ប៉ារ៉ាម៉ែត្រត្រួតពិនិត្យយោង 2 |
| លេខសម្ងាត់ | លេខអត្តសញ្ញាណផ្ទាល់ខ្លួន |
| PKI | ហេដ្ឋារចនាសម្ព័ន្ធគន្លឹះសាធារណៈ |
| RAM | អង្គចងចាំចូលប្រើដោយចៃដន្យ |
| ស។ ស។ អ | បម្រុងទុកសម្រាប់ការប្រើប្រាស់នាពេលអនាគត |
| RID | អត្តសញ្ញាណអ្នកផ្តល់កម្មវិធីដែលបានចុះឈ្មោះ |
| រ៉ូម | អង្គចងចាំបានតែអាន |
| RSA | ការចងចាំតែមួយគត់ |
| SCP | ពិធីការប៉ុស្តិ៍សុវត្ថិភាព៖ ឬ (ETSI) វេទិកាកាតឆ្លាតវៃ |
| SW | ពាក្យស្ថានភាព |
| SW1 | ស្ថានភាពពាក្យមួយ។ |
| SW2 | ស្ថានភាពពាក្យពីរ |
| TLV | Tag តម្លៃប្រវែង |
| TP | ចំណុចជឿទុកចិត្ត |
| “xx” | តម្លៃលេខគោលដប់ប្រាំមួយត្រូវបានបង្ហាញជាលេខគោលដប់ប្រាំមួយរវាងលេខតែមួយ
សញ្ញាសម្រង់។ |
| “X” | តម្លៃនៅក្នុងក្រឡានៃតារាងដែលគោលបំណងត្រូវបានពិពណ៌នានៅក្នុង "អត្ថន័យ"
ជួរឈរនៃតារាង។ |
| "-" | តម្លៃ (0 ឬ 1) ក្នុងក្រឡានៃតារាងដែលមិនប៉ះពាល់ដល់ "អត្ថន័យ" ដែលបានផ្តល់ឱ្យ
សម្រាប់ជួរនៃតារាងនោះ។ |
ការបញ្ជាក់កាត
លក្ខណៈបច្ចេកទេសអគ្គិសនី
| វ៉ុលប្រតិបត្តិការtage (ACOSJ-G v1.01)៖ | វ៉ុលផ្គត់ផ្គង់ពី 2.7V ដល់ 5.5Vtages |
| វ៉ុលប្រតិបត្តិការtage (ACOSJ-G v2.04)៖ | វ៉ុលផ្គត់ផ្គង់ពី 2.1V ដល់ 5.5Vtages |
| ប្រេកង់នាឡិកាខាងក្រៅអតិបរមា៖ | 10 MHz |
| ប្រេកង់នាឡិកា CPU អតិបរមា៖ | 28 MHz |
| ការការពារ ESD | ធំជាង 5 kV (HBM) |
លក្ខណៈបច្ចេកទេសបរិស្ថាន
សីតុណ្ហភាពប្រតិបត្តិការ: -25 ° C ទៅ +85 ° C
ពិធីសារទំនាក់ទំនង
ពិធីការ T=CL ដែលមាន baud រហូតដល់ 848 kbps
ការចងចាំ
| សមត្ថភាព៖ | 95 KB (ACOSJ-G 2.04), 40 KB (ACOSJ-G
1.01) |
| ការស៊ូទ្រាំ EEPROM៖ | 500,000 វដ្តលុប/សរសេរ (25°C) |
| ការរក្សាទុកទិន្នន័យ៖ | 30 ឆ្នាំ (25°C) |
សមត្ថភាព៖ 95 KB (ACOSJ-G 2.04), 40 KB (ACOSJ-G 1.01)
មុខងារសម្ងាត់
| DES៖ | 2K3DES,3K3DES (ECB និង CBC) |
| AES៖ | 128/192/256 ប៊ីត (ECB និង CBC) |
| RSA៖ | 768 ទៅ 2048 ប៊ីត |
| ECC៖ | Modulus 112/128/160/192/224/256/384
ប៊ីត |
| ហាស៖ | SHA1, SHA256, SHA384, SHA512 |
| គ្រាប់: | 128 ប៊ីត |
ការអនុលោមតាមបទដ្ឋាន
- ការអនុលោមតាម ISO 7816 ផ្នែកទី 4
- ការអនុលោមតាម ISO 14443 (ប្រភេទ A និង B)
- ការអនុលោមតាមការកំណត់អត្តសញ្ញាណកាត JAVA កំណែ 3.0.4
- ការអនុលោមតាមលក្ខណៈជាក់លាក់នៃវេទិកាសកលកំណែ 2.2.1
- ការអនុលោមតាមគោលការណ៍ណែនាំនៃការធ្វើផែនទី 1.0.1
ចម្លើយដែលត្រូវជ្រើសរើស (ATS, Contactless Card)
បន្ទាប់ពីទទួលបានពាក្យបញ្ជាស្នើសុំចម្លើយដើម្បីជ្រើសរើស (RATS) ពីឧបករណ៍អានកាត កាតបញ្ជូន និងចម្លើយទៅជ្រើសរើស (ATS) ដោយអនុលោមតាម ISO 14443 ផ្នែកទី 4 ។
តារាងខាងក្រោមបង្ហាញពី ATS លំនាំដើម៖
| ប៉ារ៉ាម៉ែត្រ | ATS | ការពិពណ៌នា |
| TL | ០ អេ | ប្រវែង |
| T0 | ១៧០០០ ម៉ោង។ | បៃផ្លូវការ… លេខកូដ Y(1) និង FSCI |
| TA1 | ១៧០០០ ម៉ោង។ | ចំណុចប្រទាក់បៃ… លេខកូដ DS និង DR |
| TB1 | ១៧០០០ ម៉ោង។ | លេខកូដ FWI និង SFGI |
| TC1 | ១៧០០០ ម៉ោង។ | ជម្រើសពិធីការលេខកូដ |
| T1 | ១៧០០០ ម៉ោង។ | ចង្អុលបង្ហាញ "A" |
| T2 | ១៧០០០ ម៉ោង។ | ចង្អុលបង្ហាញ "C" |
| T3 | ០ ហ្វ | ចង្អុលបង្ហាញ "O" |
| T4 | ១៧០០០ ម៉ោង។ | ចង្អុលបង្ហាញ "S" |
| T5 | 4 អា | ចង្អុលបង្ហាញ "J" |
| T6 | ១៧០០០ ម៉ោង។ | ចង្អុលបង្ហាញ "v" |
|
T7 ~ T៦ |
31h 30h 31h ឬ
៤២៨h ៥២០h ៥២៥h |
ចង្អុលបង្ហាញ "101" ឬចង្អុលបង្ហាញ "204" |
រដ្ឋនៃវដ្តជីវិតកាត
ACOSJ មានកាតចំនួនប្រាំ៖ OP_READY, INTILIZED, SECURED, CARD_LOCKED និង TEDMINATED ។ រូបខាងក្រោមបង្ហាញពីការផ្លាស់ប្តូរស្ថានភាពវដ្តជីវិតកាត៖
OP_READY
ស្ថានភាពនេះបង្ហាញថាបរិយាកាសពេលដំណើរការនឹងមាន ហើយដែនសុវត្ថិភាពអ្នកចេញ ដែលដើរតួជាកម្មវិធីដែលបានជ្រើសរើស នឹងត្រៀមខ្លួនជាស្រេចក្នុងការទទួល ប្រតិបត្តិ និងឆ្លើយតបទៅនឹងពាក្យបញ្ជា APDU ។ មុខងារខាងក្រោមនឹងមានវត្តមាននៅពេលដែលកាតស្ថិតនៅក្នុងស្ថានភាព OP_READY៖
- បរិយាកាសពេលដំណើរការត្រូវត្រៀមរួចរាល់សម្រាប់ការប្រតិបត្តិ។
- OPEN នឹងរួចរាល់សម្រាប់ការប្រតិបត្តិ។
- ដែនសុវត្ថិភាពអ្នកចេញត្រូវជាកម្មវិធីដែលបានជ្រើសរើសដោយប្រយោលសម្រាប់ចំណុចប្រទាក់កាតទាំងអស់។
- បន្ទុកដែលអាចប្រតិបត្តិបាន។ Files ដែលត្រូវបានរួមបញ្ចូលនៅក្នុងអង្គចងចាំជាប់លាប់ដែលមិនអាចផ្លាស់ប្តូរបាន នឹងត្រូវបានចុះឈ្មោះនៅក្នុង GlobalPlatform Registry ។
- សោដំបូងនឹងមាននៅក្នុងដែនសុវត្ថិភាពអ្នកចេញ។
- កាតត្រូវមានសមត្ថភាពផ្លាស់ប្តូរខ្លឹមសារកាត ការផ្ទុកបន្ទុក Files ដែលមានកម្មវិធីមិនទាន់មាននៅក្នុងកាតអាចកើតឡើង។
- ការដំឡើងពី executable Load Files, នៃកម្មវិធី aby អាចកើតឡើង។
- លើសពីនេះ ប្រសិនបើព័ត៌មានផ្ទាល់ខ្លួនណាមួយអាចរកបាននៅ stage, កម្មវិធីអាចមានលក្ខណៈផ្ទាល់ខ្លួន។
- ស្ថានភាព OP_READY អាចត្រូវបានប្រើប្រាស់ដោយ off-card ដើម្បីអនុវត្តសកម្មភាពដូចខាងក្រោម៖
- ដែនសុវត្ថិភាពបន្ថែមអាចត្រូវបានផ្ទុក និង/ឬដំឡើង។
- សោសុវត្ថិភាពដែនអាចត្រូវបានបញ្ចូល ដើម្បីរក្សាការបំបែកសោគ្រីបពីសោដែនសុវត្ថិភាពអ្នកចេញ។
បានចាប់ផ្តើម
រដ្ឋនេះគឺជារដ្ឋផលិតកាតរដ្ឋបាល។ ការផ្លាស់ប្តូររដ្ឋពី OP_READY ទៅ INITIALIZED គឺមិនអាចត្រឡប់វិញបានទេ។ មុខងាររបស់វាលើសពីវិសាលភាពនៃ Specification នេះ។ ស្ថានភាពនេះអាចត្រូវបានប្រើដើម្បីបង្ហាញថាទិន្នន័យដំបូងមួយចំនួនត្រូវបានបញ្ចូល (ឧទាហរណ៍ សោដែនសុវត្ថិភាពអ្នកចេញប័ណ្ណ និង/ឬទិន្នន័យ) ប៉ុន្តែកាតមិនទាន់រួចរាល់ក្នុងការចេញឱ្យម្ចាស់ប័ណ្ណទេ។
ធានា
រដ្ឋនេះគឺជាប័ណ្ណប្រតិបត្តិការដែលបានបម្រុងទុករដ្ឋវដ្តជីវិតនៅក្នុងការចេញផ្សាយក្រោយការចេញ។ រដ្ឋនេះអាចត្រូវបានប្រើប្រាស់ដោយ Security Domains និង Applications ដើម្បីអនុវត្តគោលនយោបាយសុវត្ថិភាពរៀងៗខ្លួន។ ការផ្លាស់ប្តូររដ្ឋពី INITIALIZED ទៅ SECURED គឺមិនអាចត្រឡប់វិញបានទេ។ ស្ថានភាពសុវត្ថិភាពគួរតែត្រូវបានប្រើដើម្បីចង្អុលបង្ហាញទៅអង្គភាពក្រៅកាតថាដែនសុវត្ថិភាពអ្នកចេញមានសោចាំបាច់ទាំងអស់ និងធាតុសុវត្ថិភាពសម្រាប់មុខងារពេញលេញ។
កាត_ចាក់សោ
ស្ថានភាពវដ្តជីវិតរបស់កាត CARD_LOCKED មានវត្តមានដើម្បីផ្តល់នូវសមត្ថភាពក្នុងការបិទការជ្រើសរើសដែនសុវត្ថិភាព និងកម្មវិធី។ ការផ្លាស់ប្តូរស្ថានភាពនៃវដ្តជីវិតពី SECURED ទៅ CARD_LOCKED គឺអាចត្រឡប់វិញបាន។
ការកំណត់កាតទៅជារដ្ឋ CARD_LOCKED មានន័យថាកាតនឹងអនុញ្ញាតឱ្យជ្រើសរើសកម្មវិធីដែលមានសិទ្ធិកម្មវិធីចុងក្រោយប៉ុណ្ណោះ។ ការផ្លាស់ប្តូរខ្លឹមសារកាត រួមទាំងប្រភេទនៃការគ្រប់គ្រងទិន្នន័យណាមួយ (ជាពិសេសសោសុវត្ថិភាពដែន និងទិន្នន័យ) មិនត្រូវបានអនុញ្ញាតក្នុងស្ថានភាពនេះទេ។ ទាំង OPEN ឬដែនសុវត្ថិភាពដែលមានសិទ្ធិចាក់សោកាត ឬកម្មវិធីដែលមានសិទ្ធិចាក់សោកាតអាចចាប់ផ្តើមការផ្លាស់ប្តូរពីរដ្ឋ SECURED ទៅរដ្ឋ CARD_LOCKED ។
បានបញ្ចប់
រដ្ឋនេះជាសញ្ញានៃការបញ្ចប់នៃវដ្តជីវិត និងកាត។ ការផ្លាស់ប្តូររដ្ឋពីរដ្ឋផ្សេងទៀតទៅ TERMINATED គឺមិនអាចត្រឡប់វិញបានទេ។ រដ្ឋដែលបានបញ្ចប់នឹងត្រូវប្រើដើម្បីបិទមុខងារកាតទាំងអស់ជាអចិន្ត្រៃយ៍ ទាក់ទងនឹងការគ្រប់គ្រងមាតិកាកាត និងការផ្លាស់ប្តូរវដ្តជីវិតណាមួយ។ ស្ថានភាពកាតនេះមានគោលបំណងជាយន្តការសម្រាប់កម្មវិធីមួយដើម្បី "បំផ្លាញ" កាតដោយហេតុផលដូចជាការរកឃើញនៃការគំរាមកំហែងផ្នែកសុវត្ថិភាពធ្ងន់ធ្ងរឬការផុតកំណត់នៃកាត។ ប្រសិនបើ Security Domain មានសិទ្ធិដាក់ពាក្យចុងក្រោយ មានតែពាក្យបញ្ជា GET DATA ប៉ុណ្ណោះដែលត្រូវបានដំណើរការ នោះរាល់ពាក្យបញ្ជាផ្សេងទៀតដែលបានកំណត់នៅក្នុងការបញ្ជាក់នេះនឹងត្រូវបិទ ហើយនឹងត្រឡប់កំហុសមួយ។ លេខសម្គាល់កម្មវិធីមានសិទ្ធិកម្មវិធីចុងក្រោយ ដំណើរការពាក្យបញ្ជារបស់ខ្លួនគឺស្ថិតនៅក្រោមគោលការណ៍អ្នកចេញ។ OPEN ដោយខ្លួនវាផ្ទាល់ ឬដែនសុវត្ថិភាពដែលមានសិទ្ធិបញ្ចប់កាត ឬកម្មវិធីដែលមានសិទ្ធិបញ្ចប់កាត អាចផ្តួចផ្តើមការផ្លាស់ប្តូរពីរដ្ឋណាមួយពីមុនទៅរដ្ឋដែលបានបញ្ចប់។
ស្ថាបត្យកម្មកាត
ឯកសារយោងពាក្យបញ្ជា GP APDU
ផ្នែកនេះរៀបរាប់លម្អិតអំពីពាក្យបញ្ជា GlobalPlatform APDU ដែលអាចត្រូវបានអនុវត្ត។ ពាក្យបញ្ជាត្រូវបានរាយបញ្ជីតាមអក្ខរក្រម។ សង្ខេបពាក្យបញ្ជា APDU ដែលត្រូវបានគាំទ្រដោយដែនសុវត្ថិភាពអ្នកចេញ និងតម្រូវការសម្រាប់ការគាំទ្រពាក្យបញ្ជា APDU ទាំងនេះដោយដែនសុវត្ថិភាពផ្សេងទៀត។ នៅពេលដែលបណ្តាញឡូជីខលត្រូវបានគាំទ្រ ពាក្យបញ្ជា MANAGE CHANNEL ត្រូវបានដំណើរការតែដោយ OPEN ហើយគ្មានការគាំទ្រដែនសុវត្ថិភាពត្រូវបានទាមទារសម្រាប់ពាក្យបញ្ជានេះទេ។
| បញ្ជា | OP_READY | បានចាប់ផ្តើម | សុវត្ថិភាព | CARD_LOCKED | បានបញ្ចប់ | ||||||||
| AM
SD |
DM
SD |
SD | AM
SD |
DM
SD |
SD | AM
SD |
DM
SD |
SD | FASD | SD | FASD | SD | |
| លុប
បន្ទុកដែលអាចប្រតិបត្តិបាន។ File |
|||||||||||||
| លុប
បន្ទុកដែលអាចប្រតិបត្តិបាន។ File និងកម្មវិធីដែលពាក់ព័ន្ធ |
|||||||||||||
| លុប
ការដាក់ពាក្យ |
|||||||||||||
| លុបសោ | |||||||||||||
| ទទួលបានទិន្នន័យ | |||||||||||||
| ទទួលបានស្ថានភាព | |||||||||||||
| ដំឡើង [សម្រាប់
ផ្ទុក] |
|||||||||||||
| ដំឡើង [សម្រាប់
ដំឡើង] |
|||||||||||||
| ដំឡើង [សម្រាប់
ផ្ទុក ដំឡើង និងធ្វើឱ្យអាចជ្រើសរើសបាន] |
|||||||||||||
| ដំឡើង [សម្រាប់
ដំឡើងនិងធ្វើឱ្យអាចជ្រើសរើសបាន] |
|||||||||||||
| ដំឡើង [សម្រាប់
ធ្វើឱ្យអាចជ្រើសរើសបាន] |
|||||||||||||
| ដំឡើង [សម្រាប់
បត្យាប័ន] |
|||||||||||||
| ដំឡើង [សម្រាប់
ការធ្វើបច្ចុប្បន្នភាពបញ្ជីឈ្មោះ] |
|||||||||||||
| ដំឡើង [សម្រាប់
ការកំណត់ផ្ទាល់ខ្លួន] |
|||||||||||||
| ផ្ទុក | |||||||||||||
| ដាក់គន្លឹះ | |||||||||||||
| ជ្រើសរើស | |||||||||||||
| កំណត់ស្ថានភាព | |||||||||||||
| រក្សាទុកទិន្នន័យ | |||||||||||||
| AM SD | ដែនសុវត្ថិភាពដែលមានការអនុញ្ញាត
សិទ្ធិគ្រប់គ្រង។ |
| DM SD | ដែនសុវត្ថិភាពជាមួយប្រតិភូ
សិទ្ធិគ្រប់គ្រង។ |
| FA SD | ដែនសុវត្ថិភាពជាមួយនឹងកម្មវិធីចុងក្រោយ
ឯកសិទ្ធិ។ |
| SD | ដែនសុវត្ថិភាពផ្សេងទៀត។ |
| ត្រូវការការគាំទ្រ។ | |
| ក្រឡាទទេ | គាំទ្រស្រេចចិត្ត។ |
| ក្រឡាពណ៌ប្រផេះ | ការគាំទ្រត្រូវបានហាមឃាត់។ |
| បញ្ជា | សុវត្ថិភាពអប្បបរមា |
| លុប | សុវត្ថិភាពការចាប់ផ្តើមឆានែលឬឌីជីថល
ការផ្ទៀងផ្ទាត់ហត្ថលេខា |
| ទទួលបានទិន្នន័យ | គ្មាន |
| ទទួលបានស្ថានភាព | ការចាប់ផ្តើមឆានែលសុវត្ថិភាព |
| ដំឡើង | សុវត្ថិភាពការចាប់ផ្តើមឆានែលឬឌីជីថល
ការផ្ទៀងផ្ទាត់ហត្ថលេខា |
| ផ្ទុក | សុវត្ថិភាពការចាប់ផ្តើមឆានែលឬឌីជីថល
ការផ្ទៀងផ្ទាត់ហត្ថលេខា |
| គ្រប់គ្រងឆានែល | មិនអាចអនុវត្តបាន។ |
| ដាក់គន្លឹះ | ការចាប់ផ្តើមឆានែលសុវត្ថិភាព |
| ជ្រើសរើស | មិនអាចអនុវត្តបាន។ |
| កំណត់ស្ថានភាព | ការចាប់ផ្តើមឆានែលសុវត្ថិភាព |
| រក្សាទុកទិន្នន័យ | ការចាប់ផ្តើមឆានែលសុវត្ថិភាព |
ច្បាប់ទូទៅនៃការសរសេរកូដ
សូមមើលសៀវភៅណែនាំឯកសារយោង ACOSJ ។
លុបពាក្យបញ្ជា
ពាក្យបញ្ជា DELETE ត្រូវបានប្រើដើម្បីលុបវត្ថុដែលអាចកំណត់អត្តសញ្ញាណបានតែមួយគត់ ដូចជាការផ្ទុកដែលអាចប្រតិបត្តិបាន Fileកម្មវិធីមួយ និងបន្ទុកដែលអាចប្រតិបត្តិបាន។ File និងកម្មវិធីដែលពាក់ព័ន្ធ ឬសោ។ ដើម្បីលុប និងវត្ថុ វត្ថុគួរតែអាចកំណត់អត្តសញ្ញាណបានដោយកម្មវិធីដែលបានជ្រើសរើស។
ទទួលពាក្យបញ្ជាទិន្នន័យ
ពាក្យបញ្ជា GET DATA ត្រូវបានប្រើដើម្បីទាញយកវត្ថុទិន្នន័យតែមួយ ដែលអាចត្រូវបានសាងសង់ ឬសំណុំនៃវត្ថុទិន្នន័យ។ ប៉ារ៉ាម៉ែត្រត្រួតពិនិត្យយោង P1 និង P2 កូដត្រូវបានប្រើដើម្បីកំណត់វត្ថុទិន្នន័យជាក់លាក់ tag. វត្ថុទិន្នន័យអាចមានព័ត៌មានទាក់ទងនឹងសោ។
ទទួលបានពាក្យបញ្ជាស្ថានភាព
ពាក្យបញ្ជា GET STATUS ត្រូវបានប្រើដើម្បីទាញយកដែនសុវត្ថិភាពអ្នកចេញ ការផ្ទុកដែលអាចប្រតិបត្តិបាន Fileម៉ូឌុលដែលអាចប្រតិបត្តិបាន កម្មវិធី ឬព័ត៌មានស្ថានភាពវដ្តជីវិតដែនសុវត្ថិភាព យោងទៅតាមលក្ខណៈវិនិច្ឆ័យដែលបានផ្តល់ឲ្យ។
ដំឡើងពាក្យបញ្ជា
ពាក្យបញ្ជា INSTALL ត្រូវបានចេញទៅកាន់ Security Domain ដើម្បីចាប់ផ្តើម ឬអនុវត្តជំហានផ្សេងៗដែលត្រូវការសម្រាប់ការគ្រប់គ្រងមាតិកាកាត។
ផ្ទុក បញ្ជា
ផ្នែកនេះកំណត់រចនាសម្ព័ន្ធនៃបន្ទុក File បញ្ជូនក្នុងវាលទិន្នន័យពាក្យបញ្ជា LOAD សម្រាប់ផ្ទុកបន្ទុក File. ការគ្រប់គ្រងខាងក្នុងរបស់ ICC ឬការផ្ទុកបន្ទុក File គឺហួសពីវិសាលភាពនៃការកំណត់នេះ។
ពាក្យបញ្ជា LOAD ច្រើនអាចត្រូវបានប្រើដើម្បីផ្ទេរបន្ទុក File ទៅកាត។ បន្ទុក File ត្រូវបានបែងចែកទៅជាសមាសធាតុតូចៗសម្រាប់ការបញ្ជូន។ ពាក្យបញ្ជា LOAD នីមួយៗត្រូវដាក់លេខចាប់ពីម៉ោង 00 ម៉ោង។ លេខពាក្យបញ្ជា LOAD ត្រូវធ្វើតាមលំដាប់លំដោយយ៉ាងតឹងរ៉ឹង និងបង្កើនដោយមួយ។ កាតនឹងត្រូវបានជូនដំណឹងអំពីប្លុកចុងក្រោយនៃការផ្ទុក File. បន្ទាប់ពីទទួលបានប្លុកចុងក្រោយនៃការផ្ទុក Fileកាតនឹងដំណើរការដំណើរការខាងក្នុងដែលចាំបាច់សម្រាប់ការផ្ទុក File និងដំណើរការបន្ថែមណាមួយដែលបានកំណត់នៅក្នុងពាក្យបញ្ជា INSTALL [សម្រាប់ផ្ទុក] ដែលមុនពាក្យបញ្ជា LOAD ។
គ្រប់គ្រងពាក្យបញ្ជាឆានែល
ពាក្យបញ្ជា MANAGE CHANNEL ត្រូវបានដំណើរការដោយការបើកនៅលើសន្លឹកបៀដែលដឹងពីឆានែលឡូជីខល។ វាត្រូវបានប្រើដើម្បីបើក និងបិទឆានែលឡូជីខលបន្ថែម។ ឆានែលឡូជីខលមូលដ្ឋាន (លេខឆានែលសូន្យ) មិនអាចបិទបានទេ។
បញ្ចូលពាក្យបញ្ជា
ពាក្យបញ្ជា PUT KEY ត្រូវបានប្រើដើម្បី៖
- ជំនួសសោដែលមានស្រាប់ដោយប្រើសោថ្មី៖ សោថ្មីមានលេខកំណែសោដូចគ្នា ឬខុសគ្នា ប៉ុន្តែលេខសម្គាល់សោដូចគ្នាដូចនឹងសោដែលត្រូវជំនួស។
- ជំនួសសោដែលមានស្រាប់ជាច្រើនដោយគ្រាប់ចុចថ្មី៖ សោថ្មីមានលេខកំណែសោដូចគ្នា ឬខុសគ្នា (ដូចគ្នាបេះបិទសម្រាប់សោថ្មីទាំងអស់) ប៉ុន្តែលេខសម្គាល់សោដូចគ្នាទៅនឹងសោដែលកំពុងត្រូវបានជំនួស។
- បន្ថែមសោថ្មីតែមួយ៖ សោថ្មីមានបន្សំផ្សេងគ្នា លេខសម្គាល់សោ/លេខកំណែសោរ ជាងសោដែលមានស្រាប់។
- បន្ថែមសោថ្មីជាច្រើន៖ គ្រាប់ចុចថ្មីមានបន្សំផ្សេងគ្នានៃលេខសម្គាល់សោ/លេខកំណែសោរ (ដូចគ្នាបេះបិទទៅនឹងសោថ្មីទាំងអស់) ជាងសោដែលមានស្រាប់។
នៅពេលដែលប្រតិបត្តិការគ្រប់គ្រងសោទាមទារពាក្យបញ្ជា PUT KEY ច្រើន ការដាក់ច្រវាក់នៃពាក្យបញ្ជា PUT KEY ច្រើនត្រូវបានណែនាំ ដើម្បីធានាបាននូវភាពត្រឹមត្រូវនៃប្រតិបត្តិការ។
នៅក្នុងកំណែនៃការបញ្ជាក់នេះ តម្លៃសាធារណៈនៃគ្រាប់ចុច asymmetric ត្រូវបានបង្ហាញ
(បញ្ជូន) ជាអត្ថបទច្បាស់លាស់។
ពាក្យបញ្ជា SELECT
ពាក្យបញ្ជា SELECT ត្រូវបានប្រើសម្រាប់ជ្រើសរើសកម្មវិធី។ OPEN ដំណើរការតែពាក្យបញ្ជា SELECT ដែលបង្ហាញពី SELECT [តាមឈ្មោះ] នឹងត្រូវបញ្ជូនទៅកាន់ Security Domain ឬ Application ដែលបានជ្រើសរើសបច្ចុប្បន្ននៅលើឆានែលឡូជីខលដែលបានចង្អុលបង្ហាញ។
កំណត់ពាក្យបញ្ជាស្ថានភាព
ពាក្យបញ្ជា SET STATUS នឹងត្រូវប្រើដើម្បីកែប្រែស្ថានភាពវដ្តជីវិត ឬស្ថានភាពវដ្តជីវិតកម្មវិធី។
ពាក្យបញ្ជារក្សាទុកទិន្នន័យ
ពាក្យបញ្ជា STORE DATA ត្រូវបានប្រើដើម្បីផ្ទេរទិន្នន័យទៅកាន់កម្មវិធី ឬ Security Domain ដែលដំណើរការពាក្យបញ្ជា។ ដែនសុវត្ថិភាពកំណត់ថាតើពាក្យបញ្ជាត្រូវបានបម្រុងទុកសម្រាប់ខ្លួនវា ឬកម្មវិធីមួយអាស្រ័យលើពាក្យបញ្ជាអ្នកទទួលពីមុន។ ប្រសិនបើពាក្យបញ្ជាមុនគឺ និង INSTALL [សម្រាប់ផ្ទាល់ខ្លួន] ពាក្យបញ្ជា STORE DATA ត្រូវបានកំណត់សម្រាប់កម្មវិធីមួយ។ ពាក្យបញ្ជា Multiple STORE DATA ត្រូវបានប្រើដើម្បីផ្ញើទិន្នន័យទៅកាន់ Application ឬ Security Domain ដោយបំបែកទិន្នន័យទៅជាផ្នែកតូចៗសម្រាប់ការបញ្ជូន។ ដែនសុវត្ថិភាពនឹងត្រូវបានជូនដំណឹងអំពីប្លុកចុងក្រោយ។ វគ្គកំណត់ផ្ទាល់ខ្លួនចាប់ផ្តើមនៅពេលដែល Security Domain ទទួលបានពាក្យបញ្ជា INSTALL [សម្រាប់ personalize] ដែលមានសុពលភាពដែលរចនាកម្មវិធី (អនុវត្តទាំង Application ឬ Personalization interface) ដែល Security Domain នឹងត្រូវបញ្ជូនបន្ត ទទួលបានពាក្យបញ្ជា STORE DATA ជាបន្តបន្ទាប់។
វគ្គកំណត់ផ្ទាល់ខ្លួននឹងបញ្ចប់នៅពេល៖
- កាតត្រូវបានកំណត់ឡើងវិញ។
- ដែនសុវត្ថិភាពត្រូវបានដកការជ្រើសរើស (ឧទាហរណ៍ អាប់ភ្លេតមួយទៀត ឬដូចគ្នា ត្រូវបានជ្រើសរើសនៅលើឆានែលឡូជីខលដូចគ្នា)
- ដែនសុវត្ថិភាពត្រូវបានជ្រើសរើសនៅលើឆានែលឡូជីខលដូចគ្នាឬផ្សេងទៀត។
- វគ្គ Secure Channel (ប្រសិនបើមាន) ដែលបង្កើតឡើងដោយ Security Domain ត្រូវបានកំណត់ឡើងវិញ ប្រហែលជាដោយកម្មវិធីគោលដៅ។
- Security Domain ទទួល និងដំឡើងពាក្យបញ្ជា [សម្រាប់ personalize] (ចាប់ផ្តើមវគ្គផ្ទាល់ខ្លួនថ្មីសម្រាប់កម្មវិធីផ្សេងទៀត)
- Security Domain ទទួលបានពាក្យបញ្ជា STORE DATA ដែលបង្ហាញពី P1 ។ b8=1 (ប្លុកចុងក្រោយ)
GlobalPlatform API
វេទិកាសកលនៅលើកាត JAVA
ផ្នែកនេះមានតែ API ដែលត្រូវការសម្រាប់ Global Platform 2.2x Java Cards ។ ការប្រើប្រាស់ Open Platform 2.0.1 API នៅតែត្រូវបានអនុញ្ញាតសម្រាប់ការគាំទ្រកំណែចាស់នៃកម្មវិធី ប៉ុន្តែត្រូវបានបដិសេធ។ វាត្រូវបានកំណត់នៅក្នុងកំណែ 2.1.1 នៃការបញ្ជាក់នេះ។ API ដែលមិនគាំទ្រ និង API ថ្មីទាំងពីរចូលប្រើវត្ថុដូចគ្នានៅកន្លែងដែលអាចអនុវត្តបាន។ ខណៈពេលដែលវាហាក់ដូចជាជាក់ស្តែងសម្រាប់វិធីសាស្រ្តដែលមានឈ្មោះដូចគ្នានៅទូទាំងថ្នាក់ទាំងពីរ (ឧទាហរណ៍ setATRHistBytes(), setCardContentState() និង getCardContentSame()) វាក៏នឹងត្រូវបានកត់សម្គាល់ផងដែរសម្រាប់ ឧ។ampដូច្នេះថាកម្មវិធីដែលប្រើវិធីសាស្ត្រដែលបានអាប់ដេត() នៅក្នុង API ថ្មីដើម្បីផ្លាស់ប្តូរតម្លៃនៃកូដ PIN សកលនឹងប៉ះពាល់ដល់កូដ PIN សកលដូចគ្នានៃកម្មវិធីដែលប្រើវិធីសាស្ត្រ setPIN() នៅក្នុង API ដែលត្រូវបានបដិសេធដើម្បីផ្ទៀងផ្ទាត់កូដ PIN សកល។
តម្រូវការជាក់លាក់របស់ GlobalPlatform
ដើម្បីធានាបាននូវកម្រិតខ្ពស់បំផុតនៃអន្តរប្រតិបត្តិការនៃការអនុវត្ត GlobalPlatform GlobalPlatform ក៏ទទួលយកការបញ្ជាទិញដែលបានកំណត់ក្នុងផ្នែក 6.2 – Java CardTM 2.2x ការបញ្ជាក់ម៉ាស៊ីននិម្មិត។ ការកែប្រែបន្តិចបន្តួចខាងក្រោមចំពោះមុខងារស្តង់ដារដែលបានកំណត់ក្នុង Java CardTM 2.1.1 Runtime Environment (JCRE) Specifications និង Java CardTM 2.1.1 Application Programming Interface មានវត្តមាននៅក្នុងការអនុវត្ត GlobalPlatform ។ ការកែប្រែមួយចំនួនមានភាពស៊ីសង្វាក់គ្នាជាមួយ Java CardTM 2.2.x Specification រួចហើយ ដូច្នេះហើយមិនមានការកែប្រែទៀតទេ។
វត្ថុ GPRegistryEntry នឹងត្រូវដាក់បញ្ចូលជាវត្ថុចំណុចប្រទាក់ដែលអាចចែករំលែកបានដូចដែលបានកំណត់ក្នុងផ្នែក 6.2.4 “ចំណុចប្រទាក់ដែលអាចចែករំលែកបាន” នៃការកំណត់ Java CardTM 2.2.x Runtime Environment (JCRE) ដើម្បីធានាបាននូវការចូលប្រើប្រាស់រួមគ្នា។
កញ្ចប់ជំនួយ GlobalPlatform
កញ្ចប់ជំនួយ GlobalPlatfrom នីមួយៗនឹងត្រូវបានភ្ជាប់ជាមួយ RID និង PIX ។ តម្លៃជំនួយនៃការនាំចេញកាត Java File សម្រាប់ GlobalPlatform API ថ្មី (ដូចគ្នាបេះបិទសម្រាប់ទាំង GlobalPlatform 2.1 និង 2.1.1) ដោយផ្អែកលើ RID ដែលបានបញ្ជាក់នៅក្នុងឧបសម្ព័ន្ធ H – GlobalPlatform Data Values និងទិន្នន័យការទទួលស្គាល់កាតគឺ “A00000015100”។
ការដំឡើង
នៅក្នុងផ្នែក 3.1 – ការដំឡើងវិធីសាស្រ្តនៃ Java CardTM 2.2.x Runtime Environment (JCRE) Specifications ប៉ារ៉ាម៉ែត្រដែលបានបញ្ជូនទៅ method ត្រូវបានកំណត់ថាជាប៉ារ៉ាម៉ែត្រចាប់ផ្តើមពីមាតិកានៃប៉ារ៉ាម៉ែត្រអារេបៃដែលចូលមក។ ការបញ្ជាក់នេះពង្រីកលើតម្រូវការនេះ និងកំណត់បន្ថែមនូវខ្លឹមសារនៃការដំឡើងប៉ារ៉ាម៉ែត្រ។ ការពង្រីកនេះប៉ះពាល់ទាំងការអនុវត្ត OPEN និងឥរិយាបទនៃអាប់ភ្លេតកាត Java ដែលបង្កើតឡើងសម្រាប់កាត GlobalPlatform ។ វាមិនប៉ះពាល់ដល់និយមន័យនៃវិធីដំឡើង() នៃ Class Applet នៃ Java CardTM 2.2.x Application Programming Interface specification ទេ។
ប៉ារ៉ាម៉ែត្រដំឡើងត្រូវកំណត់អត្តសញ្ញាណទិន្នន័យខាងក្រោមដែលមាននៅក្នុងពាក្យបញ្ជា INSTALL [សម្រាប់ដំឡើង]៖
- ឧទាហរណ៍ AID
- ឯកសិទ្ធិ
- ប៉ារ៉ាម៉ែត្រជាក់លាក់នៃកម្មវិធី។ (ខណៈពេលដែលពាក្យបញ្ជា APDU មានប៉ារ៉ាម៉ែត្រដំឡើងដែលតំណាងឱ្យប្រព័ន្ធកូដ TLV និងប៉ារ៉ាម៉ែត្រជាក់លាក់កម្មវិធី កម្មវិធីត្រូវការតែចំណេះដឹងនៃប៉ារ៉ាម៉ែត្រជាក់លាក់កម្មវិធីប៉ុណ្ណោះ ពោលគឺមានតែ LV នៃរចនាសម្ព័ន្ធកូដ TLV "C9" ប៉ុណ្ណោះដែលមានវត្តមានជាប៉ារ៉ាម៉ែត្រជាក់លាក់នៃកម្មវិធី។
OPEN ទទួលខុសត្រូវក្នុងការធានាថាប៉ារ៉ាម៉ែត្រ (bArray, bOffset និង bLength) មានព័ត៌មានដូចខាងក្រោម៖ អារេ bArray នឹងមានទិន្នន័យកូដ LV ជាប់គ្នាដូចខាងក្រោម៖
- ប្រវែងនៃឧទាហរណ៍ AID
- ឧទាហរណ៍ AID
- ប្រវែងនៃសិទ្ធិ
- ឯកសិទ្ធិ
- ប្រវែងនៃប៉ារ៉ាម៉ែត្រជាក់លាក់នៃកម្មវិធី
- ប៉ារ៉ាម៉ែត្រជាក់លាក់នៃកម្មវិធី
បៃ bOffset នឹងមានអុហ្វសិតក្នុងអារេដែលចង្អុលទៅប្រវែងនៃ instance AID ។ បៃ, bLength, នឹងមានប្រវែងដែលបង្ហាញពីប្រវែងសរុបនៃទិន្នន័យដែលបានកំណត់ខាងលើនៅក្នុងអារេ។ អាប់ភ្លេតត្រូវបានទាមទារដើម្បីប្រើប្រាស់ instance AID ជាប៉ារ៉ាម៉ែត្រនៅពេលហៅការចុះឈ្មោះ (byte [] bArray, short bOffset, byte bLength) method នៃ Class Applet នៃ Java Card 2.2.x Application Programming Interface specification ។
T=0 ពិធីការបញ្ជូន
កាត GlobalPlatform មានបំណងឱ្យដំណើរការនៅក្នុងបរិយាកាសដ៏ធំទូលាយបំផុត (ឧ. ឧបករណ៍ទទួលយកកាត)។ បច្ចុប្បន្ន ការបញ្ជាក់របស់ Java Card 2.1.1 Runtime Environment (JCRE) និង Java Card 2.2.x Runtime Environment (JCRE) Specifications ពិពណ៌នាអំពីអាកប្បកិរិយាសម្រាប់ពាក្យបញ្ជា case 2 (នៅពេលប្តឹង T=0 protocol) ផ្ទុយទៅនឹង EMV 2000។ GlobalPlatform មានអាណត្តិថា JCRE នឹងដោះស្រាយករណីនៃពាក្យបញ្ជានេះដោយអនុលោមតាម ISO/IEC 7816៖ អាប់ភ្លេតដែលទទួលបាន ពាក្យបញ្ជាករណីទី 2 បង្កើតការឆ្លើយតប និងហៅ API ដែលសមស្របដើម្បីបញ្ចេញទិន្នន័យ។ ប្រសិនបើទិន្នន័យតិចជាងទិន្នន័យដែលរំពឹងទុកដោយស្ថានីយនោះ OPEN នឹងរក្សាទុកទិន្នន័យ និងបញ្ចេញលេខកូដឆ្លើយតប "6Cxx" ហើយរង់ចាំឱ្យ CAD ចេញពាក្យបញ្ជាឡើងវិញជាមួយនឹងប្រវែងត្រឹមត្រូវ។ នៅពេលដែលបានទទួលពាក្យបញ្ជាដែលបានចេញសារជាថ្មី JCRE នឹងគ្រប់គ្រងការបញ្ចេញទិន្នន័យដែលបានរក្សាទុក។
អាតូមិច
លុះត្រាតែបានបញ្ជាក់បើមិនដូច្នេះទេ វត្ថុជាប់លាប់ខាងក្នុងទាំងអស់នៃ GlobalPlatform API ត្រូវតែអនុលោមតាមប្រតិបត្តិការដែលកំពុងដំណើរការ។ ប្រតិបត្តិការទាំងអស់ដែលធ្វើឡើងដោយ API នេះ រំពឹងថាវិធីសាស្ត្រ Application.processData() នឹងត្រូវបានប្រតិបត្តិតាមលក្ខណៈអាតូម។ វត្ថុដែលប្រើដើម្បីពង្រឹងការអនុវត្តការត្រួតពិនិត្យល្បឿនមិនត្រូវគ្នានឹងប្រតិបត្តិការដែលកំពុងដំណើរការទេ។
ឆានែលឡូជីខល
ការរឹតបន្តឹងឆានែលឡូជីខលខាងក្រោមអនុវត្តចំពោះកាត Java 2.2.x (សូមមើលការបញ្ជាក់របស់ Java Card 2.2.x Runtime Environment (JCRE) សម្រាប់ព័ត៌មានលម្អិត)៖ ការជ្រើសរើសកម្មវិធីនៅលើឆានែលឡូជីខលដូចដែលបានកំណត់ក្នុងផ្នែក 6.3 – Command Dispatch នឹងមិនជោគជ័យទេ។ ប្រសិនបើកម្មវិធីដូចគ្នានេះ ឬកម្មវិធីណាមួយផ្សេងទៀតភ្លាមៗពីកូដនៅក្នុងកញ្ចប់ដូចគ្នាដែលកម្មវិធីដែលត្រូវបានជ្រើសរើសត្រូវបានធ្វើឱ្យសកម្មនោះ បច្ចុប្បន្នត្រូវបានជ្រើសរើសនៅលើឆានែលឡូជីខលផ្សេងទៀត ប៉ុន្តែកម្មវិធី កូដមិនអនុវត្តចំណុចប្រទាក់ MultiSelectable ទេ។ ដែនសុវត្ថិភាពនឹងអនុវត្តចំណុចប្រទាក់ MultiSelectable ។ ការផ្លាស់ប្តូរបរិបទពី Security Domain ទៅជាកម្មវិធីមួយ ដូចដែលបានកំណត់ក្នុងផ្នែក 7.3.3 ការគាំទ្រការធ្វើបដិរូបកម្មនឹងមិនជោគជ័យទេ ប្រសិនបើកម្មវិធីដូចគ្នានេះ ឬកម្មវិធីផ្សេងទៀតណាមួយដែលភ្លាមៗចេញពីកូដនៅក្នុងកញ្ចប់ដូចគ្នាដែលកម្មវិធីដែលកំពុងកំណត់ផ្ទាល់ខ្លួនត្រូវបាន instantiated បច្ចុប្បន្នត្រូវបានជ្រើសរើសនៅលើមួយផ្សេងទៀត ឆានែលឡូជីខល ប៉ុន្តែកូដកម្មវិធីមិនអនុវត្តចំណុចប្រទាក់ MultiSelectable ទេ។ កម្មវិធីដែលមានសិទ្ធិក្នុងការជ្រើសរើសតាមលំនាំដើម និងត្រូវបានបម្រុងទុកសម្រាប់កាតដែលគាំទ្រឆានែលឡូជីខលបន្ថែមគួរតែអនុវត្តចំណុចប្រទាក់ MultiSelectable ។ GlobalPlarform កំណត់តែការចាត់តាំងលេខឆានែលឡូជីខលដោយកាតប៉ុណ្ណោះ។ ជាជម្រើស និងដូចដែលបានកំណត់ក្នុង Java Card 2.2 កាតក៏អាចគាំទ្រការចាត់តាំងលេខឆានែលឡូជីខលដោយស្ថានីយផងដែរ។
ក្បួនដោះស្រាយគ្រីបតូ
កាត GlobalPlatform ដែលគាំទ្រការគ្រីប RSA គួរតែគាំទ្រទំហំគន្លឹះដែលមិនត្រូវបានកំណត់ជាថេរនៅក្នុងថ្នាក់ Key Builder ។ ពិសេសជាងនេះទៅទៀត ការគាំទ្រសម្រាប់ទំហំគន្លឹះជាពហុគុណនៃ 4 បៃ (32 ប៊ីត) ហើយការស្ថិតនៅក្នុងប្រវែងគន្លឹះដែលបានអនុញ្ញាតដែលកំណត់ដោយការអនុវត្តគួរតែមាន។
កម្រិតនៃការជឿទុកចិត្ត
លក្ខណៈបច្ចេកទេសរបស់ Java Card 2.2.x សន្មត់ថា RID នៃកញ្ចប់ AID អាប់ភ្លេត និងឧទាហរណ៍នឹងត្រូវបានប្រើប្រាស់ ដើម្បីធានាបាននូវកម្រិតនៃការជឿទុកចិត្តរវាងអង្គភាពទាំងនេះ។ នៅក្នុងផ្នែក 4.2.2-AID ការប្រើប្រាស់ Java Card 2.2.1 Application Programming Interface វាត្រូវបានកំណត់ថា RID នៃ AID នៃសមាសភាគមួយត្រូវតែផ្គូផ្គង RID នៃ AID នៃកញ្ចប់ ហើយនៅក្នុងនិយមន័យនៃការចុះឈ្មោះ (បៃ [] bArray, short bOffset, byte bLength) វិធីសាស្ត្រនៃ Java Card 2.2.x Application Programming Interface specification វាត្រូវបានកំណត់ថាករណីលើកលែងត្រូវតែជា បោះចោលប្រសិនបើផ្នែក RID នៃបៃ AID ក្នុងប៉ារ៉ាម៉ែត្រ bArray មិនផ្គូផ្គងនឹងផ្នែក RID នៃឈ្មោះ Java Card នៃអាប់ភ្លេត។ ពីចំណុចអនុវត្តជាក់ស្តែងនៃ viewដោយកំណត់ថា RID នៃ instance AID ត្រូវតែដូចគ្នាទៅនឹង RID នៃសមាសភាគដែលវាត្រូវបាន instantiated គឺមិនជាក់ស្តែង។ ការអនុវត្ត GlobalPlatform មិនត្រូវកំណត់ថាមានទំនាក់ទំនងណាមួយតាមរយៈ AID នៃឧទាហរណ៍ចំពោះកញ្ចប់ដើមរបស់វា។ (មិនតម្រូវឱ្យមានការតភ្ជាប់រវាង AID នៃវត្ថុមួយ និង AID នៃកញ្ចប់ដើមរបស់វា)។ ទោះយ៉ាងណាក៏ដោយ វាសន្មតថាកម្មវិធីទាំងអស់នៅក្នុងកញ្ចប់ដូចគ្នាចែករំលែកកម្រិតនៃការជឿទុកចិត្តដូចគ្នា។
ការហៅវិធីសាស្រ្ត GlobalPlatform
ចំណុចប្រទាក់កម្មវិធីកម្មវិធីដែលបានកំណត់នៅទីនេះគឺអាចចូលប្រើបានចំពោះអាប់ភ្លេតកាត Java ណាមួយដែលត្រូវបានបង្កើតឡើងដោយមានបំណងមានវត្តមាននៅលើកាត GlobalPlatform ។ ដែនកំណត់មួយមិនមានទេដែលទាក់ទងនឹងអ្នកបង្កើតអាប់ភ្លេត និងដើម្បីដំឡើង () វិធីសាស្ត្រនៃ Class Applet នៃ Java Card 2.2.x Application Programming Interface ។ ដោយសារការបញ្ជាក់នេះមិនកំណត់ច្បាស់លាស់នៅពេលដែលឧទាហរណ៍នៃអាប់ភ្លេតក្លាយជាធាតុនៅក្នុងបញ្ជីឈ្មោះ GlobalPlatform របស់កាត អ្នកអភិវឌ្ឍន៍អាប់ភ្លេតអាចសន្មត់ថាវាបានកើតឡើងបន្ទាប់ពីការបញ្ចប់ដោយជោគជ័យនៃវិធីសាស្ត្រដំឡើង () ។ ដើម្បីធានាបាននូវអន្តរប្រតិបត្តិការ វិធីសាស្ត្រ GlobalPlatform API ដែលចូលប្រើធាតុចុះឈ្មោះ GlobalPlatform នៃអាប់ភ្លេតដែលហៅវិធីសាស្ត្រនេះ មិនត្រូវហៅចេញពីក្នុង constructor ឬ install() method ឡើយ។
ខាងក្រោមនេះគឺជាការបាត់បង់វិធីសាស្រ្តដែលអាចត្រូវបានហៅចេញពីក្នុង constructor ឬ install() method៖
- getCardState;
- getCVM;
- ទទួលបានសេវា;
ឥរិយាបថដែលត្រូវការរបស់កាតក្នុងករណីដែលកម្មវិធីមួយហៅវិធីសាស្ត្រមិនត្រឹមត្រូវនៃថ្នាក់ org.globalplatform.GPSystem ក្រៅពីអ្វីដែលបានរាយខាងលើគឺមិនត្រូវបានកំណត់ទេ។ សម្រាប់អតីតampដូច្នេះ ករណីលើកលែងមួយអាចនឹងត្រូវបានបោះចោល ហើយដំណើរការនៃវិធីដំឡើង() អាចត្រូវបានលុបចោល។
ការជ្រើសរើស
នៅលើកាត GlobalPlatform ប្រសិនបើមានកំហុសកើតឡើងកំឡុងពេលដំណើរការនៃវិធីសាស្ត្រជ្រើសរើស() ឬប្រសិនបើវិធីសាស្ត្រជ្រើសរើស() ត្រឡប់ False ឬប្រសិនបើកម្មវិធីមិនអាចជ្រើសរើសបានទេ ដោយសារវាមិនអនុវត្តចំណុចប្រទាក់ពហុជ្រើសរើសបាននោះ OPEN នឹងបន្តស្វែងរកតាមរយៈ GlobalPlatform ការចុះឈ្មោះសម្រាប់ការផ្គូផ្គងពេញលេញ ឬដោយផ្នែកជាបន្តបន្ទាប់ ដូចដែលបានកំណត់ក្នុងផ្នែក 6.4.2.1.2 ។ ប្រសិនបើគ្មានកម្មវិធីណាមួយត្រូវបានជ្រើសរើសទេ ឆានែលឡូជីខលដែលត្រូវគ្នានៅតែបើកដោយគ្មានកម្មវិធីដែលបានជ្រើសរើសបច្ចុប្បន្ន។ ដោយសារបច្ចុប្បន្នមិនមានកម្មវិធីណាមួយត្រូវបានជ្រើសរើស ពាក្យបញ្ជាបន្តបន្ទាប់ណាមួយក្រៅពីពាក្យបញ្ជា MANAGE CHANNEL ឬ SELECT នឹងត្រូវបានច្រានចោល។ វាត្រូវបានរំពឹងទុកថាអង្គភាពបិទកាតនឹងចាត់វិធានការសមស្របលើកំហុសបែបនេះ ឧទាហរណ៍ ជ្រើសរើសកម្មវិធីផ្សេងទៀត បិទឆានែលឡូជីខលដែលត្រូវគ្នា កំណត់ឡើងវិញ ឬបិទកាត។ សេចក្តីសង្ខេបនៃវិធីសាស្ត្រ និងព័ត៌មានលម្អិតសម្រាប់ការបញ្ជាក់អំពី GlobalPlatform Java Card API ឥឡូវនេះមាននៅក្នុងឯកសារដាច់ដោយឡែកមួយ ដែលអាចត្រូវបានរកឃើញនៅលើ GlobalPlatform webគេហទំព័រ។
ការកំណត់ផ្ទាល់ខ្លួនជាមុន
នៅពេលដែល IC ត្រូវបានផ្តល់ថាមពលជាលើកដំបូង វាស្ថិតនៅក្នុងស្ថានភាពមុនការកំណត់ផ្ទាល់ខ្លួន។ ពាក្យបញ្ជា INIT_CARD (សូមមើលពាក្យបញ្ជា 8.2.2 INIT CARD) ត្រូវតែជាពាក្យបញ្ជាដំបូងនៅស្ថានភាពមុនការកំណត់ផ្ទាល់ខ្លួន ពាក្យបញ្ជាចាប់ផ្តើមផ្ទៃអង្គចងចាំកាតជាមួយនឹងតម្លៃលំនាំដើម ហើយបន្ទាប់មកហៅថាកម្មវិធី ACOSJ ROOT (សូមមើលកម្មវិធី 8.0 ACOSJ ROOT ) អាចរកបានដើម្បីសរសេរទិន្នន័យប្រព័ន្ធសំខាន់ (សម្រាប់ឧample, “ATR”, “ATS” និងផ្សេងៗទៀត) ចូលទៅក្នុង EEPROM ។ នៅពេលដែលទិន្នន័យត្រូវបានផ្ទុក និងបញ្ជាក់មិនមានការផ្លាស់ប្តូរអ្វីទៀតទេ ពាក្យបញ្ជាដែលបិទកម្មវិធី ACOSJ ROOT ត្រូវតែត្រូវបានប្រតិបត្តិ។ នៅពេលដែល IC ចេញពីស្ថានភាពមុនផ្ទាល់ខ្លួនជាមួយនឹងការប្រតិបត្តិដោយជោគជ័យនៃពាក្យបញ្ជា Active Card (សូមមើលពាក្យបញ្ជា 8-2.5 ACTIVATE) វាស្ថិតនៅក្នុងស្ថានភាពលំនាំដើមនៃវដ្តជីវិតកាត GlobalPlatform OP_READY ប្រសិនបើវាមិនត្រូវបានកំណត់ទៅជាស្ថានភាពវដ្តជីវិតផ្សេង។ ប្រសិនបើមិនអាចត្រឡប់ទៅស្ថានភាពផ្ទាល់ខ្លួនជាមុនបានទេ នៅពេលដែលពាក្យបញ្ជាកាតសកម្មត្រូវបានដំណើរការដោយជោគជ័យ។
កម្មវិធី ACOSJ ROOT
ការពិពណ៌នាអំពីកម្មវិធី ACOSJ ROOT
ពាក្យបញ្ជានៅក្នុងកម្មវិធី ROOT អាចត្រូវបានប្រើតែបន្ទាប់ពីកម្មវិធី ROOT ត្រូវបានជ្រើសរើសយ៉ាងត្រឹមត្រូវ (ដោយប្រើពាក្យបញ្ជាជ្រើសរើស សោដឹកជញ្ជូន) ។ បន្ទាប់ពីចូលទៅក្នុងកម្មវិធី ROOT អ្នកប្រើប្រាស់អាចអាន ឬកំណត់ប៉ារ៉ាម៉ែត្រកាតទោះបីជាពាក្យបញ្ជាដែលគាំទ្រដោយកម្មវិធី ROOT ក៏ដោយ។ ដើម្បីចេញពីកម្មវិធី ROOT ហើយជ្រើសរើសកម្មវិធីផ្សេងទៀត កាតត្រូវតែកំណត់ឡើងវិញ។ នៅក្រោមកម្មវិធី ROOT ប៉ារ៉ាម៉ែត្រនៃកាតអាចត្រូវបានអាន ឬកំណត់រចនាសម្ព័ន្ធ។ កម្មវិធី ROOT នឹងក្លាយទៅជាមិនត្រឹមត្រូវនៅពេលដែលកាតត្រូវបានធ្វើឱ្យសកម្ម។
ឯកសារយោងពាក្យបញ្ជាកម្មវិធី ACOSJ ROOT
- ពាក្យបញ្ជា SELECT
- ពាក្យបញ្ជា SELECT ត្រូវបានប្រើដើម្បីជ្រើសរើសកម្មវិធី ROOT ។
- ពាក្យបញ្ជា INIT_CARD
- ពាក្យបញ្ជានេះត្រូវបានប្រើដើម្បីកំណត់កាតឡើងវិញ។ ពាក្យបញ្ជានេះនឹងចាប់ផ្តើម EEPROM ទាំងអស់។
- អានពាក្យបញ្ជា
- ពាក្យបញ្ជានេះត្រូវបានប្រើដើម្បីអានពីតំបន់កំណត់រចនាសម្ព័ន្ធ។ ប៉ារ៉ាម៉ែត្រកំណត់រចនាសម្ព័ន្ធនៃកាតអាចត្រូវបានអានទោះបីជាពាក្យបញ្ជានេះក៏ដោយ។
- សរសេរពាក្យបញ្ជា
- ពាក្យបញ្ជានេះត្រូវបានប្រើដើម្បីសរសេរទិន្នន័យទៅកាន់តំបន់កំណត់រចនាសម្ព័ន្ធ។ ប៉ារ៉ាម៉ែត្រកំណត់រចនាសម្ព័ន្ធនៃកាតអាចត្រូវបានអានទោះបីជាពាក្យបញ្ជានេះក៏ដោយ។
- ពាក្យបញ្ជាសកម្ម
- ពាក្យបញ្ជានេះត្រូវបានប្រើដើម្បីធ្វើឱ្យកាតសកម្ម។ នៅពេលដែលពាក្យបញ្ជានេះត្រូវបានអនុវត្តដោយជោគជ័យ កម្មវិធី ROOT នឹងក្លាយទៅជាមិនត្រឹមត្រូវ ហើយទិន្នន័យនៃការកំណត់រចនាសម្ព័ន្ធរបស់កាតមិនអាចអាន ឬកំណត់ដោយផ្ទាល់បានទៀតទេ។
- កម្មវិធី ACOSJ IDENTIFY
- ការពិពណ៌នាកម្មវិធី ACOSJ IDENTIFY
- បន្ទាប់ពីកម្មវិធី IDENTIFY (AID: 6163732E636F732E61636F736A766572) ត្រូវបានជ្រើសរើសដោយប្រើពាក្យបញ្ជា SELECT នោះ ACOSJ នឹងត្រឡប់លេខកំណែរបស់ ACOSJ ហើយបង្ហាញថាតើរថយន្តបានដំណើរការឬអត់។
- ការពិពណ៌នាកម្មវិធី ACOSJ IDENTIFY
- ACOSJ IDENTIFY សេចក្តីយោងពាក្យបញ្ជាកម្មវិធី
- ពាក្យបញ្ជា SELECT
- ពាក្យបញ្ជា SELECT ត្រូវបានប្រើសម្រាប់ជ្រើសរើសកម្មវិធី INDENTIFY ។
- ពាក្យបញ្ជា SELECT
ស្ថានភាពបៃ
| SW1 SW2 | ការពិពណ៌នា |
| 90 00 ម៉ោង។ | ពាក្យបញ្ជាត្រឹមត្រូវ។ |
| 61 XX | SW2 បៃឆ្លើយតបបន្ថែមទៀតអាចរកបាន |
| 62 83 ម៉ោង។ | កម្មវិធីត្រូវបានរារាំងជាអចិន្ត្រៃយ៍ |
| 63 00 ម៉ោង។ | ការផ្ទៀងផ្ទាត់បានបរាជ័យ |
| ៦៣ CX | X ព្យាយាមចាកចេញ |
| 67 00 ម៉ោង។ | ប្រវែងទិន្នន័យខុស |
| 68 81 ម៉ោង។ | ឆានែលឡូជីខលមិនត្រូវបានគាំទ្រទេ។ |
| 68 82 ម៉ោង។ | ការផ្ញើសារសុវត្ថិភាពមិនត្រូវបានគាំទ្រទេ។ |
| 69 84 ម៉ោង។ | ទិន្នន័យមិនត្រឹមត្រូវ |
| 69 82 ម៉ោង។ | ស្ថានភាពសុវត្ថិភាពមិនពេញចិត្ត |
| 69 85 ម៉ោង។ | ល័ក្ខខ័ណ្ឌនៃការប្រើប្រាស់មិនពេញចិត្ត |
| 69 88 ម៉ោង។ | MAC ខុស |
| 6A 86 ម៉ោង។ | P1 P2 មិនត្រឹមត្រូវ |
| 6A 80 ម៉ោង។ | តម្លៃមិនត្រឹមត្រូវនៅក្នុងទិន្នន័យពាក្យបញ្ជា |
| 6A 82 ម៉ោង។ | File រកមិនឃើញ |
| 6A 81 ម៉ោង។ | កម្មវិធីត្រូវបានចាក់សោ |
| 6A 83 ម៉ោង។ | រកមិនឃើញកំណត់ត្រាទេ។ |
| 6A 84 ម៉ោង។ | ទំហំអង្គចងចាំមិនគ្រប់គ្រាន់ទេ។ |
| 6A 88 ម៉ោង។ | រកមិនឃើញទិន្នន័យយោង |
| 6D 00h | INS មិនត្រឹមត្រូវ ពាក្យបញ្ជាមិនមានស្រាប់ |
| ៦ អ៊ី ០០ ម៉ោង។ | ថ្នាក់មិនត្រឹមត្រូវ។ |
ឯកសារយោង
ឯកសារខាងក្រោមបានបម្រើជាឯកសារយោងសម្រាប់ការបញ្ជាក់មុខងារ ACOSJ៖
- ការបញ្ជាក់កាត GlobalPlatform កំណែ 2.2.1
- GlobalPlatform Card API កំណែ 1.6
- Java Card 3 API, Classic Edition កំណែ 3.0.4
- Java Card 3 Platform Runtime Specification, Classic Edition Version 3.0.4 September 2011
- Java Card 3 Platform Virtual Machine Specification, Classic Edition Version 3.0.4 September 2011
- GlobalPlatform Card Mapping Guidelines of Existing GP v2.1.1 ការអនុវត្តនៅលើ v2.2.1 កំណែ 1.0.1
ការធានា
លក្ខខណ្ឌធានា
- ផលិតផលថ្មីដែលបានទិញនៅក្នុងបណ្តាញលក់ Alza.cz ត្រូវបានធានារយៈពេល 2 ឆ្នាំ។ ប្រសិនបើអ្នកត្រូវការការជួសជុល ឬសេវាកម្មផ្សេងទៀតក្នុងអំឡុងពេលធានា សូមទាក់ទងអ្នកលក់ផលិតផលដោយផ្ទាល់ អ្នកត្រូវតែផ្តល់ភស្តុតាងដើមនៃការទិញជាមួយនឹងកាលបរិច្ឆេទនៃការទិញ។
- ខាងក្រោមនេះត្រូវបានចាត់ទុកថាជាការប៉ះទង្គិចជាមួយលក្ខខណ្ឌនៃការធានា ដែលការទាមទារដែលបានទាមទារអាចមិនត្រូវបានទទួលស្គាល់៖
- ការប្រើប្រាស់ផលិតផលសម្រាប់គោលបំណងណាមួយក្រៅពីផលិតផលដែលមានបំណង ឬមិនអនុវត្តតាមការណែនាំសម្រាប់ការថែទាំ ប្រតិបត្តិការ និងសេវាកម្មនៃផលិតផល។
- ការខូចខាតផលិតផលដោយគ្រោះមហន្តរាយធម្មជាតិ ការអន្តរាគមន៍ពីអ្នកដែលគ្មានការអនុញ្ញាត ឬមេកានិចតាមរយៈកំហុសរបស់អ្នកទិញ (ឧទាហរណ៍ក្នុងអំឡុងពេលដឹកជញ្ជូន ការសម្អាតដោយមធ្យោបាយមិនសមរម្យ។ល។)។
- ការពាក់ធម្មជាតិ និងភាពចាស់នៃសម្ភារៈប្រើប្រាស់ ឬសមាសធាតុកំឡុងពេលប្រើប្រាស់ (ដូចជាថ្មជាដើម)។
- ការប៉ះពាល់នឹងឥទ្ធិពលខាងក្រៅមិនល្អ ដូចជាពន្លឺព្រះអាទិត្យ និងវិទ្យុសកម្ម ឬវាលអេឡិចត្រូម៉ាញេទិក ការជ្រៀតចូលនៃសារធាតុរាវ ការជ្រៀតចូលវត្ថុ ការលើសចំណុះនៃមេtage, ការឆក់អគ្គិសនី voltage (រួមទាំងផ្លេកបន្ទោរ) ការផ្គត់ផ្គង់ខុស ឬបញ្ចូលវ៉ុលtage និងបន្ទាត់រាងប៉ូលមិនសមរម្យនៃវ៉ុលនេះ។tage, ដំណើរការគីមីដូចជាការផ្គត់ផ្គង់ថាមពលដែលបានប្រើ។ល។
- ប្រសិនបើអ្នកណាម្នាក់បានធ្វើការកែប្រែ ការកែប្រែ ការផ្លាស់ប្តូរការរចនា ឬការសម្របខ្លួនដើម្បីផ្លាស់ប្តូរ ឬពង្រីកមុខងាររបស់ផលិតផល បើប្រៀបធៀបទៅនឹងការរចនាដែលបានទិញ ឬការប្រើប្រាស់សមាសធាតុដែលមិនមែនជាដើម។
ឯកសារ/ធនធាន
![]() |
acs ACOSJ-G កាត Java [pdf] សៀវភៅណែនាំអ្នកប្រើប្រាស់ កាត ACOSJ-G Java, ACOSJ-G, កាត Java, កាត |






