와이어가드
WireGuard| 원본 작성자 | 제이슨 A.도넨펠트 |
|---|---|
| 개발자 | 제이슨 A.도넨펠트 |
| 초기출시 | 2015년; [1] |
| 저장소 | |
| 기재. | C(리눅스, FreeB)SD 커널 모듈, NetBSD, OpenBSD 커널 드라이버, Windows 커널 드라이버), 이동(사용자 공간 구현) |
| 운영체제 | |
| 유형 | 가상사설망 |
| 면허증. | 다양한 무료 오픈 소스 |
| 웹사이트 | www |
WireGuard는 암호화된 VPN(가상 사설망)을 구현하는 통신 프로토콜이자 자유-오픈 소스 소프트웨어로 사용 편의성, 고속 성능, 낮은 공격 표면을 목표로 설계되었습니다.[4]이것은 두 개의 일반적인 터널링 프로토콜인 IPsec과 OpenVPN보다 더 나은 성능과 더 많은 전력을 목표로 합니다.[5]WireGuard 프로토콜은 UDP를 통해 트래픽을 전달합니다.[6]
2020년 3월, 리눅스 버전의 소프트웨어는 안정적인 프로덕션 릴리스에 도달하여 리눅스 5.6 커널에 통합되었으며 일부 리눅스 배포판에서 이전 리눅스 커널로 다시 포팅되었습니다.[3]리눅스 커널 구성 요소는 GPL(General Public License) 버전 2로 라이센스가 부여되며, 다른 구현은 GPLv2 또는 기타 자유/오픈 소스 라이센스로 라이센스가 부여됩니다.[4]
와이어가드라는 이름은 제이슨 A의 등록 상표입니다.도넨펠트.[4]
의전
WireGuard는 다음을 사용합니다.[7]
- 키 교환용 곡선 25519
- 대칭 암호화를 위한 ChaCha20
- 메시지 인증 코드용 Poly1305
- 해시 테이블 키용 SipHash24
- 암호화 해시 함수를 위한 BLUE2s
- 키유도함수를 위한 HKDF
- UDP 기반 전용[6]
2019년 5월, INRIA의 연구원들은 CryptoVerif 증명 어시스턴트를 사용하여 제작된 WireGuard 프로토콜의 기계로 확인된 증명을 발표했습니다.[8]
WireGuard는 사전 공유 대칭 키 모드를 지원하며, 이 모드는 양자 컴퓨팅의 향후 발전을 완화하기 위해 대칭 암호화 계층을 추가로 제공합니다.이것은 퀀텀 컴퓨터가 Curve25519를 파괴할 수 있을 때까지 트래픽이 저장될 수 있는 위험을 해결합니다. 이때 트래픽이 해독될 수 있습니다.사전 공유 키는 "일반적으로 키 관리 관점에서 볼 때 문제가 되고 도난당할 가능성이 더 높습니다." 하지만 단기적으로는 대칭 키가 손상되어도 Curve25519 키는 여전히 충분한 보호 이상을 제공합니다.[9]
네트워킹
WireGuard는 TCP-over-TCP의 잠재적인 단점 때문에 [4]UDP만[10] 사용합니다.[10][11][12]TCP 기반 연결을 통해 TCP를 터널링하는 것은 "TCP-over-TCP"로 알려져 있으며, 그렇게 함으로써 전송 성능에 극적인 손실을 초래할 수 있습니다("TCP 멜트다운"이라고 알려진 문제).TCP 멜트다운은 TCP 연결이 다른 연결 위에 쌓일 때 발생합니다.기본 계층은 문제를 감지하고 보상을 시도할 수 있고, 그 위의 계층은 그것 때문에 과다 보상을 하고, 이러한 과다 보상은 상기 지연 및 전송 성능 저하의 원인이 됩니다.
WireGuard는 터널 내부와 외부 모두에서 IPv6를 완벽하게 지원합니다.IPv4 및 IPv6 모두에 대해 계층 3만 지원하며 v4-in-v6 및 그 반대도 캡슐화할 수 있습니다.[13]
확장성
WireGuard는 타사 프로그램 및 스크립트를 통해 확장되도록 설계되었습니다.이 기능은 WireGuard를 사용자 친화적인 관리 인터페이스(키를 쉽게 설정할 수 있는 기능 포함), 로깅, 동적 방화벽 업데이트, 동적 IP 할당 [14]및 LDAP 통합 등 다양한 기능으로 확장하는 데 사용되었습니다.[citation needed]
이러한 복잡한 기능을 최소 코어 코드베이스에서 제외하면 안정성과 보안성이 향상됩니다.WireGuard는 보안을 보장하기 위해 암호화 제어를 구현하기 위한 옵션을 제한하고, 키 교환 프로세스에 대한 선택을 제한하며, 알고리즘을[7] 현대 암호화 프리미티브의 작은 하위 집합으로 매핑합니다.프리미티브 중 하나에 결함이 있는 경우 문제를 해결하는 새 버전을 릴리스할 수 있습니다.
접수처
Ars Technica의 리뷰에 따르면 와이어가드는 설치와 사용이 쉽고 강력한 암호를 사용하며 작은 공격 표면을 제공하는 최소 코드베이스를 가지고 있습니다.[15]
WireGuard는 Open Technology Fund.[16] 및 Mullvad, Private Internet Access, IVPN, NLnet Foundation[17] 및 OVPN의 기부금을 받았습니다.[18]
오리건주 상원의원 Ron Wyden은 NIST(National Institute of Standards and Technology)에 와이어가드를 기존 기술의 대체품으로 평가할 것을 권고했습니다.[19]
유용성
구현
와이어가드 프로토콜의 구현은 다음과 같습니다.
- 도넨펠트의 초기 구현,[20] C and Go로 작성.
- 러스트(Rust)로 작성된 사용자 공간 구현인 클라우드플레어의 보링툰(BoringTun).[21][22]
- 매트 던우디의 OpenBSD용 구현, C로 작성.[23]
- NetBSD에 대한 오자키 료타의 wg(4) 구현은 C로 작성됩니다.[24]
- 프리비SD 구현은 C로 작성되며 대부분의 데이터 경로를 OpenB와 공유합니다.SD 구현.[25]
- 2021년 8월부터 "wireguard-nt"라는 이름의 윈도우 커널을 기본적으로 구현했습니다.[26]
역사
코드 베이스의 초기 스냅샷은 2016년 6월 30일부터 존재합니다.[27]WireGuard의 네 가지 초기 채택자는 VPN 서비스 프로바이더 Mullvad,[28] AzireVPN,[29] IVPN[30] 및 cryptostorm이었습니다.[31]
2019년 12월 9일, 리눅스 네트워킹 스택의 주요 유지 관리자인 데이비드 밀러는 다음 커널에 포함하기 위해 "넷 넥스트" 유지 관리자 트리에 와이어가드 패치를 수락했습니다.[32][33][34]
2020년 1월 28일, 리누스 토르발스는 데이비드 밀러의 넷넥스트 트리를 병합했고 와이어가드는 메인 라인 리눅스 커널 트리에 진입했습니다.[35]
2020년 3월 20일, 데비안 개발자들은 데비안 11 버전의 커널 구성에서 와이어가드의 모듈 빌드 옵션을 활성화했습니다.[36]
2020년 3월 29일, 와이어가드는 리눅스 5.6 릴리즈 트리에 통합되었습니다.Windows 버전의 소프트웨어는 베타 버전으로 유지됩니다.[3]
2020년 3월 30일, 안드로이드 개발자들은 Generic Kernel Image에 WireGuard의 네이티브 커널 지원을 추가했습니다.[37]
2020년 4월 22일, 네트워크 매니저 개발자 베니아미노 갈바니는 와이어가드의 GUI 지원을 통합하였습니다.[38]
2020년 5월 12일, 매트 던우디는 OpenBSD에서 와이어가드의 네이티브 커널 지원을 위한 패치를 제안했습니다.[39]
2020년 6월 22일 맷 던우디와 제이슨 A의 작업 후.도넨펠트, 와이어가드 지원은 OpenBSD로 도입되었습니다.[40]
2020년 11월 23일 제이슨 A.도넨펠트는 설치, 안정성, ARM 지원, 엔터프라이즈 기능을 향상시킨 윈도우 패키지 업데이트를 공개했습니다.[41]
2020년 11월 29일 와이어가드 지원이 FreeB에 도입되었습니다.SD 13 커널.[25]
2021년 1월 19일, pfSense Community Edition(CE) 2.5.0 개발 스냅샷에서 미리보기를 위한 와이어가드 지원이 추가되었습니다.[42]
2021년 3월, 커널 모드 와이어가드 지원이 FreeB에서 삭제되었습니다.FreeBSD WireGuard에서 긴급 코드 정리를 한 후 SD 13.0이 아직 테스트 중입니다.[43]FreeBSD 기반의 pfSense Community Edition(CE) 2.5.0과 pfSense Plus 21.02는 커널 기반의 WireGuard도 제거했습니다.[44]
2021년 5월, 와이어가드 지원은 pfSense 커뮤니티의 일원인 Christian McDonald에 의해 작성된 실험 패키지로서 pfSense CE와 pfSense Plus 개발 스냅샷에 다시 도입되었습니다.pfSense용 WireGuard 패키지는 Jason A가 진행 중인 커널 모드 WireGuard 개발 작업을 통합합니다.원래 넷게이트가 후원하던 도넨펠트.[45][46][47]
2021년 6월, pfSense CE 2.5.2와 pfSense Plus 21.05의 공식 패키지 저장소에 와이어가드 패키지가 포함되었습니다.[48]
참고 항목
- 가상 사설망 서비스 비교
- 보안되지 않은 네트워크를 통해 서비스를 보호하는 데 사용되는 암호화 네트워크 프로토콜인 SSH(Secure Shell)입니다.
메모들
- ^ 모든 플랫폼이 현재 출시된 버전이 있는 것은 아니며 일부 플랫폼은 베타 버전일 수도 있습니다.[needs update?]
참고문헌
- ^ Grauer, Yael (16 January 2021). "How one hacker's push to secure the internet became a crucial part of Mac, Linux, and Windows operating systems". Business Insider. Retrieved 25 November 2022.
- ^ "Installation". WireGuard. Retrieved 23 April 2020.
- ^ a b c Salter, Jim (30 March 2020). "WireGuard VPN makes it to 1.0.0—and into the next Linux kernel". Archived from the original on 31 March 2020. Retrieved 23 April 2020.
- ^ a b c d "WireGuard: fast, modern, secure VPN tunnel". WireGuard. Archived from the original on 28 April 2018. Retrieved 31 March 2021.
- ^ Preneel, Bart; Vercauteren, Frederik, eds. (11 June 2018). Applied Cryptography and Network Security. Springer. ISBN 978-3-319-93387-0. Archived from the original on 18 February 2019. Retrieved 25 June 2018.
- ^ a b Donenfeld, Jason A. "Known Limitations - WireGuard". www.wireguard.com. Retrieved 1 June 2020.
- ^ a b Donenfeld, Jason A. "Protocol & Cryptography - WireGuard". www.wireguard.com. Retrieved 14 May 2023.
- ^ Lipp, Benjamin; Blanchet, Bruno; Bhargavan, Karthikeyan (2019), A Mechanised Cryptographic Proof of the WireGuard Virtual Private Network Protocol, Research Report RR-9269, Paris: Inria, p. 49, hal-02100345
- ^ Donenfeld, Jason (2 May 2021). "WireGuard: Next Generation Kernel Network Tunnel" (PDF). Wireguard.com.
- ^ a b Donenfeld, Jason A. "Known Limitations - WireGuard". www.wireguard.com. Retrieved 2 May 2021.
- ^ Titz, Olaf (23 April 2001). "Why TCP Over TCP Is A Bad Idea". Retrieved 17 October 2015.
- ^ Honda, Osamu; Ohsaki, Hiroyuki; Imase, Makoto; Ishizuka, Mika; Murayama, Junichi (October 2005). "Understanding TCP over TCP: effects of TCP tunneling on end-to-end throughput and latency". In Atiquzzaman, Mohammed; Balandin, Sergey I (eds.). Performance, Quality of Service, and Control of Next-Generation Communication and Sensor Networks III. Vol. 6011. Bibcode:2005SPIE.6011..138H. CiteSeerX 10.1.1.78.5815. doi:10.1117/12.630496. S2CID 8945952.
- ^ Donenfeld, Jason A. "Introduction & Motivation" (PDF). WireGuard: Next Generation Kernel Network Tunnel (PDF). Archived (PDF) from the original on 4 March 2018.
- ^ Wireguard Dynamic IP Configuration Tool, WireGuard, 14 May 2023, retrieved 14 May 2023
- ^ Salter, Jim (26 August 2018). "WireGuard VPN review: A new type of VPN offers serious advantages". Ars Technica. Archived from the original on 20 September 2018.
- ^ "Building a more secure, accessible and resilient WireGuard VPN protocol". www.opentech.fund. Retrieved 20 June 2022.
- ^ "Donations". WireGuard. Archived from the original on 28 April 2018. Retrieved 28 April 2018.
- ^ "OVPN donates to support WireGuard". OVPN. 23 March 2020.
- ^ "US Senator Recommends Open-Source WireGuard To NIST For Government VPN". Phoronix. 30 June 2018. Archived from the original on 5 August 2018. Retrieved 5 August 2018.
- ^ Donenfeld, Jason (7 June 2019). "WireGuard: fast, modern, secure VPN tunnel". Retrieved 16 June 2019.
- ^ Krasnov, Vlad (18 December 2018). "BoringTun, a userspace WireGuard implementation in Rust". Cloudflare Blog. Archived from the original on 4 April 2019. Retrieved 29 March 2019.
- ^ "CloudFlare Launches "BoringTun" As Rust-Written WireGuard User-Space Implementation". phoronix.com. Retrieved 29 March 2019.
- ^ Johansson, Janne (21 June 2020). "WireGuard imported into OpenBSD".
- ^ "wg(4) - NetBSD Manual Pages". 20 August 2020.
- ^ a b "Import kernel WireGuard support".
- ^ "WireGuardNT, a high-performance WireGuard implementation for the Windows kernel". 2 August 2021.
- ^ "Index of /Monolithic-historical/".
- ^ Mason, John (13 February 2019). "Mullvad Review". thebestwpn. 2. Strong Tunneling Protocols – OpenVPN & WireGuard. Archived from the original on 24 June 2019. Retrieved 8 April 2019.
- ^ Mason, John (19 February 2019). "AzireVPN Review". thebestvpn. 2. Impressive Protocols and Encryption. Archived from the original on 8 May 2019. Retrieved 8 April 2019.
- ^ Pestell, Nick (11 December 2018). "Introducing Wireguard". Retrieved 22 September 2019.
- ^ "WireGuard support added!". cryptostorm blog. 5 April 2019. Archived from the original on 9 December 2019. Retrieved 9 December 2019.
- ^ "e7096c131e5161fa3b8e52a650d7719d2857adfd - pub/scm/linux/kernel/git/davem/net-next - Git at Google". kernel.googlesource.com.
- ^ "LKML: David Miller: Re: [PATCH net-next v2] net: WireGuard secure network tunnel". lkml.org.
- ^ "[ANNOUNCE] WireGuard merged to net-next, on its way to Linux 5.6". 9 January 2020. Archived from the original on 9 January 2020.
- ^ Torvalds, Linus. "index : kernel/git/torvalds/linux.git". Linux kernel source tree. Kernel.org. Retrieved 2 February 2020.
- ^ "drivers/net: Enable WIREGUARD as module".
- ^ "ANDROID: GKI: enable CONFIG_WIREGUARD".
- ^ "merge branch 'bg/wireguard' (d321d0df) · Commits · GNOME / network-manager-applet". gitlab.gnome.org. Retrieved 30 May 2020.
- ^ "WireGuard for OpenBSD Kernel Patches Posted".
- ^ "add wg(4), an in kernel driver for WireGuard vpn communication".
- ^ "[ANNOUNCE] WireGuard for Windows 0.3: ARM support, enterprise features, & more".
- ^ "WireGuard for pfSense Software".
- ^ Anderson, Tim (23 March 2021). "FreeBSD 13.0 to ship without WireGuard support as dev steps in to fix 'grave issues' with initial implementation". The Register. Situation Publishing. Retrieved 31 March 2021.
- ^ Thompson, Jim (18 March 2021). "WireGuard Removed from pfSense® CE and pfSense® Plus Software". Netgate blog. Rubicon Communications. Retrieved 20 March 2021.
- ^ Long, Scott (5 May 2021). "pfSense: WireGuard returns as an Experimental Package". Netgate - Secure networks start here. Retrieved 9 June 2021.
- ^ Paxson, Audian (19 January 2021). "WireGuard for pfSense Software". Netgate - Secure networks start here. Retrieved 9 June 2021.
- ^ "wireguard-freebsd - WireGuard implementation for the FreeBSD kernel". git.zx2c4.com. Retrieved 9 June 2021.
- ^ Pingle, Jim (2 June 2021). "pfSense Plus 21.05-RELEASE Now Available". Netgate - Secure networks start here. Retrieved 9 June 2021.