HN
Hacker News • 2일 전
에어갭 파일 암호화를 자체 복호화 HTML 페이지로 구현
IMP 5/10
핵심 요약
자가 압축 해제 아카이브(self-extracting archive)에서 영감을 받아, 웹브라우저만 있으면 설치 없이 네트워크 연결 없이 스스로 복호화되는 단일 HTML 파일 기반 파일 암호화 도구를 공개했습니다. 완전한 감사 가능성을 위해 재현 가능한 빌드와 내장 OpenPGP 서명을 지원하며, 심지어 openssl만으로도 복호화가 가능합니다.
번역된 본문
에어갭(air-gapped) 파일 암호화를 단일한 자체 복호화 HTML 페이지 하나에 담았습니다. 저장소: https://github.com/ApelegHQ/ts-cms-ep-sfx
자가 압축 해제 아카이브에서 영감을 받았습니다. 사실상 아무런 의존성 없이 파일을 공유하고 싶었습니다. 목표는 다음과 같았습니다:
- 설치가 필요 없는 것 (웹브라우저가 있다는 전제 하에)
- 네트워크 없이도 스스로 복호화할 수 있는 단일 파일
- 완전한 감사 가능성(auditable)
두 번째 목표는 (일종의(*)) 재현 가능한 빌드(reproducible builds)와 내장된 OpenPGP 서명으로 달성했습니다.
첫 번째 목표는 HTML 구조를 교묘하게 조작하여 PGP 서명을 깨뜨리지 않고도 복호화할 수 있도록 만들어서 달성했습니다. 심지어 순수 openssl만으로도 복호화할 수 있습니다(이것 역시 설계 목표 중 하나였지만, 정확한 구조를 맞추는 데 약간의 작업과 버그 리포트가 필요했습니다).
세 번째 목표는 앞의 두 가지와 소스 코드가 자유롭게 공개되어 있다는 점으로 달성됩니다.
(*) 현재로서는 OS에 따라 다릅니다.
원문 보기 (영어)
Air-gapped file encryption packed into a single, self-decrypting HTML page. Repo: <a href="https://github.com/ApelegHQ/ts-cms-ep-sfx" rel="nofollow">https://github.com/ApelegHQ/ts-cms-ep-sfx</a><p>I was inspired by self-extracting archives. I wanted to share files with basically no dependencies. The goal was:<p><pre><code> 1. Something that didn't require any installation (assuming a web browser)
2. Have a single file with no network that could self-decrypt
3. Be fully auditable
</code></pre>
The second point is done by having (sort of(*)) reproducible builds and embedded OpenPGP signatures.<p>The first point is made by cleverly manipulating the HTML structure so that it can decrypt without breaking the PGP signature. It can even decrypt using bare openssl (which was a design goal too, though getting the exact structure right took some work and bug reports).<p>The third point is accomplished by the first two, and by the source being freely available.<p>(*) Depends on the OS at the moment.