"제일 안전한 비밀번호는 네 앱이 아예 안 가진 비밀번호야. 안 가진 건 흘릴 수도 없거든."
저장하고 싶어지는 마음
공유에 다시 연결하는 건 앱이 사용자 이름과 비밀번호를 기억하면 매끄러워져. 그래서 어딘가 넣어두고 싶어지지. 저장한 주소 안에(smb://user:pass@host), 앱 DB 에, 설정 파일에. 전부 언젠가 새는 자리야. 주소는 로그에 찍히고, DB 는 읽을 수 있는 곳에 백업되고, 설정 파일은 git 에 올라가. 저장한 비밀은 나갈 문이 많은 비밀이야.
Waygate 는 아예 안 가져
Waygate 는 비밀을 아예 안 가져서 이 위험을 통째로 없앴어. 비밀번호를 담는 자리가 없어. 사용자 이름과 비밀번호는 macOS 연결 창과 Keychain 이 통째로 맡아. 시스템이 묻고, 시스템이 보관하고, 연결할 때 시스템이 내줘. Waygate 는 그걸 주소에도 SQLite 에도 로그 한 줄에도 git 에 닿을 만한 어디에도 안 넣어. 공유를 붙여야 하면 시스템 흐름을 띄우고 물러나.
안 갖는 게 제일 센 보호야
새겨둘 만한 보안 원리야. 비밀을 안 흘리는 제일 확실한 방법은 애초에 안 갖는 거야. 저장한 비밀번호를 암호화하는 건 평문보다야 낫지만, 여전히 열쇠와 암호문과 책임을 네 앱이 진다는 뜻이지. Keychain 에 맡기면 그 비밀이 처음부터 네 것이 아니었던 게 되고. Waygate 는 매번 맡기는 쪽을 골라. 파일 관리자가 할 일은 파일을 보고 바꾸는 거지 비밀번호 관리자 노릇이 아니니까.
비밀번호는 macOS 와 Keychain 에만 있고 Waygate 는 하나도 안 남겨. 사용자 이름이나 비밀번호가 주소에도, DB 에도, 로그에도, git 에도 들어가지 않아. 연결은 시스템 흐름에 맡기고 비밀은 macOS 가 갖게 둬. 안 갖고 있는 게 안 흘리는 제일 확실한 길이거든.
가족 전체가 같은 자세야. cwk 형제 앱들 규칙이 똑같아. 비밀은 OS Keychain 에 있고, repo 에도 로그에도 안 남아. 이 퀘스트에서도 내부 참조는 개념으로만 말하지 진짜 호스트 이름이나 IP 나 비밀번호로 말하지 않아. 아빠가 만드는 것들은 믿음을 주고받는 자리고, 비밀번호를 쟁여두는 파일 관리자는 자기가 벌어야 할 그 믿음을 스스로 깨는 셈이니까.