

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# AS2805
<a name="advanced.regional.as2805"></a>

Standar Australia 2805 (AS2805) adalah standar untuk transfer dana elektronik yang digunakan terutama untuk transaksi pembayaran berbasis kartu. Hal ini dikelola oleh [Standar Australia](https://www.standards.org.au/). Standar ini terdiri dari 6 buku yang mencakup berbagai topik mulai dari format pesan hingga standar enkripsi.

Bagian 6 memberikan panduan tentang manajemen kunci termasuk host-to-host (node-to-node) komunikasi dan persyaratan kriptografi yang relevan sementara aspek lain tercakup dalam bagian lain. Semua kriptografi dalam standar ini saat ini didasarkan pada TDES. 

**catatan**  
 AS2805 saat ini tersedia di Wilayah ap-southeast-2. Ini akan diluncurkan ke Wilayah tambahan dalam waktu dekat. 

AS2805 memiliki sejumlah perbedaan dibandingkan dengan implementasi lain, yang dirangkum di bawah ini.

*Perlindungan Kunci*  
Mengandalkan varian kunci alih-alih blok kunci seperti di TR-31/X9.143. AWS Kriptografi Pembayaran menyimpan semua kunci sebagai blok kunci secara internal tetapi mengizinkan impor, ekspor, dan perhitungan menggunakan AS28 05 varian yang ditentukan. 

*Kunci Searah*  
AS2805 mengamanatkan penggunaan kunci searah. Jika kedua node perlu menghasilkan kode otentikasi pesan (MAC), mereka menggunakan dua kunci. 

*Blok Pin*  
AS2805 mendefinisikan teknik derivasi kunci untuk kunci enkripsi pin unik per transaksi. Ini dapat digunakan sebagai pengganti DUKPT. Skema AS28 05 bergantung pada data transaksi (trace number dan jumlah transaksi) dibandingkan dengan penggunaan counter transaksi DUKPT. 

*Validasi Pertukaran Kunci*  
Mendefinisikan proses untuk memvalidasi KEK sebelum mulai bertukar kunci kerja seperti tombol pin. Dalam skema lain, KEK jarang dipertukarkan dan divalidasi menggunakan KCV. 

AS2805 menggunakan konsep varian kunci daripada blok kunci untuk memastikan kunci hanya digunakan untuk tujuan yang dimaksudkan (dan tunggal). Berikut ini adalah bagaimana Kriptografi AWS Pembayaran memetakan antara varian dan pemblokiran tombol saat mengimpor, mengekspor, atau melakukan fungsi kriptografi lainnya dengan kunci.


| AS2805 Jenis Kunci | AWS Jenis Kunci Kriptografi Pembayaran | 
| --- | --- | 
| TERMINAL\$1MAJOR\$1KEY\$1VARIANT\$100 |  TR31\$1K0\$1KEY\$1ENCRYPTION\$1KEY | 
| PIN\$1ENCRYPTION\$1KEY\$1VARIANT\$128 |  TR31\$1P0\$1PIN\$1ENCRYPTION\$1KEY | 
| MESSAGE\$1AUTHENTICATION\$1KEY\$1VARIANT\$124 |  TR31\$1M0\$1ISO\$116609\$1MAC\$1KEY | 
| DATA\$1ENCRYPTION\$1KEY\$1VARIANT\$122 |  TR31\$1D0\$1SYMMETRIC\$1DATA\$1ENCRYPTION\$1KEY | 
| VARIANT\$1MASK\$182, VARIANT\$1MASK\$182C0 |  Pilihan tersedia sebagai bagian dari proses validasi KEK. Jenis kunci ini bersifat sementara dan tidak disimpan oleh layanan. | 

Diberikan dua node, node1 dan node2, contoh berikut adalah dari perspektif node1. AWS Kriptografi Pembayaran mendukung APIs dari kedua sisi proses.

**Topics**
+ [Bursa Initial Key (KEK)](as2805.kekexchange.md)
+ [Validasi KEK](as2805.kekvalidation.md)
+ [Pembuatan dan transmisi kunci kerja](as2805.workingkeys.create.md)
+ [Mengekspor kunci kerja](as2805.workingkeys.export.md)
+ [Terjemahan Pin](as2805.pintranslation.md)
+ [Generasi dan Validasi Mac](as2805.mac.md)

# Bursa Initial Key (KEK)
<a name="as2805.kekexchange"></a>

 Pada AS28 05, masing-masing pihak memiliki KEK sendiri. KEK (s) mengacu pada tombol sisi pengiriman yang akan digunakan setiap kali sisi pengirim perlu protect/wrap kunci dan mengirimkannya ke node2. KEK (r) adalah kunci yang dibuat oleh sisi berlawanan (node2).

**catatan**  
Istilah-istilah ini relatif - satu sisi membuat kunci (sisi pengirim) dan sisi lain menerimanya. Jadi diberikan KEY1, itu disebut pada node1 sebagai KEK (s) dan pada node2 sebagai KEK (r).

 KEK untuk AS28 05 selalu tipe kunci = TR31 \$1K0\$1KEY\$1ENCRYPTION\$1KEY karena digunakan untuk melindungi kriptogram dan bukan blok kunci. Ini memetakan ke TERMINAL\$1MAJOR\$1KEY\$1VARIANT\$100 seperti yang didefinisikan dalam 05 6.1 AS28 

Langkah:

**1. Buat kunci**  
Buat kunci menggunakan [CreateKey](create-keys.md)api. Anda akan membuat kunci tipe TR31 \$1K0\$1KEY\$1ENCRYPTION\$1KEY

**2.Tentukan metode untuk bertukar kunci dengan node2**  
Tentukan cara [menukar KEK dengan pihak konter](keys-export.md). Untuk AS28 05, metode yang paling umum dan interoperable adalah RSA Wrap.

**3. Ekspor KEKs**  
Berdasarkan pilihan Anda di atas, Anda akan menerima sertifikat kunci publik dari node2. Anda akan menjalankan ekspor menggunakan sertifikat itu untuk melindungi kunci (atau memperoleh kunci jika menggunakan ECDH).

**4. Impor KEKr**  
Berdasarkan pilihan Anda di atas, Anda akan mengirim sertifikat kunci publik ke node2. Anda akan menjalankan import menggunakan sertifikat itu untuk memuat node 2 KEKr ke dalam layanan.

# Validasi KEK
<a name="as2805.kekvalidation"></a>

![\[Contoh diagram jaringan tingkat tinggi untuk aplikasi PIN menggunakan Kriptografi AWS Pembayaran\]](http://docs.aws.amazon.com/id_id/payment-cryptography/latest/userguide/images/as2805/kek_validation.png)


Ketika layanan Anda (node1) terhubung ke node2, masing-masing pihak akan memastikan bahwa mereka menggunakan KEK yang sama untuk operasi selanjutnya menggunakan proses yang disebut Validasi KEK. 

**1. Langkah-langkah untuk memvalidasi kunci pertama**

**1.1 Menerima KRs**  
Node2 akan menghasilkan KRs dan mengirimkannya kepada Anda sebagai bagian dari proses logon. Mereka dapat menggunakan Kriptografi AWS Pembayaran untuk menghasilkan nilai ini atau solusi lain.

**1.2 Menghasilkan Respon Validasi KEK**  
Node Anda akan menghasilkan respons Validasi KEK dengan input sebagai KEK (r) dan yang KRs disediakan pada langkah 1.  

**Example**  

```
cat >> generate-kek-validation-response.json
{
    "KekValidationType": {
        "KekValidationResponse": {
            "RandomKeySend": "9217DC67B8763BABCFDF3DADFCD0F84A"
        }
    },
    "RandomKeySendVariantMask": "VARIANT_MASK_82",
    "KeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza"
}
```

```
$ aws payment-cryptography-data generate-as2805-kek-validation --cli-input-json file://generate-kek-validation-response.json
```

```
{
 "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza",
 "KeyCheckValue": "0A3674",
 "RandomKeyReceive": "A4B7E249C40C98178C1B856DB7FB76EB",
 "RandomKeySend": "9217DC67B8763BABCFDF3DADFCD0F84A"
}
```

**1.3 Pengembalian dihitung KRr**  
Kembalikan yang dihitung KRr ke node2. Node itu akan membandingkannya dengan nilai yang dihitung dari langkah 1.

**2. Langkah-langkah untuk memvalidasi kunci kedua**

**2.1 Menghasilkan KRr dan KRs**  
Node Anda akan menghasilkan nilai acak dan salinan terbalik (terbalik) dari nilai ini menggunakan Kriptografi AWS Pembayaran. Layanan akan menampilkan kedua nilai ini yang dibungkus oleh KEK (s). Ini dikenal sebagai KR (s) dan KR (r).  

**Example**  

```
cat >> generate-kek-validation-request.json 
{
    "KekValidationType": {
        "KekValidationRequest": {
            "DeriveKeyAlgorithm": "TDES_2KEY"
        }
    },
"RandomKeySendVariantMask": "VARIANT_MASK_82",
    "KeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/rhfm6tenpxapkmrv"
}
```

```
$ aws payment-cryptography-data generate-as2805-kek-validation --cli-input-json file://generate-kek-validation-request.json
```

```
{
 "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/rhfm6tenpxapkmrv",
 "KeyCheckValue": "DC1081",
 "RandomKeyReceive": "A4B7E249C40C98178C1B856DB7FB76EB",
 "RandomKeySend": "9217DC67B8763BABCFDF3DADFCD0F84A"
}
```

**2.2 Kirim KRs ke node2**  
Kirim KRs ke node2. Simpan KRr untuk validasi nanti.

**2.3 Node2 menghasilkan respons validasi KEK**  
Node2 menggunakan KEKr dan KRs, menghasilkan KRr dan mengirimkannya kembali ke layanan Anda.

**2.4 Validasi tanggapan**  
Bandingkan KRr dari langkah 1 dan nilai yang dikembalikan dari langkah 3. Jika cocok, lanjutkan.

# Pembuatan dan transmisi kunci kerja
<a name="as2805.workingkeys.create"></a>

Tombol kerja khas yang digunakan dalam AS28 05 mencakup dua set kunci:

Kunci antara node seperti: kunci pin zona (ZPK), kunci enkripsi zona (ZEK) dan kunci otentikasi zona (ZAK).

Kunci antara terminal dan node seperti: kunci utama terminal (TMK) dan kunci pin terminal (TPK) jika tidak menggunakan DUKPT.

**catatan**  
Kami merekomendasikan meminimalkan kunci per kunci terminal dan memanfaatkan teknik seperti TR-34 dan DUKPT bila memungkinkan yang menggunakan jumlah kunci yang lebih kecil.

**Example**  
Dalam contoh ini, kami telah menggunakan tag opsional untuk melacak tujuan dan penggunaan kunci ini. Tag tidak digunakan sebagai bagian dari fungsi kriptografi sistem tetapi dapat digunakan untuk kategorisasi, pelacakan keuangan dan dapat digunakan untuk menerapkan kebijakan IAM.  

```
cat >> create-zone-pin-key.json 
{
    "KeyAttributes": {
        "KeyUsage": "TR31_P0_PIN_ENCRYPTION_KEY",
        "KeyClass": "SYMMETRIC_KEY",
        "KeyAlgorithm": "TDES_2KEY",
        "KeyModesOfUse": {
            "Encrypt": true,
            "Decrypt": true,
            "Wrap": true,
            "Unwrap": true,
            "Generate": false,
            "Sign": false,
            "Verify": false,
            "DeriveKey": false,
            "NoRestrictions": false
        }
    },
    "KeyCheckValueAlgorithm": "ANSI_X9_24",
    "Exportable": true,
    "Enabled": true,
    "Tags": [
        {
            "Key": "AS2805_KEYTYPE",
            "Value": "ZONE_PIN_KEY_VARIANT28"
        }
    ]
}
```

```
$ aws payment-cryptography-data create-key --cli-input-json file://create-zone-pin-key.json --region ap-southeast-2
```

```
{
 "Key": {
 "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/alsuwfxug3pgy6xh",
 "KeyAttributes": {
 "KeyUsage": "TR31_P0_PIN_ENCRYPTION_KEY",
 "KeyClass": "SYMMETRIC_KEY",
 "KeyAlgorithm": "TDES_2KEY",
 "KeyModesOfUse": {
 "Encrypt": true,
 "Decrypt": true,
 "Wrap": true,
 "Unwrap": true,
 "Generate": false,
 "Sign": false,
 "Verify": false,
 "DeriveKey": false,
 "NoRestrictions": false
 }
 },
 "KeyCheckValue": "9A325B",
 "KeyCheckValueAlgorithm": "ANSI_X9_24",
 "Enabled": true,
 "Exportable": true,
 "KeyState": "CREATE_COMPLETE",
 "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
 "CreateTimestamp": "2025-12-17T09:05:27.586000-08:00",
 "UsageStartTimestamp": "2025-12-17T09:05:27.570000-08:00"
 }
}
```

# Mengekspor kunci kerja
<a name="as2805.workingkeys.export"></a>

Untuk menjaga kompatibilitas dengan pihak lain, AWS Payment Cryptography mendukung AS28 05 teknik pembungkus kunci simetris yang menggunakan varian kunci alih-alih keyblocks seperti TR-31. Jika beberapa kunci dibagi antar pihak, masing-masing harus diekspor satu per satu. Jika data dikirim dua arah, mungkin ada dua kunci antara pihak-pihak dari jenis yang sama seperti ZAK (s) dan ZAK (r) yang digunakan oleh masing-masing pihak untuk menghasilkan kode otentikasi pesan. 

Parameter tambahan untuk mengimpor dan mengekspor dalam format ini ditentukan pada perintah.

```
cat >> export-zone-pin-key.json 
{
    "ExportKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/alsuwfxug3pgy6xh",
    "KeyMaterial": {
        "As2805KeyCryptogram": {
            "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/rhfm6tenpxapkmrv",
            "As2805KeyVariant: "PIN_ENCRYPTION_KEY_VARIANT_28"
        }
    }
}
```

```
$ aws payment-cryptography-data export-key --cli-input-json file://export-zone-pin-key.json --region ap-southeast-2
```

```
{
    "WrappedKey": {
        "KeyCheckValue": "DC1081",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "KeyMaterial": "HDC10AEF038E695DDD72AF08DC1BB422D",
        "WrappedKeyMaterialFormat": "KEY_CRYPTOGRAM",
        "WrappingKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/rhfm6tenpxapkmrv"
    }
}
```

# Terjemahan Pin
<a name="as2805.pintranslation"></a>

AS2805 menjelaskan mode derivasi kunci khusus sesi di bagian 6.4. Ini melayani tujuan yang sama seperti DUKPT dan salah satu algoritma dapat digunakan sebagai DUKPT tercakup dalam bagian 6.7. Dalam skema ini, kunci pin sesi (dikenal sebagai KPE) berasal dari Terminal Pin Key menggunakan SystemTraceAuditNumber (STAN) dan TransactionAmount sebagai data derivasi.

Translate pin adalah fungsi umum yang dapat menerjemahkan to/from berbagai format. Dalam contoh ini, kami menerjemahkan pin dari KPE ke kunci enkripsi pin (PEK) seperti saat mengirim pin ke jaringan pembayaran.

```
cat >> translate-pin-as2805.json 
{
    "EncryptedPinBlock": "B3B34B43BAB5F81A",
    "IncomingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
    "IncomingTranslationAttributes": {
        "IsoFormat0": {
            "PrimaryAccountNumber": "9999179999900013"
        }
    },
      "IncomingAs2805Attributes": {
        "SystemTraceAuditNumber": "000348",
        "TransactionAmount": "000000000328"
    },
    "OutgoingKeyIdentifier": "",
    "OutgoingTranslationAttributes": {    
        "IsoFormat0": {
            "PrimaryAccountNumber": "9999179999900013"
        }
    }
}
```

```
$ aws payment-cryptography-data translate-pin-data --cli-input-json file://translate-pin-as2805.json  --region ap-southeast-2
```

```
{
    "WrappedKey": {
        "KeyCheckValue": "DC1081",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "KeyMaterial": "HDC10AEF038E695DDD72AF08DC1BB422D",
        "WrappedKeyMaterialFormat": "KEY_CRYPTOGRAM",
        "WrappingKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/rhfm6tenpxapkmrv"
    }
}
```

# Generasi dan Validasi Mac
<a name="as2805.mac"></a>

Menghasilkan dan memverifikasi perintah MAC mendukung berbagai MACs termasuk HMAC, CMAC, EMV MAC, dll. Untuk AS28 05, ada variasi tambahan yang didefinisikan dalam AS28 05.4.1. Biasanya di AS28 05, pesan masuk diverifikasi menggunakan MAC ini dan pesan keluar termasuk MAC juga. 

```
cat verify-mac.json 
{
    "KeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6",
    "Mac": "86304058",
    "MessageData": "73D8BA54D3852951DAEA41",
    "VerificationAttributes": {
        "Algorithm": "AS2805_4_1"
    }
}
```

```
$ aws payment-cryptography-data verify-mac --cli-input-json file://verify-mac.json --region ap-southeast-2
```

```
{
    "KeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6",
    "KeyCheckValue": "2976E7"
}
```