{"id":105412,"date":"2022-10-30T15:36:45","date_gmt":"2022-10-30T13:36:45","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/v-kodovuyu-bazu-freebsd-dobavlena-novaya-realizacziya-vpn-wireguard"},"modified":"2022-10-30T15:36:45","modified_gmt":"2022-10-30T13:36:45","slug":"v-kodovuyu-bazu-freebsd-dobavlena-novaya-realizacziya-vpn-wireguard","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/v-kodovuyu-bazu-freebsd-dobavlena-novaya-realizacziya-vpn-wireguard","title":{"rendered":"The FreeBSD codebase has added a new implementation of the WireGuard VPN.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Changes with a new implementation of the WireGuard VPN, based on kernel module code, have been accepted into the FreeBSD source tree, jointly prepared by the core development teams of FreeBSD and WireGuard with the participation of Jason A. Donenfeld, the author of WireGuard, and John H. Baldwin, a well-known developer of GDB and FreeBSD, who implemented SMP and NUMA support in the FreeBSD kernel in the early 2000s. After the driver was accepted into FreeBSD (sys\/dev\/wg), its development and maintenance will now be carried out in the FreeBSD repository.      <\/p>\n<p>Before accepting the code with the support of the FreeBSD Foundation, a complete review of the changes was conducted, during which the interaction of the driver with other kernel subsystems was also analyzed, and the feasibility of using the cryptographic primitives provided by the kernel was assessed.     <\/p>\n<p>To utilize the cryptographic algorithms necessary for the driver, the API of the FreeBSD kernel's cryptosystem was extended, adding a wrapper that allows unsupported algorithms in FreeBSD to be used through the standard crypto API, employing the implementation of necessary algorithms from the libsodium library. Among the algorithms built into the driver, only the code for calculating Blake2 hashes was retained, as the implementation provided in FreeBSD is tied to a fixed hash size.    <\/p>\n<p>Additionally, during the review process, code optimization was performed that increased the efficiency of load distribution on multi-core CPUs (ensuring an even balance for binding encryption and decryption tasks to CPU cores). As a result, the overhead in packet processing was brought closer to the implementation of the driver for Linux. The code also ensures the possibility of using the ossl driver to accelerate encryption operations.      <\/p>\n<p>Unlike the previous attempt to integrate WireGuard into FreeBSD, the new implementation utilizes the standard wg utility instead of a modified version of ifconfig, which has allowed for a unified setup in both Linux and FreeBSD. The wg utility, like the driver, is included in the source code of FreeBSD, thanks to changes in the licensing of the wg code (which is now available under MIT and GPL licenses). The previous attempt to incorporate WireGuard into FreeBSD was made in 2020 but ended in controversy, resulting in the removal of the code already added due to poor quality, careless buffer handling, the use of stubs instead of checks, incomplete protocol implementation, and GPL license violations.         <\/p>\n<p>Recall that <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/en\/vpn\/\"   title=\"VPN\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"227\">VPN<\/a>  WireGuard is implemented using modern encryption methods, provides very high performance, is easy to use, free of complications, and has proven itself well in several large deployments handling significant traffic volumes. The project has been evolving since 2015, has undergone an audit, and formal verification of the applied encryption methods. WireGuard uses the concept of key-based routing, which implies tying a private key to each network interface and using it to bind public keys.     <\/p>\n<p>The exchange of public keys to establish a connection is conducted similarly to SSH. To negotiate keys and connect without launching a separate user-space daemon, the Noise_IK mechanism from the Noise Protocol Framework is applied, akin to maintaining authorized_keys in SSH. Data transmission occurs through encapsulation in UDP packets. Support is provided for changing <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/en\/lir\/ipv4\/\"   title=\"an IP address\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"706\">an IP address<\/a> VPN servers (roaming) without interrupting the connection, with automatic client reconfiguration.      <\/p>\n<p>For encryption, the ChaCha20 stream cipher and the Poly1305 message authentication algorithm (MAC) are used, developed by Daniel J. Bernstein, Tanja Lange, and Peter Schwabe. ChaCha20 and Poly1305 are positioned as faster and safer alternatives to AES-256-CTR and HMAC, with a software implementation that ensures fixed execution time without the need for special hardware support. The Diffie-Hellman key exchange protocol on elliptic curves, specifically Curve25519, also proposed by Daniel Bernstein, is used for generating a shared secret key. The BLAKE2s hashing algorithm (RFC7693) is utilized.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=58007\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0434\u0435\u0440\u0435\u0432\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 FreeBSD \u043f\u0440\u0438\u043d\u044f\u0442\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441 \u043d\u043e\u0432\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 VPN WireGuard, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u043a\u043e\u0434\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u044f\u0434\u0440\u0430, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 FreeBSD \u0438 WireGuard \u043f\u0440\u0438 \u0443\u0447\u0430\u0441\u0442\u0438\u0438 \u0414\u0436\u0435\u0439\u0441\u043e\u043d\u0430 \u0414\u043e\u043d\u0435\u043d\u0444\u0438\u043b\u0434\u0430 (Jason A. Donenfeld), \u0430\u0432\u0442\u043e\u0440\u0430 VPN WireGuard, \u0438 \u0414\u0436\u043e\u043d\u0430 \u0411\u043e\u043b\u0434\u0443\u0438\u043d\u0430 (John H. Baldwin), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 GDB \u0438 FreeBSD, \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 2000-\u0445 \u0433\u043e\u0434\u043e\u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 SMP \u0438 NUMA [&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-105412","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=\"\u0412 \u0434\u0435\u0440\u0435\u0432\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 FreeBSD \u043f\u0440\u0438\u043d\u044f\u0442\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441 \u043d\u043e\u0432\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 VPN WireGuard, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u043a\u043e\u0434\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u044f\u0434\u0440\u0430, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 FreeBSD \u0438 WireGuard \u043f\u0440\u0438 \u0443\u0447\u0430\u0441\u0442\u0438\u0438.\" \/>\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\/v-kodovuyu-bazu-freebsd-dobavlena-novaya-realizacziya-vpn-wireguard\" \/>\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\u0412 \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443 FreeBSD \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f VPN WireGuard | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0434\u0435\u0440\u0435\u0432\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 FreeBSD \u043f\u0440\u0438\u043d\u044f\u0442\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441 \u043d\u043e\u0432\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 VPN WireGuard, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u043a\u043e\u0434\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u044f\u0434\u0440\u0430, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 FreeBSD \u0438 WireGuard \u043f\u0440\u0438 \u0443\u0447\u0430\u0441\u0442\u0438\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/v-kodovuyu-bazu-freebsd-dobavlena-novaya-realizacziya-vpn-wireguard\" \/>\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=\"2022-10-30T13:36:45+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-10-30T13:36:45+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\udd47A new implementation of the WireGuard VPN has been added to the FreeBSD codebase | ProHoster","description":"Changes with the new implementation of the WireGuard VPN, based on the kernel module code, have been accepted into the FreeBSD source tree, collaboratively prepared by the main development teams of FreeBSD and WireGuard.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/v-kodovuyu-bazu-freebsd-dobavlena-novaya-realizacziya-vpn-wireguard","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\u0412 \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443 FreeBSD \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f VPN WireGuard | ProHoster","og:description":"\u0412 \u0434\u0435\u0440\u0435\u0432\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 FreeBSD \u043f\u0440\u0438\u043d\u044f\u0442\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441 \u043d\u043e\u0432\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 VPN WireGuard, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u043a\u043e\u0434\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u044f\u0434\u0440\u0430, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 FreeBSD \u0438 WireGuard \u043f\u0440\u0438 \u0443\u0447\u0430\u0441\u0442\u0438\u0438.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/v-kodovuyu-bazu-freebsd-dobavlena-novaya-realizacziya-vpn-wireguard","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":"2022-10-30T13:36:45+00:00","article:modified_time":"2022-10-30T13:36:45+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"105412","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-02-04 14:42:26","updated":"2026-02-08 20:24:07","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/105412","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=105412"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/105412\/revisions"}],"predecessor-version":[{"id":157897,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/105412\/revisions\/157897"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=105412"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=105412"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=105412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}