
자바스크립트 화이트박스 암호와
크롬 라인 메신저의 보안 강화
코드너리 | 2023. 03. 18
서비스 보안
Web Assembly
사용된 기술:

개요:
LINE 애플리케이션은 다양한 플랫폼에서 동작하며, 네이티브든 웹이든 모든 환경에서 높은 수준의 보안을 제공하기 위해 노력하고 있습니다. 하지만 Chrome 확장 프로그램을 포함한 모든 웹 애플리케이션은 브라우저에서 암호키와 같은 민감한 데이터를 안전하게 저장할 수 있는 옵션이 거의 없다는 공통 보안 문제에 직면해 있습니다.
이 발표에서 우리는 화이트박스 암호와 웹 어셈블리를 사용해 이 문제를 개선하기로 결정한 이유와 화이트박스 구현을 기존 보안 기능에 통합하는 것이 어려운 이유를 설명합니다. 그리고 공격자가 임의의 코드 실행 및 암호 알고리즘을 완전히 제어할 수 있는 상황에서도 개인키를 알 수 없도록 화이트박스 구현을 E2EE에 통합하는 방법과, 화이트박스 암호를 이용한 유스케이스를 살펴봅니다.
목차
1. 보안을 개발 파이프라인에 통합시키는 방법
- 보안을 왼쪽으로
- 보안 모듈 제공
2. 웹 애플리케이션에서의 보안 위협
- 자바스크립트
- 크로스 사이트 스크립팅 취약점
- 브라우저의 시큐어 스토리지의 부재
- 예상치 못한 액세스 토큰의 유출
- API 어뷰징
3. 위협 모델
- 화이트박스 위협 모델
4. 모던 웹 기술
- Web Crypto API
- IndexedDB
- 제약사항
5. 암호 연산중에도 키가 노출되지 않는 화이트박스 암호
- 화이트박스 암호
- 화이트박스 암호의 활용
- 화이트박스 암호 공격
6. LTSM WASM 아키텍쳐
- LTSM(LINE Trusted Security Module)
- 웹 어셈블리
- LTSM WASM
- 화이트박스 컨테이너와 SecureKey
7. 유스케이스
- 시큐어 스토리지
- 트랜잭션 서명
- 종단간 암호화
8. 화이트박스 통합 이슈
- 화이트박스 구현의 제약사항
- Workaround
- 호환되지 않는 패딩 이슈
- Curve25519 키 생성시 ‘클램핑’
9. 결론
- 화이트박스 구현
- 화이트박스 암호
- 안전한 설계