간단한 사진 같는 파일 전송할때 쓰기 좋은 사이트
원리 설명 사진
번역 출처 : 크록3 ai 생각 상태에서 번역
파일키(FileKey) 작동 원리
일반 개요
파일키는 계정, 추적, 백엔드 서버 없이 패스키를 사용하여 파일을 빠르게 암호화, 복호화 및 공유할 수 있는 웹 앱입니다. 로컬에서 오프라인으로 작동하며, 패스키를 통해 보안을 제공합니다.
작동 방식은 다음과 같습니다:
파일키 생성: 비밀번호 관리자나 보안 키(예: YubiKey)에 안전하게 저장되는 고유한 패스키를 생성합니다.
파일 암호화: 앱에 파일을 드래그 앤 드롭하면 군사급 암호화(AES-256)로 즉시 암호화됩니다.
암호화된 파일 복호화: 암호화된 파일을 다시 앱에 드래그 앤 드롭하고 패스키로 인증하면 거의 즉시 복호화됩니다.
암호화된 파일 안전하게 공유: 민감한 파일을 공유해야 할 때는 수신자의 공유 키를 사용하여 그들만 복호화할 수 있는 버전을 만듭니다.
주요 이점
패스키를 사용하여 파일을 안전하고 쉽게 암호화
기존 비밀번호 관리자 또는 하드웨어 보안 키와 연동
무료 오픈 소스
파일과 암호화 키가 장치를 떠나지 않음
파일을 안전하게 공유
AES-256 암호화("군사급")
오프라인 사용 가능
로컬 설치 가능(프로그레시브 웹 앱)
빠르고 초안전한 암호화 및 복호화
설계상 개인 정보 보호: 추적, 분석 또는 데이터 수집 없음
암호화 과정
파일키는 먼저 패스키를 생성해야 하며, 이 패스키는 앱의 도메인을 신뢰 당사자로 사용하여 비밀번호 관리자나 보안 키 장치에 저장됩니다. 패스키가 생성되면 WebAuthn을 통해 정적 메시지를 전달하여 PRF(의사 난수 함수)와 상호 작용해 결정론적 난수 값을 생성합니다.
이 결정론적 난수 값을 사용하여 256비트 엔트로피를 가진 HKDF(HMAC 기반 키 유도 함수)가 생성됩니다. HKDF와 무작위 솔트를 사용해 AES-GCM에 사용할 키를 유도합니다. 유도된 키는 파일을 암호화하고 복호화하는 데 사용되며, 각 파일마다 새로운 유도 키가 사용됩니다.
이 과정에서 수행되는 모든 저수준 암호화 함수는 웹의 내장 SubtleCrypto 인터페이스(Web Crypto API)를 사용합니다. 모든 암호화된 파일은 16바이트 해시로 구성된 고유한 무작위 솔트를 사용합니다.
공유 키
모든 파일키 사용자에게는 "공유 키"라는 고유한 긴 문자 문자열이 있으며, 이는 공개 주소처럼 작동합니다. 메뉴에서 "당신의 공유 키"를 통해 확인할 수 있습니다.
파일 공유하기
파일 옆의 "공유" 버튼을 클릭합니다.
수신자의 공유 키를 입력합니다(수신자가 먼저 공유해야 함).
파일키는 수신자만 잠금을 해제할 수 있는 특수 암호화 버전을 만듭니다.
파일(".shared_filekey"로 끝남)을 저장하고 이메일, 메시지, 파일 전송 등 원하는 방법으로 수신자에게 보냅니다.
공유 파일 받기
누군가 공유 파일을 보내면:
파일을 장치에 저장합니다.
파일키에 드래그 앤 드롭합니다.
패스키로 인증합니다.
파일키는 자동으로 공유 파일임을 감지하고 고유 키를 사용하여 잠금을 해제합니다.
보안 세부 사항
개인 키는 장치를 떠나지 않습니다.
각 공유 파일은 특정 수신자만 열 수 있습니다.
암호화는 완전히 장치에서 이루어지며 서버가 관여하지 않습니다.
파일은 군사급 암호화(AES-256)로 보호됩니다.
의도된 수신자만 파일에 접근할 수 있다는 확신을 가지고 파일을 공유하세요!
공유 키 암호화 과정
WebAuthn PRF: 사용자의 WebAuthn 패스키에서 PRF(의사 난수 함수) 출력을 가져오는 것으로 시작합니다.
HKDF 생성: 이 PRF 출력을 사용하여 HKDF(HMAC 기반 키 유도 함수)를 생성하며, 이는 시드로 사용됩니다.
결정론적 ECDH 키 쌍: 이 시드를 사용하여 P-521 곡선에서 ECDH(타원 곡선 디피-헬만) 키 쌍을 결정론적으로 생성합니다.
키 형식:
개인 키는 PKCS#8 형식으로 인코딩됩니다.
공개 키는 원시 형식으로 인코딩됩니다.
SubtleCrypto로 가져오기: 두 키 모두 암호화 작업을 위해 브라우저의 SubtleCrypto API로 가져옵니다.
공유 비밀 유도: 파일을 공유할 때 다음을 사용하여 AES-GCM 키를 유도합니다:
당신의 개인 ECDH 키
수신자의 공개 ECDH 키
무작위로 생성된 솔트
암호화: 유도된 AES-GCM 키를 사용하여 파일 내용을 암호화합니다.
결과 암호화 파일에는 다음이 포함됩니다:
발신자의 공개 키(수신자가 어떤 키가 사용되었는지 알 수 있도록)
무작위 솔트(키 유도에 필요)
암호화된 파일 내용
이 접근법의 주요 장점은 ECDH 키 쌍을 저장할 필요가 없어 장치 저장소에서 추출되는 것에 더 강력하다는 것입니다. 사용자는 패스키로 인증하기만 하면 어떤 장치에서든 동일한 키 쌍을 재생성할 수 있습니다.
파일키 요구 사항
FIDO2 및 PRF를 지원하는 호환 가능한 비밀번호 관리자(iCloud, Google 등) 또는 하드웨어 보안 키(예: YubiKey 5 및 Bio 시리즈)
하드웨어 보안 키의 경우, 브라우저와 운영 체제가 WebAuthn 및 PRF 확장을 지원해야 합니다.
공개키 공유 있기는 함
p 512 으로 한다고 합니다
링크: aHR0cDovL2ZpbGVrZXkuYXBwLw==