금고로 문서 암호화하기
목차
로그인해서 쓰는 문서는 서버에 쓴 그대로 저장됩니다. 운영자가 서버를 열어 보면 읽을 수 있습니다. 금고는 이것을 막습니다. 금고에 넣은 문서는 서버로 가기 전에 이 브라우저 안에서 암호화되고, 푸는 열쇠는 금고 암호나 복구 코드를 넣은 브라우저에만 생깁니다.
모든 문서를 넣지 않아도 됩니다. 금고 문서는 공유와 실시간 함께 편집을 쓰지 못하고, 잠겨 있는 동안 검색에서도 빠집니다. 남에게 보이면 안 되는 문서만 골라 넣습니다.
서버가 읽지 못하는 것과 볼 수 있는 것
암호화하는 것은 문서 제목, 본문, 문서에 넣은 이미지의 내용입니다. 이 기기의 브라우저 저장소에 남는 사본도 암호화한 채 둡니다.
아래는 암호화하지 않습니다. 서버가 목록을 정렬하고, 쓰지 않는 이미지를 정리하고, 저장 공간을 세는 데 씁니다.
| 서버가 볼 수 있는 것 | 알아 둘 것 |
|---|---|
| 폴더 이름과 폴더 구조 | 금고 폴더의 이름도 보입니다. 숨길 내용은 폴더 이름에 적지 않습니다 |
| 어느 문서가 금고 문서인지, 어느 폴더에 있는지 | |
| 문서 수, 문서와 이미지의 크기 | 암호화한 뒤의 크기지만 원래 길이를 대강 짐작할 수 있습니다 |
| 만든 시각, 고친 시각, 저장한 횟수 | |
| 상단 고정 여부, 줄바꿈 형식(CRLF·LF) | |
| 이미지 형식(PNG·JPEG·GIF·WebP)과 가로세로 | |
| 문서가 쓰는 이미지의 식별자 목록 | 이미지 내용이 아니라 이름표입니다 |
금고가 막지 못하는 것
- 열려 있는 탭. 금고를 연 탭에서는 문서가 풀린 채 화면에 있습니다. 자리를 비울 때는 잠급니다
- 서버가 내려 주는 앱 코드가 바뀌는 경우. 웹 앱은 화면을 그리는 코드를 매번 서버에서 받습니다. 누군가 서버를 장악해 암호를 빼돌리는 코드를 내려보내면 금고로 막을 수 없습니다. 브라우저에서 도는 종단간 암호화(보내는 쪽에서 암호화해 받는 쪽에서만 푸는 방식)에 공통인 한계입니다
- 이 사이트 안에 끼어든 남의 스크립트. 금고가 열린 동안에는 그 스크립트도 문서를 풀어 볼 수 있습니다. 열쇠 값 자체를 꺼내 가지는 못합니다
- 짧거나 흔한 금고 암호. 서버에는 금고 암호로 잠근 열쇠가 있습니다. 그 값을 가진 사람은 암호를 하나씩 넣어 보며 맞춰 볼 수 있고, 틀린 시도는 기록되지 않아 횟수로 막을 수도 없습니다. 그래서 금고 암호는 10자 이상이어야 합니다. 남이 짐작하기 어려운 긴 문장을 씁니다
- 지우기와 옛 판으로 되돌리기. 서버가 금고 문서를 지우거나 예전에 저장한 암호문으로 바꿔 놓는 것은 막지 못합니다. 누가 암호문을 고쳐 넣으면 풀 때 실패하므로 알아챌 수 있습니다
- 옮기기 전 내용의 백업. 서버에 이미 있던 문서를 금고로 옮기면, 옮기기 전 내용이 서버의 장애 복구용 자동 백업에 최대 30일 남았다가 사라집니다
금고 만들기
설정의 금고 탭에서 금고 만들기…를 누릅니다. 금고가 없는데 문서 메뉴에서 금고로 옮기기…를 고르면, 옮기기 확인 뒤에 같은 창이 뜹니다.
금고 암호와암호 확인에 같은 암호를 넣습니다. 10자 이상이면 되고, 글자 종류 규칙은 없습니다복구 코드가 딱 한 번 나옵니다. 숫자와 영문 대문자 32자를 4자씩 8묶음으로 나눈 모양입니다.복사하거나파일로 저장(recovery-code.txt)해 둡니다복구 코드를 안전한 곳에 보관했습니다에 표시해야금고 만들기버튼이 눌립니다
복구 코드는 금고 암호를 잊었을 때 쓰는 두 번째 열쇠입니다. 이 코드만 있어도 금고가 열리니 남에게 보이지 않는 곳에 둡니다.
로그인한 상태에서 만든 금고는 계정에 딸립니다. 같은 계정으로 로그인한 다른 기기에서도 같은 금고 암호로 엽니다.
문서를 금고에 넣고 빼기
문서나 폴더의 ⋯ 메뉴에서 금고로 옮기기…를 고릅니다.
- 폴더를 고르면 하위 폴더와 그 안의 문서까지 옮기고, 그 폴더는 금고 폴더가 됩니다. 빈 폴더를 옮기면 빈 금고 폴더가 생깁니다
- 금고 폴더 안에서 새로 만든 문서와 하위 폴더는 처음부터 금고입니다. 거기에 문서를 만들거나 가져올 때 금고가 잠겨 있으면 먼저 열어 달라고 묻습니다
- 일반 문서를 금고 폴더로 끌어 넣을 수는 없습니다. 금고 문서는 일반 폴더로 옮겨도 암호화된 채로 남습니다
- 금고 문서는 약 750KB까지입니다. 암호화하면 크기가 늘어서 일반 문서보다 상한이 낮습니다. 이미지는 문서 하나에 1,000개까지입니다
- 로그인한 상태라면 인터넷에 연결되어 있어야 옮길 수 있습니다
- 옮기면 그 문서의 공유 링크와 초대가 끊깁니다. 다른 기기에서 그 문서를 열어 둔 채 아직 저장되지 않은 편집은 사라질 수 있습니다
- 이미지는 암호화해 다시 올리고 원래 이미지는 지웁니다. 다른 일반 문서가 같은 이미지를 쓰고 있으면 원래 이미지는 남깁니다
문서가 많은 폴더는 화면 위 알림에 금고로 옮기는 중… 3/20처럼 진행이 보입니다. 멈추기를 누르거나 연결이 끊겨 멈췄다면, 다시 눌렀을 때 남은 것부터 이어서 옮깁니다.
금고에서 빼기…는 거꾸로 복호화해 일반 문서로 되돌립니다. 그 뒤로는 서버가 내용을 읽을 수 있습니다. 금고 폴더 안의 문서는 하나만 뺄 수 없고, 가장 바깥 금고 폴더째 뺍니다.
열기와 잠그기
금고를 여는 단위는 탭입니다. 잠긴 금고 문서는 사이드바에 잠긴 문서로 보이고, 누르면 편집 영역에 금고 암호 입력칸이 뜹니다. 열기를 누르면 그 탭의 금고 문서가 모두 풀립니다. 명령 팔레트(Ctrl+P)의 금고 열기·금고 잠그기, 설정 금고 탭의 금고 열기…·지금 잠그기로도 열고 잠급니다.
금고는 이럴 때 잠깁니다.
- 탭을 닫거나 새로고침했을 때, 다른 페이지에 갔다가 뒤로 가기로 돌아왔을 때
- 그 탭에서 정해 둔 시간 동안 키 입력·클릭(터치 포함)·휠 굴림이 없을 때. 설정
자동 잠금에서5분·15분·30분·1시간·4시간가운데 고르고, 처음 값은 30분입니다. 잠그지 않는 선택지는 없고, 이 설정은 기기마다 따로 저장됩니다 - 같은 브라우저의 다른 탭에서 잠갔을 때. 잠그기는 모든 탭에 퍼지지만 열기는 퍼지지 않아서, 새로 연 탭은 잠긴 채 시작합니다
- 로그아웃하거나 다른 계정으로 바뀌었을 때
금고 문서에서 달라지는 것
| 기능 | 금고 문서에서 |
|---|---|
| 공유 | 링크 복사·읽기 전용 링크 복사·사람 초대…를 쓸 수 없습니다. 마크다운 복사는 되고, 복사한 글은 암호화되지 않은 글입니다 |
| 함께 편집 | 실시간으로 함께 고치지 않습니다. 같은 브라우저의 여러 탭에서는 한 탭만 고칠 수 있습니다. 두 기기에서 같은 문서를 동시에 고치면 늦게 저장한 쪽이 (충돌 사본)이 붙은 새 문서로 남습니다 |
| 서버로 보내기 | 입력을 멈추면 이 기기에 먼저 저장하고, 서버에는 문서마다 10초에 한 번까지 보냅니다. 다른 기기에는 그만큼 늦게 보일 수 있습니다 |
| 검색·지도 | 잠겨 있으면 빠집니다. 검색어를 넣었을 때와 지도 화면 아래에 빠진 개수가 나옵니다 |
| 위키링크 | [[ 자동완성은 금고 문서 안에서만 금고 문서 제목을 보여 줍니다. 일반 문서에 손으로 적은 [[금고 문서 제목]]은 금고가 열려 있을 때만 이어지고, 잠겨 있을 때와 공유 화면에서는 끊긴 링크로 보입니다 |
| 내보내기 | 잠겨 있으면 .md·인쇄처럼 문서 하나를 내보내는 메뉴는 누를 수 없고, 전체 내보내기와 옵시디언 볼트로 내보내기에서는 빠집니다(빠진 개수를 알려 줍니다). 열려 있으면 암호화되지 않은 파일로 들어갑니다 |
| 이미지 | 붙여넣기·끌어넣기로 넣으면 암호화해 올립니다. 금고 이미지는 금고 문서 안에서만 보이고, 이미지 줄을 일반 문서에 복사해 넣으면 이미지를 찾을 수 없습니다로 보입니다 |
| 저장 공간 | 계정의 문서 저장 공간은 암호화한 크기로 셉니다. 암호화하면 약 1.34배가 됩니다 |
| 명령줄 도구 | 목록에는 제목 없이 나오고, 받거나 고치려 하면 종료 코드 4로 멈춥니다 |
암호를 잊었을 때
잠긴 문서 화면이나 금고 열기 창에서 암호를 잊었나요?를 누르고 복구 코드를 넣습니다. 대소문자와 -·공백은 가리지 않습니다. 이어서 새 금고 암호를 정하면 복구 코드도 새로 만들어 한 번 보여 주고, 앞서 쓰던 복구 코드는 그때부터 듣지 않습니다.
금고 암호와 복구 코드를 둘 다 잃었다면 금고 문서를 되찾을 길이 없습니다. 열쇠를 서버에 두지 않으므로 운영자에게 요청해도 풀 수 없습니다. 남은 방법은 설정 금고 탭의 금고 초기화…입니다. 입력칸에 초기화를 그대로 적으면 금고 문서와 금고 폴더를 모두 지우고 금고를 없앱니다. 그다음 새 금고를 만들 수 있습니다.
암호를 알고 있을 때는 암호 바꾸기…에서 지금 암호와 새 암호를 넣습니다. 복구 코드는 바뀌지 않습니다. 문서를 잠근 열쇠 자체도 그대로입니다. 그래서 옛 암호가 새어 나갔고 누군가 그 암호로 잠근 열쇠의 사본을 이미 가지고 있다면, 암호를 바꿔도 그 사람은 막지 못합니다.
로그인하지 않고 쓰는 금고
로그인하지 않은 상태에서도 금고를 만들 수 있습니다. 이 금고는 이 브라우저에만 있고, 금고 암호와 복구 코드도 계정 금고와 따로입니다.
그 브라우저에서 로그인하면 화면 위에 로그인 전 금고 문서가 있다는 알림이 옮기기·나중에 버튼과 함께 뜹니다. 옮기기를 누르고 로그인 전 금고의 암호를 넣으면 계정 금고로 옮깁니다.
- 계정에 아직 금고가 없으면 로그인 전 금고가 그대로 계정 금고가 됩니다. 금고 암호와 복구 코드도 그대로 씁니다
- 계정에 금고가 있으면 문서를 그 금고에 넣습니다. 계정 금고의 암호와 복구 코드는 바뀌지 않습니다. 넣은 암호로 계정 금고가 열리지 않으면 계정 금고 암호를 한 번 더 묻습니다
나중에를 누르면 기억하지 않고, 다음에 앱을 열 때 다시 묻습니다- 옮긴 뒤에도 이 브라우저의 로그인 전 금고 문서는 지우지 않습니다. 로그아웃하면 다시 보입니다
암호화 방식
- 금고 암호는 PBKDF2-SHA256(암호에서 열쇠를 만드는 표준 계산)을 600,000번 되풀이해 열쇠로 바꿉니다. 되풀이가 많을수록 암호를 하나씩 맞춰 보는 데 오래 걸립니다
- 문서와 이미지는 AES-GCM 256비트(널리 쓰는 표준 암호 방식)로 암호화합니다. 문서와 이미지마다 열쇠를 따로 만들고, 그 열쇠를 다시 금고 열쇠로 잠급니다
- 복구 코드는 무작위로 뽑은 160비트 값입니다
- 금고 암호와 복구 코드는 서버로 보내지 않습니다. 서버에 가는 것은 둘 중 하나가 있어야 풀리게 잠근 금고 열쇠뿐입니다
- 암호화는 브라우저에 들어 있는 기능(Web Crypto)으로 합니다
정리
- 금고에 넣은 문서의 제목·본문·이미지는 서버에서 읽을 수 없고, 폴더 이름·크기·시각 같은 정보는 드러납니다
- 금고 암호와 복구 코드를 둘 다 잃으면 누구도 되찾을 수 없습니다. 복구 코드는 만들 때 한 번만 보입니다
- 금고는 탭마다 열고, 쓰지 않으면 정해 둔 시간 뒤에 잠깁니다
- 금고 문서는 공유·함께 편집을 쓰지 못하고, 잠겨 있으면 검색·지도·내보내기에서 빠집니다
- 금고가 열린 채 내보내면 암호화되지 않은 파일이 됩니다