it-swarm-id.com

Apa artinya sertifikat digital "ditandatangani"?

Ketika seseorang mengatakan bahwa sertifikat digital tertentu (seperti sertifikat SSL) telah "ditandatangani dengan kunci", apa implikasinya? Apakah itu berarti sertifikat hanya mencakup kunci yang harus digunakan untuk pertukaran pesan lebih lanjut? Apakah itu berarti bahwa sertifikat itu sendiri dienkripsi dan hanya dapat didekripsi dengan kunci itu? Apakah ini menyiratkan sesuatu yang lain? Terima kasih sebelumnya.

25
zharvey

Idealnya, itu berarti seseorang melihat sertifikat dan memutuskan bahwa itu benar dan sah. Setelah mereka selesai melakukannya, mereka ingin memberi tahu orang-orang "Hei, saya telah memverifikasi bahwa sertifikat ini baik. Saya percaya itu". Untuk melakukan ini, mereka menggunakan kunci penandatanganan mereka untuk menandatangani sertifikat.

Sekarang ketika seseorang mendapatkan sertifikat mereka dapat melihat siapa yang menandatangani sertifikat. Jika mereka mempercayai salah satu penandatangan, mereka dapat mempercayai sertifikat itu sendiri. Ini adalah dasar Web Of Trust di PKI .

Penandatanganan yang sebenarnya mungkin tergantung pada jenis sertifikat apa itu. Saya pikir ini adalah bacaan yang bermanfaat .

Sertifikat digital terdiri dari tiga hal:

  • Kunci publik.
  • Informasi sertifikat. ("Identitas" informasi tentang pengguna, seperti nama, ID pengguna, dan sebagainya.)
  • Satu atau lebih tanda tangan digital.

Biasanya bagian "satu dari lebih tanda tangan digital" dilakukan dengan mendaftar satu set hash terenkripsi dari sertifikat. Jadi ketika Anda ingin menandatangani sertifikat, Anda akan menghitung hash sertifikat, mengenkripsi dengan menggunakan kunci tanda tangan pribadi Anda, dan menambahkannya ke daftar tanda tangan digital.

23
Oleksi

Berikut adalah struktur (sertifikat X.509 :

    Certificate  ::=  SEQUENCE  {
        tbsCertificate       TBSCertificate,
        signatureAlgorithm   AlgorithmIdentifier,
        signatureValue       BIT STRING  }

   TBSCertificate  ::=  SEQUENCE  {
        version         [0]  EXPLICIT Version DEFAULT v1,
        serialNumber         CertificateSerialNumber,
        signature            AlgorithmIdentifier,
        issuer               Name,
        validity             Validity,
        subject              Name,
        subjectPublicKeyInfo SubjectPublicKeyInfo,
        issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                             -- If present, version MUST be v2 or v3
        subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,
                             -- If present, version MUST be v2 or v3
        extensions      [3]  EXPLICIT Extensions OPTIONAL
                             -- If present, version MUST be v3
        }

Data yang terkandung dalam sertifikat itu sendiri adalah bagian TBSCertificate: ia mengikat kunci publik (subjectPublicKeyInfo) ke pengidentifikasi (subjek), dan berbagai ekstensi atribut lainnya).

Ini kemudian dikombinasikan dengan tanda tangan untuk membentuk struktur Certificate. Algoritme tanda tangan menentukan bagaimana ini harus dilakukan.

Intinya, intisari TBSCertificate (biasanya SHA-1) dihitung dan kemudian ditandatangani dengan kunci pribadi penandatangan (penerbit dalam ketentuan X.509). Modifikasi sedikit pun dari konten TBSCertificate harus membuat intisari perubahan, yang pada gilirannya akan membatalkan tanda tangan.

Menggunakan kunci RSA, penandatanganan intisari menggunakan kunci privat secara matematis sangat mirip dengan apa yang akan dilakukan untuk enkripsi menggunakan kunci publik. Ini tidak sama secara konseptual, meskipun, dan DSA tidak memiliki timbal balik itu, misalnya.

Prinsipnya sama untuk jenis sertifikat lainnya, walaupun strukturnya mungkin berbeda. Mempertimbangkan bahwa kunci publik PGP sebenarnya adalah sertifikat, Anda mungkin tertarik pada pertanyaan ini juga:

9
Bruno

Ketika seseorang mengatakan bahwa sertifikat digital tertentu (seperti sertifikat SSL) telah "ditandatangani dengan kunci", apa implikasinya?

Ini menyiratkan bahwa entitas yang memiliki kunci telah menjamin keakuratan informasi dalam sertifikat dan telah melampirkan informasi pada sertifikat yang memungkinkan verifikasi tersebut diverifikasi.

Apakah itu berarti sertifikat hanya mencakup kunci yang harus digunakan untuk pertukaran pesan lebih lanjut?

Tidak. Sertifikat hanya membuktikan identitas.

Apakah itu berarti bahwa sertifikat itu sendiri dienkripsi dan hanya dapat didekripsi dengan kunci itu?

Tidak. Tidak ada alasan untuk mengenkripsi sertifikat, hanya berisi informasi publik.

Apakah ini menyiratkan sesuatu yang lain?

Ini menyiratkan bahwa pemilik kunci itu telah menjamin informasi dalam sertifikat. Untuk sertifikat SSL biasa, informasi dalam sertifikat merupakan pengikatan antara kunci publik dan nama umum.

Misalnya, ketika Anda mengarahkan browser Anda ke https://www.Amazon.com/ Server Amazon akan mengirimkan Anda sertifikat. Sertifikat ini mengikat kunci publik tertentu dengan nama www.Amazon.com. Peramban Anda mengonfirmasi tiga hal untuk mengetahui bahwa itu berbicara dengan Amazon asli:

  1. Server menyajikan sertifikat yang valid dan ditandatangani oleh kunci yang dipercayai.

  2. Sertifikat mengikat identitas "www.Amazon.com".

  3. Server membuktikan bahwa ia memiliki kunci pribadi yang sesuai dengan sertifikat.

Jadi tujuan dari tanda tangan sertifikat adalah untuk meletakkan kredibilitas agen penandatangan di belakang informasi dalam sertifikat yang secara fundamental "orang ini memiliki kunci ini".

6
David Schwartz