프로젝트 소개

이 저장소는 OpenMLS Rust 라이브러리를 래핑한 Dart 패키지를 제공하며, 확장 가능한 종단간 암호화 그룹 메시징을 위한 메시징 레이어 보안(MLS) 프로토콜(RFC 9420)을 지원합니다. 효율적인 그룹 키 합의, 전방향 안전성(forward secrecy), 탈취 후 안전성(post-compromise security)을 위해 TreeKEM을 활용합니다. 하이브리드 및 순수 격자 기반 옵션을 포함한 클래식 및 실험적 양자 내성 암호 스위트를 모두 지원합니다. 모든 MLS 상태는 네이티브 플랫폼에서 SQLCipher로, 웹 어셈블리(WebAssembly)에서는 Web Crypto AES-256-GCM으로 저장 시 암호화되며, 암호화 키는 플랫폼 보안 저장소에 보관됩니다. Flutter 앱에 최적화되어 안드로이드, iOS, macOS, 리눅스, 윈도우, 그리고 dart2js를 통한 웹에서 모두 작동합니다. 패키지에는 전체 그룹 생명주기 API(생성, 참가, 멤버 추가/제거, 제안, 커밋), 자격 증명 처리(기본 및 X.509), 간단한 `MlsEngine` 인터페이스를 통한 쉬운 통합 기능이 포함되어 있습니다. 개발자는 기본 Rust 구현을 숨긴 채로 키 패키지 생성, 그룹 관리, 애플리케이션 메시지 암호화/복호화, 비밀 내보내기를 수행할 수 있습니다. 빌드 시스템이 자동으로 미리 컴파일된 네이티브 라이브러리를 다운로드하므로, 최종 사용자는 로컬 Rust 툴체인이 필요하지 않습니다. 알려진 제한 사항으로는 웹에서 dart2wasm 타겟을 지원하지 않는 점과 Flutter 실행 중 빌드 훅이 건너뛰어지는 경우가 있으며, 이는 전체 `flutter build web` 실행이나 빌드 스탬프 정리로 완화할 수 있습니다. 이 라이브러리는 강력한 그룹 암호화와 양자 내성 준비가 필요한 안전한 크로스 플랫폼 메시징 솔루션 구축에 적합합니다.