---
url: 'https://www.corbado.com/id/glossary/attestation'
title: 'Atestasi'
description: 'Pelajari lebih lanjut tentang atestasi di WebAuthn / passkey dan temukan relevansinya dalam autentikasi pengguna, beserta hubungannya dengan layanan metadata FIDO.'
lang: 'id'
keywords: 'atestasi'
---

# Atestasi

## Apa itu Atestasi?

**Atestasi** dapat merujuk pada tiga hal (seringkali dalam bahasa lisan, istilah-istilah
ini digunakan secara bergantian meskipun memiliki arti yang berbeda jika dipahami secara
tepat):

1. Pertama dan secara lebih umum, [atestasi](https://www.corbado.com/id/glossary/ctap) dalam dunia kriptografi
   adalah istilah di mana satu pihak "menyatakan" secara kriptografis sebuah pernyataan
   kepada pihak lain.

2. Kedua, selama fase pendaftaran di WebAuthn, sebuah **objek atestasi** dibuat oleh
   autentikator dan dikembalikan ke [Relying Party](https://www.corbado.com/glossary/relying-party). Ini adalah
   objek wadah yang berisi informasi berikut:
    - [format pernyataan atestasi (`fmt`)](https://www.iana.org/assignments/webauthn/webauthn.xhtml)
    - pernyataan [atestasi](https://www.corbado.com/id/glossary/ctap) (`attStmt` - lihat di bawah)
    - data autentikator (`authData`)

3. Ketiga, dalam WebAuthn, sebuah **pernyataan atestasi** adalah elemen opsional dari
   objek [atestasi](https://www.corbado.com/id/glossary/ctap). Pernyataan ini, ketika disertakan, memverifikasi
   karakteristik tertentu dari autentikator (perangkat) yang terlibat dalam proses
   atestasi. Namun, beberapa produsen perangkat (misalnya
   [Apple](https://www.corbado.com/id/blog/cara-menghapus-kunci-sandi-apple-windows-android)) tidak menawarkan
   pernyataan atestasi karena aspek spesifikasi ini tidak dimaksudkan untuk sinkronisasi
   passkey dan gagal memverifikasi atribut keamanan secara efektif ketika kredensial dapat
   disinkronkan di berbagai perangkat (misalnya,
   [passkey dibuat](https://www.corbado.com/id/faq/bagaimana-passkey-dibuat) di iPhone tetapi juga digunakan di
   MacBook karena disinkronkan melalui [iCloud Keychain](https://www.corbado.com/glossary/icloud-keychain) yang
   sama). Karakteristik yang dapat diberikan ketika pernyataan atestasi disediakan:
    - Menawarkan bukti bahwa perangkat yang asli dan tepercaya digunakan selama
      [autentikasi](https://www.corbado.com/id/blog/cara-menjadi-sepenuhnya-tanpa-password).
    - Memberikan detail tentang asal, model, dan informasi relevan lainnya dari perangkat.
    - Meningkatkan langkah-langkah keamanan, terutama dalam skenario di mana kepercayaan
      perangkat sangat penting (misalnya, industri yang diatur tertentu seperti
      [layanan kesehatan](https://www.corbado.com/passkeys-for-healthcare)).

Alur proses Pendaftaran berikut menunjukkan peran atestasi (objek) dalam WebAuthn:

![Objek atestasi adalah bagian sentral dari Pendaftaran di WebAuthn](https://www.corbado.com/website-assets/cs_1_1_registration_flow_e44a658ca7.png)

### Contoh objek atestasi

```json
{
    "root": {
        "id": "QFPlQVypLmmx71e0tmS3IfCFky0",
        "rawId": "QFPlQVypLmmx71e0tmS3IfCFky0",
        "response": {
            "attestationObject": {
                "fmt": "none",
                "attStmt": {},
                "authData": {
                    "rpIdHash": "t8DGRTBfls-BhOH2QC404lvdhe_t2_NkvM0nQWEEADc",
                    "flags": {
                        "userPresent": true,
                        "userVerified": true,
                        "backupEligible": true,
                        "backupStatus": true,
                        "attestedData": true,
                        "extensionData": false
                    },
                    "counter": 0,
                    "aaguid": "00000000-0000-0000-0000-000000000000",
                    "credentialID": "QFPlQVypLmmx71eOtmS3IfCFky0",
                    "credentialPublicKey": "pQECAyYgASFYIEa-lpSiQ4P...",
                    "parsedCredentialPublicKey": {
                        "keyType": "EC2 (2)",
                        "algorithm": "ES256 (-7)",
                        "curve": 1,
                        "x": "Rr6WlKJDg8MlbIq9mmHQzk2p2c_s7QoNKr7yMa7I8pM",
                        "y": "tAELYp7h3sYNjZZIZgHPYiaSzF×QVT18cgZ_7wm13Vw"
                    }
                }
            },
            "clientDataJSON": {
                "type": "webauthn.create",
                "challenge": "AAABeB78HrIemh1jTdJICr_3QG_RMOhp",
                "origin": "https://passkeys.eu",
                "crossOrigin": false
            },
            "transports": ["hybrid", "internal"],
            "publicKeyAlgorithm": -7
        },
        "authenticatorAttachment": "cross-platform"
    }
}
```

Pada tangkapan layar di atas, tidak ada [AAGUID](https://www.corbado.com/glossary/aaguid) dan tidak ada
pernyataan atestasi yang diberikan.

Lanjutkan membaca untuk rincian teknis dari atribut yang paling penting.

## Poin-Poin Penting

> - Atestasi mengacu pada proses satu pihak secara kriptografis menyatakan sebuah pernyataan
>   kepada pihak lain.
> - Objek atestasi di WebAuthn dibuat oleh autentikator dan diteruskan selama Pendaftaran.
>   Ini berisi antara lain [AAGUID](https://www.corbado.com/glossary/aaguid), ID kredensial dan kunci publik.
> - Pernyataan atestasi di WebAuthn adalah bidang opsional dalam objek atestasi yang
>   memastikan bahwa perangkat asli digunakan untuk
>   [autentikasi](https://www.corbado.com/id/blog/cara-menjadi-sepenuhnya-tanpa-password).

---

### Memahami Esensi Atestasi

Dalam [WebAuthn](https://www.corbado.com/webauthn), atestasi memastikan bahwa
[autentikasi](https://www.corbado.com/id/blog/cara-menjadi-sepenuhnya-tanpa-password) pengguna aman dan
transparan. Dengan pernyataan atestasi, Anda dapat memastikan bahwa kredensial dibuat pada
autentikator / perangkat tertentu.

### Jenis-jenis Atestasi:

Jenis-jenis atestasi ini mengacu pada **pernyataan atestasi** (bukan objek atestasi). Ini
dianggap sebagai preferensi oleh [relying party](https://www.corbado.com/glossary/relying-party) (sehingga
autentikator dapat berperilaku berbeda karena ini hanya preferensi).

- **Tanpa Atestasi (`none`)**: Untuk kasus di mana privasi menjadi perhatian utama atau
  perangkat yang disinkronkan digunakan, jenis ini tidak memberikan informasi tentang
  perangkat, memastikan privasi pengguna tetap terjaga. Alasan lain untuk menggunakan
  nilai ini mungkin untuk menghemat perjalanan bolak-balik ke otoritas sertifikat (CA).
  `none` juga merupakan nilai default.
- **Atestasi Tidak Langsung (`indirect`)**: [Relying party](https://www.corbado.com/glossary/relying-party) lebih
  suka mendapatkan atestasi tetapi memungkinkan klien untuk memutuskan cara mendapatkan
  pernyataan atestasi. Klien dapat mengganti pernyataan atestasi yang dihasilkan
  autentikator dengan pernyataan atestasi anonim untuk melindungi privasi pengguna.
- **Atestasi Langsung (`direct`)**: Ini adalah bentuk yang paling transparan. Di sini,
  relying party memberitahu autentikator bahwa ia menginginkan pernyataan atestasi,
  sehingga relying party mendapatkan informasi rinci tentang perangkat, termasuk merek,
  model, dan spesifik lainnya. Meskipun menawarkan transparansi tertinggi, ini dapat
  menimbulkan kekhawatiran privasi dalam skenario tertentu atau mungkin tidak benar-benar
  dapat digunakan untuk kredensial yang disinkronkan.
- **Atestasi Perusahaan (`enterprise`)**: Relying party ingin menerima pernyataan atestasi
  yang dapat mencakup informasi identifikasi unik. Jenis atestasi ini biasanya digunakan
  dalam bisnis atau organisasi yang ingin melacak perangkat / autentikator tertentu. Agen
  pengguna (browser web) tidak boleh memberikan atestasi rinci ini kecuali pengaturannya
  mengizinkannya secara khusus untuk pihak yang meminta. Jika pengaturan mengizinkannya,
  browser harus memberitahu perangkat saat dibutuhkan (di awal proses) bahwa jenis
  atestasi spesifik ini sedang diminta. Browser kemudian harus meneruskan ID unik
  perangkat dan bukti atestasi persis seperti yang diterimanya kepada relying party.

### Atribut objek atestasi

**Objek atestasi** berisi banyak atribut, berikut adalah penjelasan singkat dari beberapa
atribut yang dipilih:

#### attestationObject

```json
"attestationObject": {
        "fmt": "none",
        "attStmt": {},
        "authData": {
          "rpIdHash": "t8DGRTBfls-BhOH2QC404lvdhe_t2_NkvM0nQWEEADc",
          "flags": {
            "userPresent": true,
            "userVerified": true,
            "backupEligible": true,
            "backupStatus": true,
            "attestedData": true,
            "extensionData": false
          },
          "counter": 0,
          "aaguid": "00000000-0000-0000-0000-000000000000",
          "credentialID": "QFPlQVypLmmx71eOtmS3IfCFky0",
          "credentialPublicKey": "pQECAyYgASFYIEa-lpSiQ4P...",
          "parsedCredentialPublicKey": {
            "keyType": "EC2 (2)",
            "algorithm": "ES256 (-7)",
            "curve": 1,
            "x": "Rr6WlKJDg8MlbIq9mmHQzk2p2c_s7QoNKr7yMa7I8pM",
            "y": "tAELYp7h3sYNjZZIZgHPYiaSzF×QVT18cgZ_7wm13Vw"
          }
        }
```

**attestationObject** adalah objek yang dikodekan [CBOR](https://www.corbado.com/glossary/cbor), berisi informasi
tentang kredensial yang baru dibuat, kunci publik, dan data relevan lainnya:

- **fmt** mewakili format atestasi, karena autentikator dapat memberikan data atestasi
  dengan cara yang berbeda. Ini memberitahu server bagaimana server harus memvalidasi data
  atestasi. Nilai yang diizinkan adalah "packed", "tpm",
  "[android](https://www.corbado.com/blog/how-to-enable-passkeys-android)-key",
  "[android](https://www.corbado.com/blog/how-to-enable-passkeys-android)-safetynet", "fido-u2f",
  "[apple](https://www.corbado.com/id/blog/cara-menghapus-kunci-sandi-apple-windows-android)" atau "none". Lihat
  detail [di sini](https://www.iana.org/assignments/webauthn/webauthn.xhtml)
- **attStmt** adalah pernyataan atestasi. Untuk passkey, misalnya di perangkat
  [iOS](https://www.corbado.com/blog/how-to-enable-passkeys-ios) atau
  [Android](https://www.corbado.com/blog/how-to-enable-passkeys-android), ini dibiarkan kosong karena passkey di
  [iOS](https://www.corbado.com/blog/how-to-enable-passkeys-ios) atau Android dapat disinkronkan, dan diisi untuk
  perangkat lain seperti di
  [Windows](https://www.corbado.com/id/blog/cara-menghapus-kunci-sandi-apple-windows-android) atau
  [kunci keamanan perangkat keras](https://www.corbado.com/id/blog/kunci-keamanan-perangkat-keras-fido2-terbaik).
- **authData** adalah buffer nilai yang berisi data berikut:
  ![authData berisi data seperti Hash rpId atau flag penting](https://www.corbado.com/website-assets/cs_2_3_auth_Data_32c5cbba19.png)
  [Data kredensial yang diates](https://www.w3.org/TR/webauthn-2/#attested-credential-data)
  memainkan peran penting di sini. Ini berisi:
    - [AAGUID](https://www.corbado.com/glossary/aaguid),
    - Panjang ID Kredensial,
    - ID Kredensial dan
    - Kunci publik Kredensial.

#### attStmt (pernyataan atestasi)

Berbeda dengan objek atestasi di atas di mana `attStmt` dibiarkan kosong untuk alasan
keterbacaan, inilah tampilan pernyataan atestasi yang terisi.

```json
{
    "alg": -65535,
    "sig": "MBHX7qov53SWqqPYCrxE5fcoAeDI83a0DzVJ2-N1KI6IAaCGGvINAIFzTEn44F6giANKte-8yEMDZbvbgDG1weaRj7SqsVaTty-TEQ",
    "ver": "2.0",
    "x5c": [
        "MIIFwDCCA6oIaK6tZ7M",
        "MIIG6zCCBNpG18-MCJrHyrpMT-ul7RgxE4dFxqcG59ftTXqJ1f-X_Lpo7K-d7OgKoQrUgzxgATz8YXtFAk3rE1cHXvW9W52V637eAihKn9-UKC0ijzVXrBGX4Iq1o1M0ZfR-tFoOn498xasMCTnharKiM562GBLVJtlvV3DMSLEBl5SfuGM-qYjQgTQknXccks9guCmNaN_b2fo1DisbufXfjM3DVaMqx7IJpSc3wAnxooMrAYGpPM"
    ],
    "pubArea": "AAEACwAw_c3Ousz865mUPx8O3w",
    "certInfo": "_1RDR4AXAniCekfsiDI"
}
```

- `alg`: Properti alg menunjukkan pengidentifikasi algoritma kriptografi yang digunakan
  oleh autentikator untuk menandatangani pernyataan atestasi.
- `sig`: Properti sig berisi tanda tangan digital yang dihasilkan oleh autentikator. Tanda
  tangan ini digunakan untuk memverifikasi keaslian pernyataan atestasi.
- `ver`: Properti ver menentukan versi format pernyataan atestasi.
- `x5c`: Array x5c berisi satu atau lebih sertifikat X.509 yang membentuk jalur
  sertifikasi, yang membantu dalam memvalidasi atestasi.
- `pubArea`: Properti pubArea berisi informasi rinci tentang kunci publik dan
  karakteristik autentikator.
- `certInfo`: Properti certInfo biasanya mencakup informasi tentang sertifikasi
  autentikator oleh pihak tepercaya.

#### clientDataJSON

```json
"clientDataJSON": {
        "type": "webauthn.create",
        "challenge": "AAABeB78HrIemh1jTdJICr_3QG_RMOhp",
        "origin": "https://www.passkeys-debugger.io",
        "crossOrigin": false
      }
```

Baca lebih lanjut tentang `clientDataJSON` di artikel glosarium terkait.

#### transports

```json
"transports": [
        "hybrid",
        "internal"
      ]
```

Properti **transports** menunjukkan mekanisme di mana autentikator dapat berkomunikasi
dengan klien. Beberapa kombinasi nilai sampel yang umum adalah:

- `"transports": ["internal","hybrid"]`: Passkey dapat digunakan dari autentikator
  platform (misalnya [Face ID](https://www.corbado.com/faq/is-face-id-passkey), Touch ID,
  [Windows Hello](https://www.corbado.com/glossary/windows-hello)) atau melalui
  [autentikasi lintas perangkat](https://www.corbado.com/id/glossary/cda) (menggunakan
  [kode QR](https://www.corbado.com/id/blog/kode-qr-login-autentikasi) & Bluetooth).
- `"transports": ["internal"]`: Passkey dapat digunakan dari autentikator platform
  (misalnya [Face ID](https://www.corbado.com/faq/is-face-id-passkey), Touch ID,
  [Windows Hello](https://www.corbado.com/glossary/windows-hello))
- Tidak ada properti `transports` yang diatur: perilaku default yang tidak memberikan
  indikasi apa pun.

---

## FAQ Atestasi

### Mengapa atestasi sangat penting dalam WebAuthn?

Atestasi (pernyataan atestasi) dalam WebAuthn penting karena menawarkan bukti keaslian
sebuah autentikator. Ini memastikan bahwa proses autentikasi dilakukan oleh perangkat
tepercaya, sehingga melindungi dari potensi ancaman keamanan.

### Apakah pengenalan passkey mengubah peran atestasi?

Ya, karena passkey dapat disinkronkan di seluruh perangkat (misalnya dari iPhone ke
MacBook melalui Keychain), relying party tidak dapat lagi benar-benar menentukan perangkat
mana yang diates yang benar-benar masuk ke aplikasi atau situs web. Oleh karena itu,
[Apple](https://www.corbado.com/id/blog/cara-menghapus-kunci-sandi-apple-windows-android) dan Google memutuskan
bahwa untuk passkey yang disinkronkan, mereka tidak akan lagi memberikan pernyataan
atestasi. Namun, untuk meningkatkan UX bagi relying party dan memberi mereka kesempatan
untuk mengenali dan menampilkan passkey dari ekosistem Apple dan Google (iCloud Keychain
dan Pengelola Sandi Google), AAGUID akan tetap diberikan (selama atestasi diatur ke
`direct` atau `indirect` dalam pengaturan server WebAuthn untuk
`PublicKeyCredentialCreationOptions`. Lihat
[isu GitHub ini](https://github.com/w3c/webauthn/issues/1962) untuk detailnya.

### Apa pengaturan preferensi atestasi yang direkomendasikan untuk passkey?

Jika Anda ingin mengintegrasikan
[autentikasi passkey](https://www.corbado.com/id/blog/penyedia-autentikasi-passkey-hemat-biaya) di situs web dan
aplikasi Anda, dan ingin menawarkan UX passkey yang hebat kepada pengguna Anda, Anda harus
mempertimbangkan hal berikut. Kami berasumsi Anda membangun solusi Anda terutama untuk
skenario di mana sebagian besar pengguna Anda menggunakan sistem operasi
[Windows](https://www.corbado.com/id/blog/cara-menghapus-kunci-sandi-apple-windows-android),
[iOS](https://www.corbado.com/blog/how-to-enable-passkeys-ios), macOS, atau Android. Selain itu, kami berasumsi
bahwa sebagian besar passkey (selain dari
[Windows](https://www.corbado.com/id/blog/cara-menghapus-kunci-sandi-apple-windows-android)) adalah passkey yang
disinkronkan. Karena baik iOS, macOS, maupun Android tidak lagi mengirimkan pernyataan
atestasi, validasi nyata dari sebuah autentikator tidak lagi digunakan (untuk Windows ini
masih berfungsi, mungkin karena Windows belum menawarkan passkey yang disinkronkan melalui
[Windows Hello](https://www.corbado.com/glossary/windows-hello)). Namun, untuk mendapatkan AAGUID, misalnya untuk
manajemen passkey yang lebih baik di pengaturan akun, kami merekomendasikan untuk mengatur
preferensi atestasi ke `indirect`, karena ini masih memungkinkan untuk mendapatkan AAGUID
sementara pernyataan atestasi dikirim (Windows) atau tidak dikirim (iOS, macOS, Android).

### Apa hubungan antara atestasi dan layanan metadata FIDO?

Layanan metadata FIDO menyediakan repositori metadata untuk berbagai autentikator. Selama
atestasi, layanan ini dapat dikueri untuk mengambil dan memvalidasi detail tentang
autentikator, memastikan akurasi dan meningkatkan kepercayaan proses. Layanan metadata
FIDO memeriksa pernyataan atestasi (bukan objek atestasi).

### Apakah ada kekhawatiran privasi dengan atestasi langsung?

Ya, atestasi langsung (dalam pernyataan atestasi), meskipun menawarkan transparansi
tertinggi dengan memberikan informasi rinci tentang perangkat, dapat menimbulkan
kekhawatiran privasi dalam skenario tertentu. Sangat penting untuk menilai kebutuhan akan
transparansi versus privasi saat memilih jenis atestasi.

### Bagaimana WebAuthn memastikan privasi pengguna selama atestasi?

[WebAuthn](https://www.corbado.com/webauthn) menawarkan berbagai jenis preferensi atestasi
– tanpa, tidak langsung, langsung, dan perusahaan. Untuk skenario di mana privasi pengguna
penting, `attestation=none` dapat digunakan, yang tidak memberikan detail tentang
perangkat, memastikan privasi pengguna tetap terlindungi.
