{"id":476304,"date":"2023-08-09T07:28:31","date_gmt":"2023-08-09T07:28:31","guid":{"rendered":""},"modified":"2023-09-05T11:12:26","modified_gmt":"2023-09-05T11:12:26","slug":"code-signing","status":"publish","type":"wiki","link":"https:\/\/oneproxy.pro\/my\/wiki\/code-signing\/","title":{"rendered":"Penandatanganan kod"},"content":{"rendered":"<p>Penandatanganan kod ialah prosedur digital yang digunakan untuk mengesahkan bahawa blok kod tertentu tidak diganggu dan berasal daripada sumber tertentu. Ia menyediakan tahap jaminan tambahan dengan mengesahkan integriti kod yang dilaksanakan pada komputer atau dimuat turun daripada internet. Penandatanganan kod berfungsi untuk melindungi pengguna daripada perisian penyangak dan perisian hasad dengan mengesahkan bahawa perisian yang mereka muat turun dan pasang adalah tulen dan daripada sumber yang dipercayai.<\/p>\n<h2>Asal-usul dan Evolusi Penandatanganan Kod<\/h2>\n<p>Permulaan menandatangani kod boleh dikesan kembali ke zaman awal internet apabila pertumbuhan aktiviti dalam talian memerlukan langkah keselamatan yang dipertingkatkan. Pada pertengahan 1990-an, Netscape, salah satu perintis dalam industri penyemak imbas web, memperkenalkan penandatanganan objek, yang membenarkan applet Java untuk mengakses API terhad tertentu, konsep yang merupakan pendahulu tandatangan kod moden.<\/p>\n<p>Pada tahun 1996, Microsoft memperkenalkan Authenticode, teknologi proprietarinya untuk menandatangani kod, di samping Internet Explorer 3.0. Ini mewakili penggunaan utama pertama tandatangan kod dalam konteks berorientasikan pengguna, dan mewujudkan model penggunaan sijil yang dikeluarkan oleh pihak ketiga yang dipercayai, atau Pihak Berkuasa Sijil (CA), untuk menjamin identiti penandatangan.<\/p>\n<p>Sejak itu, penandatanganan kod telah berkembang dan kini merupakan piawaian yang diterima pakai secara meluas dalam industri perisian untuk mengekalkan dan memastikan integriti dan ketulenan kod yang diedarkan.<\/p>\n<h2>Memahami Penandatanganan Kod Secara Mendalam<\/h2>\n<p>Penandatanganan kod melibatkan penggunaan cincang kriptografi untuk menandatangani kod perisian. Jika kod ditukar selepas ia ditandatangani, tandatangan akan menjadi tidak sah. Sijil tandatangan kod, yang dikeluarkan oleh Pihak Berkuasa Sijil (CA) yang dipercayai, digunakan untuk membuat tandatangan ini.<\/p>\n<p>Apabila pengguna memuat turun perisian yang ditandatangani, sistem mereka akan mengesahkan tandatangan menggunakan kunci awam yang sepadan dengan kunci peribadi yang digunakan untuk mencipta tandatangan. Jika tandatangan disahkan dengan betul, sistem kemudian akan mempercayai perisian dan membenarkannya berjalan.<\/p>\n<h2>Mekanisme Dalaman Penandatanganan Kod<\/h2>\n<p>Penandatanganan kod berfungsi melalui sistem kriptografi kunci awam. Berikut ialah pecahan langkah demi langkah proses:<\/p>\n<ol>\n<li>Seorang pembangun menulis kod untuk aplikasi.<\/li>\n<li>Pembangun menggunakan fungsi cincang pada kod, menghasilkan nilai cincang unik yang mewakili kandungan kod.<\/li>\n<li>Pembangun kemudian menggunakan kunci peribadi mereka untuk menyulitkan nilai cincang ini, mencipta tandatangan digital.<\/li>\n<li>Pembangun menambahkan tandatangan digital dan kunci awam mereka (terbenam dalam sijil mereka) pada aplikasi.<\/li>\n<\/ol>\n<p>Apabila pengguna memuat turun dan menjalankan aplikasi ini:<\/p>\n<ol>\n<li>Sistem pengguna menggunakan kunci awam pembangun untuk menyahsulit tandatangan digital, mendedahkan nilai cincang asal.<\/li>\n<li>Sistem menggunakan fungsi cincang yang sama pada aplikasi yang dimuat turun, menjana nilai cincang baharu.<\/li>\n<li>Jika nilai cincang baharu sepadan dengan nilai cincang asal yang dinyahsulitkan, sistem menyimpulkan bahawa kod itu tidak diubah sejak ia ditandatangani dan membenarkan ia dijalankan.<\/li>\n<\/ol>\n<h2>Ciri-ciri Utama Penandatanganan Kod<\/h2>\n<ul>\n<li><strong>Integriti<\/strong>: Penandatanganan kod memastikan bahawa kod perisian tidak diubah atau diusik sejak ditandatangani.<\/li>\n<li><strong>Pengesahan<\/strong>: Ia mengesahkan identiti penerbit perisian, meningkatkan kepercayaan.<\/li>\n<li><strong>Bukan Penolakan<\/strong>: Penerbit tidak boleh menafikan perkaitan mereka dengan kod sebaik sahaja ia ditandatangani.<\/li>\n<li><strong>Cap masa<\/strong>: Tandatangan termasuk cap masa yang menunjukkan apabila kod itu ditandatangani.<\/li>\n<\/ul>\n<h2>Jenis Sijil Menandatangani Kod<\/h2>\n<p>Secara amnya terdapat dua jenis sijil menandatangani kod:<\/p>\n<table>\n<thead>\n<tr>\n<th>Jenis Sijil<\/th>\n<th>guna<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Sijil yang ditandatangani sendiri<\/strong><\/td>\n<td>Pembangun menjana sijil mereka sendiri dan menggunakannya untuk menandatangani kod mereka. Kaedah ini secara amnya tidak disyorkan untuk perisian yang diedarkan kepada orang ramai, kerana tiada pihak ketiga yang dipercayai untuk menjamin keaslian penandatangan.<\/td>\n<\/tr>\n<tr>\n<td><strong>Sijil daripada CA yang dipercayai<\/strong><\/td>\n<td>Pembangun mendapatkan sijil daripada Pihak Berkuasa Sijil yang dipercayai. CA mengesahkan identiti pemaju sebelum mengeluarkan sijil. Ini ialah jenis sijil tandatangan kod yang paling biasa digunakan, dan penting untuk perisian yang diedarkan kepada umum.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Menggunakan Penandatanganan Kod: Masalah dan Penyelesaian<\/h2>\n<p>Penandatanganan kod ialah alat yang berkuasa untuk memastikan integriti dan ketulenan perisian, tetapi ia bukan tanpa cabarannya:<\/p>\n<p><strong>Masalah<\/strong>: Keselamatan kunci persendirian adalah kritikal. Jika kunci peribadi dicuri, orang lain boleh menandatangani perisian yang nampaknya datang daripada pembangun asal.<\/p>\n<p><strong>Penyelesaian<\/strong>: Pembangun perlu melindungi kunci peribadi mereka dengan langkah keselamatan yang kukuh, seperti storan kunci selamat, penyulitan dan kata laluan yang kukuh.<\/p>\n<p><strong>Masalah<\/strong>: Jika sijil pembangun dikompromi dan digunakan untuk menandatangani perisian berniat jahat, kerosakan boleh berleluasa dan sukar untuk dibuat asal.<\/p>\n<p><strong>Penyelesaian<\/strong>: Pihak Berkuasa Sijil mempunyai proses untuk membatalkan sijil yang telah dikompromi. Walau bagaimanapun, ini memerlukan CA untuk dimaklumkan tentang kompromi itu tepat pada masanya.<\/p>\n<h2>Penandatanganan Kod: Ciri Utama dan Perbandingan dengan Istilah Serupa<\/h2>\n<p>Walaupun tandatangan kod berkongsi persamaan dengan konsep keselamatan lain seperti SSL\/TLS, terdapat beberapa perbezaan:<\/p>\n<table>\n<thead>\n<tr>\n<th>Konsep<\/th>\n<th>Penerangan<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Penandatanganan Kod<\/strong><\/td>\n<td>Digunakan untuk mengesahkan integriti dan asal usul aplikasi atau skrip perisian. Penandatanganan kod memastikan bahawa sekeping kod tidak diubah sejak ia ditandatangani.<\/td>\n<\/tr>\n<tr>\n<td><strong>SSL\/TLS<\/strong><\/td>\n<td>Digunakan untuk menyulitkan data dalam transit antara klien (cth, pelayar web) dan pelayan. SSL\/TLS tidak memastikan integriti perisian pelayan, sebaliknya memastikan bahawa data yang dihantar antara klien dan pelayan tidak boleh dipintas atau diubah.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Perspektif dan Teknologi Masa Depan dalam Penandatanganan Kod<\/h2>\n<p>Apabila landskap teknologi berkembang, begitu juga dengan penandatanganan kod. Perspektif masa depan tentang penandatanganan kod berkisar tentang meningkatkan keupayaan semasa dan menyesuaikan diri dengan platform dan teknologi baharu.<\/p>\n<p>Satu trend ialah pembangunan piawaian dan amalan baharu untuk mengendalikan skala dan kerumitan pengedaran perisian dalam era IoT (Internet of Things) dan pengkomputeran awan. Selain itu, tumpuan yang meningkat pada keselamatan siber mungkin membawa kepada pembangunan algoritma yang lebih canggih dan teguh untuk menandatangani kod.<\/p>\n<p>Teknologi Blockchain juga membentangkan kemungkinan menarik untuk menandatangani kod terpencar dan telus, dengan kontrak pintar mengautomasikan proses dan menjadikannya lebih selamat.<\/p>\n<h2>Pelayan Proksi dan Penandatanganan Kod<\/h2>\n<p>Pelayan proksi, seperti yang disediakan oleh OneProxy, berfungsi sebagai perantara antara pengguna akhir dan internet. Mereka boleh memberikan beberapa faedah, termasuk peningkatan tanpa nama, penjimatan lebar jalur dan keselamatan yang dipertingkatkan.<\/p>\n<p>Pelayan proksi tidak berinteraksi secara langsung dengan proses menandatangani kod, tetapi ia boleh meningkatkan lapisan keselamatan rangkaian. Sebagai contoh, pelayan proksi boleh menyediakan lapisan perlindungan tambahan terhadap ancaman luaran, dan digabungkan dengan tandatangan kod, boleh memastikan persekitaran dalam talian yang lebih selamat dan boleh dipercayai.<\/p>\n<h2>Pautan Berkaitan<\/h2>\n<ol>\n<li>Teknologi Authenticode Microsoft: <a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/win32\/seccrypto\/authenticode\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/docs.microsoft.com\/en-us\/windows\/win32\/seccrypto\/authenticode<\/a><\/li>\n<li>Gambaran Keseluruhan Penandatanganan Kod oleh GlobalSign: <a href=\"https:\/\/www.globalsign.com\/en\/blog\/what-is-code-signing\/\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/www.globalsign.com\/en\/blog\/what-is-code-signing\/<\/a><\/li>\n<li>Penandatanganan Kod untuk platform baharu: <a href=\"https:\/\/developer.apple.com\/documentation\/security\/notarizing_your_app_before_distribution\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/developer.apple.com\/documentation\/security\/notarizing_your_app_before_distribution<\/a><\/li>\n<\/ol>\n<p>Sila ambil perhatian bahawa pautan di atas adalah aktif dan relevan semasa artikel ini ditulis.<\/p>","protected":false},"featured_media":476305,"menu_order":0,"template":"","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"class_list":["post-476304","wiki","type-wiki","status-publish","has-post-thumbnail","hentry"],"acf":{"faq_title":"Frequently Asked Questions about <mark>Code Signing: An Essential Element in Ensuring Software Authenticity and Security<\/mark>","faq_items":[{"question":"What is Code Signing?","answer":"<p>Code Signing is a digital procedure used to certify that a certain block of code originates from a specific source and hasn't been tampered with. It's used to maintain the authenticity and integrity of code executed on computers or downloaded from the internet, protecting users from rogue software and malware.<\/p>"},{"question":"What is the history of Code Signing?","answer":"<p>Code Signing originated in the mid-1990s when Netscape introduced object signing for Java applets, allowing them access to certain restricted APIs. This concept evolved into modern Code Signing. In 1996, Microsoft launched Authenticode, a proprietary technology for Code Signing, which was a major step towards consumer-oriented Code Signing.<\/p>"},{"question":"How does Code Signing work?","answer":"<p>Code Signing uses a cryptographic hash to sign the software's code. If the code is modified after signing, the signature becomes invalid. A Code Signing certificate from a trusted Certificate Authority (CA) is used to create this signature. When the signed software is downloaded, the user's system verifies the signature using the corresponding public key. If the signature verifies correctly, the system allows the software to run.<\/p>"},{"question":"What are the key features of Code Signing?","answer":"<p>The key features of Code Signing are integrity (it ensures the software code has not been tampered with), authentication (it verifies the identity of the software publisher), non-repudiation (the publisher cannot deny their association with the code), and timestamping (the signature includes a timestamp that indicates when the code was signed).<\/p>"},{"question":"What types of Code Signing certificates exist?","answer":"<p>There are two types of Code Signing certificates. A self-signed certificate is generated by developers and used to sign their code. However, this is not recommended for software distributed to the public. The second type is a certificate from a trusted CA, which verifies the developer's identity before issuing the certificate. This is the most commonly used type of Code Signing certificate.<\/p>"},{"question":"What are some problems and solutions related to the use of Code Signing?","answer":"<p>One problem is that if a private key is stolen, it can be used to sign software appearing to come from the original developer. This can be prevented with strong security measures like secure key storage, encryption, and strong passwords. Another problem is if a developer's certificate is compromised, it can be used to sign malicious software. Certificate Authorities have processes in place to revoke certificates that have been compromised.<\/p>"},{"question":"How do Proxy Servers relate to Code Signing?","answer":"<p>Proxy servers, like those provided by OneProxy, work as intermediaries between end-users and the internet, providing benefits like increased anonymity, bandwidth savings, and improved security. While they do not directly interact with Code Signing processes, proxy servers can enhance the security layer of a network, providing an additional layer of protection against external threats. Combined with Code Signing, they ensure a more secure online environment.<\/p>"}]},"_links":{"self":[{"href":"https:\/\/oneproxy.pro\/my\/wp-json\/wp\/v2\/wiki\/476304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneproxy.pro\/my\/wp-json\/wp\/v2\/wiki"}],"about":[{"href":"https:\/\/oneproxy.pro\/my\/wp-json\/wp\/v2\/types\/wiki"}],"version-history":[{"count":0,"href":"https:\/\/oneproxy.pro\/my\/wp-json\/wp\/v2\/wiki\/476304\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oneproxy.pro\/my\/wp-json\/wp\/v2\/media\/476305"}],"wp:attachment":[{"href":"https:\/\/oneproxy.pro\/my\/wp-json\/wp\/v2\/media?parent=476304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}