GN⁺: Age - 간단하고 현대적이며 안전한 파일 암호화 도구
(github.com/FiloSottile)- 간단하고 현대적이며 안전한 파일 암호화 도구 이자, 포맷, 그리고 Go 라이브러리
- 작은 명시적 키, 설정 옵션 없음, UNIX 스타일의 조합성을 특징으로 함
- YubiKeys 같은 하드웨어 PIV 토큰도 플러그인을 통해서 지원
- 그외 다양한 플러그인이 있음 : Apple Secure Enclave, TPM, FIDO, SSS, Trezor Hardware Wallet,..
- 다양한 언어로 구현된 버전 : Go, Rust, TypeScript, Java, WASM, Elixir, Dart 등
- 맥, 리눅스, FreeBSD, 윈도우 용 바이너리 제공
- 포맷이 공개 되어있음 age-encryption.org/v1
설치 방법
-
Homebrew (macOS 또는 Linux):
brew install age
-
MacPorts:
port install age
-
Alpine Linux v3.15+:
apk add age
-
Arch Linux:
pacman -S age
-
Debian 12+ (Bookworm):
apt install age
-
Debian 11 (Bullseye):
apt install age/bullseye-backports
(backports 활성화 필요) -
Fedora 33+:
dnf install age
-
Gentoo Linux:
emerge app-crypt/age
-
NixOS / Nix:
nix-env -i age
-
openSUSE Tumbleweed:
zypper install age
-
Ubuntu 22.04+:
apt install age
-
Void Linux:
xbps-install age
-
FreeBSD:
pkg install age
(security/age) -
OpenBSD 6.7+:
pkg_add age
(security/age) -
Chocolatey (Windows):
choco install age.portable
-
Scoop (Windows):
scoop bucket add extras && scoop install age
-
pkgx:
pkgx install age
-
사전 빌드된 바이너리 제공
- Windows, Linux, macOS, FreeBSD에서 사용 가능
- 다운로드 링크
사용법
$ age-keygen -o key.txt
Public key: age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p
$ tar cvz ~/data | age -r age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p > data.tar.gz.age
$ age --decrypt -i key.txt data.tar.gz.age > data.tar.gz
GN⁺의 정리
- age는 간단하고 현대적인 파일 암호화 도구로, 명시적 키와 설정 옵션이 없는 것이 특징임
- 다양한 운영 체제에서 쉽게 설치 가능하며, 여러 수신자와 암호문을 지원함
- SSH 키와 GitHub 사용자 키를 사용한 암호화도 가능하여 편리함
- 암호화된 파일의 안전성과 투명성을 보장하기 위해 Sigsum 증명을 제공함
- 비슷한 기능을 가진 도구로는 GnuPG와 OpenSSL이 있음
서명
- minisign : libsodium
- signify : bsd
- minisign vs signify
암호화
- age : public / private key
- encpipe : passphrase
- age vs encpipe
기타
Hacker News 의견
-
Age가 Unix 시스템에서 표준이 되면 좋겠음
- Unix 철학을 따르는 도구가 GPG/PGP보다 더 많이 사용되기를 바람
- 새로운 표준 도구가 흔하지 않음
-
jq
가 최근에 가장 가까운 예시지만, 사전 설치된 표준은 아님
-
Age의 저자임
- Age 프로젝트가 유기적으로 성장함
- 사람들이 Age로 만든 것들을 보는 것이 항상 즐거움
- 질문에 답변할 준비가 되어 있음
- 이전 논의 링크 제공
- Age 생태계 프로젝트 목록, 포맷 사양, Go 라이브러리 문서, CLI 매뉴얼 페이지, 대규모 테스트 스위트, Rust 구현, TypeScript 구현, YubiKey 플러그인, 플러그인 프로토콜 사양, Windows GUI, 인증 속성 논의, 플러그인 아키텍처 논의, 포스트 양자 플러그인 논의, Age를 사용하는 비밀번호 저장소 포크 등 관련 리소스 제공
-
Age와 Rust 구현인 Rage, agenix, age.el을 사용하여 셀프 호스팅 배포 및 관리가 매우 쉬워짐
- NixOS의 편리성과 결합하여 셀프 호스팅 가능
- 새로운 서버 설정에 대한 불안감과 시간/기회 손실이 셀프 호스팅을 방해했음
- Age가 훌륭함
- Restic 백업 도구 분석이 백업 솔루션 설정에 도움을 줌
-
Restic이나 Borg 같은 전문 백업 도구가 있지만, 간단하게 유지하고 싶음
- Age를 사용하여 파일을 암호화한 후 신뢰할 수 없는 클라우드 스토리지에 업로드하는 것이 괜찮은지 질문
- tar > age > cloud 방식 사용
- Minisign으로 서명하는 것이 좋은지 질문
- tar > age > minisign > cloud 방식 제안
-
포스트 양자 버전이나 동일한 저자의 플러그인이 언제 나올지 질문
-
Age의 발음이 [aɡe̞]로, GIF처럼 발음됨
-
Age는 자신의 역할을 잘 수행하지만, 무결성/진위 확인이 없기 때문에 Signify와 같은 도구와 함께 사용하는 것이 좋음
- Signify 링크 제공
-
Age는 PGP/GPG보다 훨씬 나은 경험을 제공함
- 옵션과 인수 처리가 직관적임
- 암호화 과정에 대한 이해를 더 잘 제공함
- Yubikey와 Passage 설정이 쉬웠음