{"id":110683,"date":"2023-10-08T15:10:18","date_gmt":"2023-10-08T13:10:18","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/predstavlen-openpubkey-protokol-kriptograficheskoj-verifikaczii-obektov"},"modified":"2023-10-08T15:10:18","modified_gmt":"2023-10-08T13:10:18","slug":"predstavlen-openpubkey-protokol-kriptograficheskoj-verifikaczii-obektov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/predstavlen-openpubkey-protokol-kriptograficheskoj-verifikaczii-obektov","title":{"rendered":"OpenPubKey has been introduced, a protocol for cryptographic verification of objects.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>The Linux Foundation, BastionZero, and Docker introduced a new open project called OpenPubKey, which develops the namesake cryptographic protocol for certifying digital signatures of arbitrary objects. This technology has been created as a joint project by BastionZero and Docker to simplify the certification of Docker container images with digital signatures, preventing tampering and confirming the build by the declared creator. The project will evolve on a neutral platform under the auspices of the Linux Foundation, eliminating dependence on individual commercial companies and facilitating collaboration with third-party participants. The reference implementation of OpenPubKey is written in Go and is distributed under the Apache 2.0 license.    <\/p>\n<p>The capabilities of OpenPubKey go beyond just container images; the technology can be applied to confirm the origin of any resource, preventing dependency tampering and enhancing the security of data distribution channels. For instance, the technology is applicable for certifying software builds, individual messages, and commits. Signature creators only need to have an account with a service that supports OpenID, while consumers are given the ability to verify attached signatures and confirm their connection to the declared OpenID identifier.    <\/p>\n<p>In its purpose, OpenPubKey resembles the system Sigstore created by Google and previously handed over to the Linux Foundation, but it differs substantially by simplifying implementation, usage, and maintenance, removing centralized server components responsible for maintaining a public log verifying changes' authenticity (transparency log), and ensuring the operation of certificate authorities.       <\/p>\n<p>Instead of deploying their own certificate authorities, OpenPubKey uses authentication with OpenID technology and links created signatures to existing OpenID Connect providers. In other words, OpenPubKey allows cryptographic keys to be tied to specific users, using OpenID Connect providers (IdPs) instead of certificate authorities. The technology is fully compatible with existing OpenID providers such as GitHub, Azure\/Microsoft, Okta, OneLogin, Keycloak, and Google, and does not require changes on their part (it uses the standard ID Token provided by the provider, allowing OpenPubKey to be implemented solely through changes on the OpenID Connect client side).     <\/p>\n<p>The OpenID token issued by the provider is transformed into a certificate that cryptographically binds the identifier in OpenID Connect to a public key. The user then uses the generated key to sign any data, and these signatures can later be verified against the identifier in OpenID Connect. In OpenPubKey, ephemeral keys are used, with a limited lifespan \u2014 keys are generated during login using OpenID and deleted when the session with the OpenID provider ends.      <\/p>\n<p>An example algorithm for creating a signature using OpenPubKey:  <\/p>\n<ul>\n<li class=\"l\"> Login using an OpenID provider (Google, GitHub, Microsoft, etc.).\n<li class=\"l\"> Request an identification token from the OpenID provider.\n<li class=\"l\"> The return of the token, signed by the provider's key and including the 'nonce' field with arbitrary data passed in the request (the SHA3 hash of the public key is provided).\n<li class=\"l\"> Use the received token as a certificate on the user's side, containing key data.\n<li class=\"l\"> Attach the token to the signature, similar to a certificate.    <\/ul>\n<p>Verification consists of checking whether the attached token was signed by the OpenID provider and verifying the correctness of the digital signature to the resource against the public key, allowing confirmation that the resource is signed using the identifier from the certificate and this is confirmed by the OpenID provider's signature. For example, the signer can obtain a token signed by Google's OpenID provider stating that they are verified as bob@gmail.com and uses the public key 0x54A5\u2026FF. Subsequently, upon receiving a message signed by the same key, they can use the signed token from the provider to verify that bob@gmail.com \u2014 0x54A5\u2026FF truly signed the message.                <\/p>\n<p>The simplification of architecture has been implemented through certain compromises (for example, the reliance on external OpenID providers and the lack of a change log with hierarchical hashing), which may be acceptable in some situations and not in others. To reduce dependence on OpenID providers, whose compromise or actions can discredit the system (for instance, a hacked provider can issue a fake key to a third party), it is suggested to use an additional, but not mandatory, link called MFA-Cosigner (Multi-Factor Authentication Cosigner) for multi-factor authentication (the token must be signed not only by the main provider but also by an independent authentication service confirming the user).  <\/p>\n<p>Among the weaknesses of OpenPubKey, there is also the presence of external information that can be used to track activity over a long period and independently of renaming (reusing an identifying token instead of a new certificate). Direct binding to OpenID Connect keys during verification excludes the server-side but significantly complicates implementation on the client side and leaves more room for maneuvers when carrying out attacks (attack surface) on the client, for example, due to the client's responsibility for key rotation. The absence of a change log does not allow the client to track potential key leaks.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=59888\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Linux Foundation, BastionZero \u0438 Docker \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 OpenPubKey, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u044b\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0434\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u044c\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u043a\u0430\u043a \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 BastionZero \u0438 Docker \u0441 \u0446\u0435\u043b\u044c\u044e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u044f\u043c\u0438 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 Docker \u0434\u043b\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438\u0445 \u043f\u043e\u0434\u043c\u0435\u043d\u044b \u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u043c. \u041f\u0440\u043e\u0435\u043a\u0442 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0435 \u043f\u043e\u0434 \u043f\u043e\u043a\u0440\u043e\u0432\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-110683","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"Linux Foundation, BastionZero \u0438 Docker \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 OpenPubKey, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u044b\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0434\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u044c\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/predstavlen-openpubkey-protokol-kriptograficheskoj-verifikaczii-obektov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d OpenPubKey, \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Linux Foundation, BastionZero \u0438 Docker \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 OpenPubKey, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u044b\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0434\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u044c\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/predstavlen-openpubkey-protokol-kriptograficheskoj-verifikaczii-obektov\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-10-08T13:10:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-10-08T13:10:18+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Introducing OpenPubKey, a cryptographic verification protocol for objects | ProHoster","description":"The Linux Foundation, BastionZero, and Docker have introduced a new open project, OpenPubKey, which advances the eponymous cryptographic protocol for certifying arbitrary objects with a digital signature.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/predstavlen-openpubkey-protokol-kriptograficheskoj-verifikaczii-obektov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d OpenPubKey, \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 | ProHoster","og:description":"Linux Foundation, BastionZero \u0438 Docker \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 OpenPubKey, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u044b\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0434\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u044c\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/predstavlen-openpubkey-protokol-kriptograficheskoj-verifikaczii-obektov","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2023-10-08T13:10:18+00:00","article:modified_time":"2023-10-08T13:10:18+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/110683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=110683"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/110683\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=110683"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=110683"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=110683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}