[HACKING] Lavabit&Magma - Encrypted Email Service (Dark Mail Alliance)

Lavabit이 돌아오다!

올 1월 20일 재미있는 소식이 하나 들려왔습니다. 바로 Lavabit의 재개 소식입니다. 2013년 Edward Snowden 사건(?)으로 인해 잠시 운영을 중단한 암호화 메일 서비스입니다. 아무래도 큰 이슈와 함께 있던 서비스이기도 하면서 강력한 암호화를 통해 메일을 도청할 수 없도록 하기에 해커들의 관심이 끊이질 않죠.

아래 lavabit 홈페이지에 보면 아래와 같이 다시 서비스를 진행한다고 명시되어 있습니다. 한번 읽어보시면 좋을 듯 싶네요.

https://lavabit.com/

What is Lavabit?

자 여기서.. Lavabit를 알고 오신 분도 있고 처음 들어보시는 분도 있을 겁니다. 간단하게 설명 드리죠. 말 그대로 암호화 메일 서비스입니다. 일명 DIME(Dark Internet Mail Environment)라고 불리는 나름의 표준 방식으로 운영되며 본문, 메타 데이터 및 네트워크 등 모든 측면에서 암호화를 적용하여 사용자에 대한 노출을 최소화합니다. 물론.. 권한 문제도 확실하게 가져가서 관리자도 볼 수 없는 구조를 가지죠.

※ DIME는 Lavabit에서 만든 별도의 프로토콜, 통신 플랫폼이라고 보시면 됩니다.

Lavabit의 3가지 Enctypt mode

  1. Trustful Mode 이 모드는 일반적인 메일서비스의 기능을 수행합니다. 다른 메일과 동일하게 SMTP, POP, IMAP을 사용하지요. 기본적으로 해당 모드로 동작 시 메일서버에 대해서 신뢰한다고 보게됩니다.

  2. Cautious Mode 이제부터 본격적인 암호화 모드입니다. Cautious Mode는 서버에 대한 신뢰도를 최소로 낮춥니다. 종단간 암호화기 때문에 키를 탈취할 수 있는 환경이 되거나 메모리에 접근해서 Text를 읽어온다면… 찾을 수도 있겠죠.

  3. Paranoid Mode 예전에 Meterpreter shell을 paranoid mode 로 사용하는법에 대해 포스팅한적이 있습니다. 생각하신거와 같이 Lavabit에서 가장 강한 암호화이고 사용에 대한 불편함을 가져가야합니다.. (키가 전송되지 않기 때문에.. 직접 들고.., 아님 따로 주던가 해야하죠)

How to use??!

Magma 라는 Lavabit의 Opensource 프로그램을 이용하여 사용이 가능합니다. 사용에 앞서서 MySQL과 Memcached를 사용하기 때문에 미리미리 설치해줍니다.


#> apt-get install mysql-server memcached

다음 lavabit의 github에서 magma를 다운로드 받습니다.


#> git clone https://github.com/lavabit/magma

다운로드 후 INSTALL script 를 실행하여 설치하여줍니다. 인자값으로는 db 정보가 필요합니다.


#> ./INSTALL -d ~/ -u [MYSQL USER] -p [MYSQL PASSWD] -s [DB NAME]

실행 시 아래와 같은 에러가 발생하는 경우가 있습니다. 물론 mysql 이 설치되어 있는데 말이죠.

1+0 records in 1+0 records out 33 bytes (33 B) copied, 8.2437e-05 s, 400 kB/s 1+0 records in 1+0 records out 33 bytes (33 B) copied, 7.6789e-05 s, 430 kB/s Can’t find /etc/init.d/mysqld Is mysql-server installed?

이럴때는 INSTALL script 내용을 약간 수정해줍니다.

설치하시면 정상적으로 설치될겁니다.

만약.. 직접 빌드하시고 싶다면.. 위 과정을 스킵하고 magma/dev/script 에 있는 linkup.sh 를 실행시켜줍니다.


#> magma/dev/scripts/linkup.sh

build.lib 스크립트를 통해 종속성이 걸린 것들을 모두 컴파일합니다.


#> build.lib all

그리고.. 빌드하면..


#> build.magma
#> build.check

정상 동작하는 지 확인 후 실행해줍니다.


#> check.run
#> magma.run

Reference

https://lavabit.com/ https://lavabit.com/explain-lavabit.html https://github.com/lavabit/magma