全部产品
Search
文档中心

Edge Security Acceleration:Penandatanganan Tipe B

更新时间:Aug 19, 2025

Alibaba Cloud menyediakan fitur penandatanganan URL untuk melindungi server asal dari unduhan dan akses yang tidak sah. Dynamic Content Delivery Network (DCDN) mendukung empat jenis penandatanganan URL. Topik ini menjelaskan cara kerja penandatanganan tipe B.

Cara Kerjanya

  • Cara sebuah URL ditandatangani berdasarkan penandatanganan tipe B

    http://NamaDomain/{<timestamp>/<md5hash>}/NamaFile
    Catatan

    Konten dalam kurung kurawal ({}) menunjukkan informasi terenkripsi yang ditambahkan ke URL standar.

    Bidang dalam URL yang Ditandatangani

    Bidang

    Deskripsi

    NamaDomain

    Nama domain yang dipercepat.

    timestamp

    Waktu ketika URL yang ditandatangani dibuat. Timestamp dan nilai TTL menentukan kapan URL yang ditandatangani kedaluwarsa. Waktu dalam UTC+8 dan mengikuti format yyyyMMddHHmm.

    Catatan

    Dalam sebagian besar kasus, periode validitas URL yang ditandatangani sama dengan nilai parameter TTL. Dalam beberapa kasus, server penandatanganan juga memberikan nilai TTL pada URL yang ditandatangani. Timestamp = UNIX timestamp + TTL. Periode validitas URL yang ditandatangani = Timestamp + TTL yang dikonfigurasikan pada DCDN.

    md5hash

    String yang dihitung menggunakan algoritma MD5. String tersebut harus memiliki panjang 32 karakter, dan dapat berisi angka serta huruf kecil.

    Nilai md5hash dihitung menggunakan metode berikut:

    sstring = "Privatekey+timestamp+Path" (Path menentukan alamat yang menunjuk ke sumber daya yang diminta. Path tidak mencakup parameter seperti /NamaFile.)
    md5hash = md5sum(sstring)

    NamaFile

    Alamat sebenarnya yang menunjuk ke sumber daya yang diminta di server asal. Nilai bidang NamaFile harus dimulai dengan garis miring (/).

  • Logika Otentikasi

    Ketika Point of Presence (POP) menerima permintaan, POP memeriksa apakah waktu yang dihitung dengan menambahkan nilai timestamp dan TTL dalam permintaan lebih awal dari waktu saat ini.

    • Jika waktu yang dihitung dengan menambahkan nilai timestamp dan TTL dalam permintaan lebih awal daripada waktu saat ini, POP akan menentukan bahwa URL permintaan telah kedaluwarsa dan mengembalikan kesalahan 403.

    • Jika waktu yang dihitung dengan menambahkan nilai timestamp dan TTL dalam permintaan lebih lambat daripada waktu saat ini, sebuah string akan dihasilkan. Selanjutnya, nilai md5hash dihasilkan menggunakan algoritma MD5. Nilai md5hash yang dihasilkan kemudian dibandingkan dengan nilai md5hash dalam permintaan.

      • Jika nilainya sama, permintaan lolos otentikasi. POP mengembalikan sumber daya yang diminta.

        Catatan

        Jika permintaan lolos otentikasi, parameter penandatanganan URL dihapus dari URL untuk meningkatkan rasio hit cache dan mengurangi lalu lintas kembali ke asal.

        • Format URL yang digunakan untuk menghasilkan kunci cache adalah http://NamaDomain/NamaFile.

        • Format URL dalam permintaan asal adalah http://NamaDomain/NamaFile.

      • Jika kedua nilai berbeda, permintaan gagal otentikasi. POP mengembalikan kode status HTTP 403.

Contoh

Contoh berikut menunjukkan implementasi penandatanganan tipe B.

  • Kondisi sampel

    • Mengambil objek dari server asal:

      http://domain.example.com/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3
      Catatan

      Jika URL objek yang diminta berisi karakter Cina, Anda perlu mengkodekan URL sebelum menggabungkan URL yang ditandatangani.

      • URL Asli: https://example.com/image/阿里云.jpg

      • URL Terkode: https://example.com/image/%E9%98%BF%E9%87%8C%E4%BA%91.jpg

    • Situs web yang dipercepat oleh CDN (NamaDomain): domain.example.com.

    • Waktu (timestamp): 201508150800.

    • Kunci pribadi (Privatekey): aliyuncdnexp1234.

    • Alamat relatif yang diminta pengguna (Path): /4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3.

    • Alamat sebenarnya yang menunjuk ke sumber daya yang diminta di server asal (NamaFile): /4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3.

  • Prosedur Penggabungan

    1. Hasilkan string tanda tangan.

      // sstring="Privatekey+timestamp+Path"
      sstring=aliyuncdnexp1234201508150800/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3
    2. Hitung nilai md5hash.

      // md5hash = md5sum(sstring)
      md5hash = md5sum("aliyuncdnexp1234201508150800/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3") = 9044548ef1527deadafa49a890a377f0
    3. Hasilkan URL yang ditandatangani.

      // Signed URL=http://NamaDomain/{<timestamp>/<md5hash>}/NamaFile
      http://domain.example.com/201508150800/9044548ef1527deadafa49a890a377f0/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3

Jika klien menggunakan URL yang ditandatangani untuk meminta sumber daya, POP membandingkan nilai md5hash yang dihitung dengan nilai md5hash dalam permintaan. Jika nilainya sama, seperti 9044548ef1527deadafa49a890a377f0, dan URL yang ditandatangani berada dalam periode validitas, permintaan lolos otentikasi. Jika tidak, otentikasi gagal.