"비밀이 사는 집은 OS 가 만들어둔 금고야. 설정 파일도, 로그 한 줄도, 소스에 박아둔 상수도 아니고."
비밀한테는 집이 있고, 그게 내 코드는 아니야
Flint 가 다른 기계에서 도는 머리한테 닿을 때 그 호출은 인증을 거쳐. 인증이란 건 비밀이 있다는 뜻이고. 비밀의 첫 번째 규칙은 어디 사느냐야. macOS Keychain, 그러니까 운영체제가 지켜주는 금고. 그 밖은 안 돼. 소스에 박지도, 매크로 파일에 쓰지도, 로그에 찍지도, 저장소에 커밋하지도 않아. 비공개 저장소라도 이건 안 바뀌어. '비공개' 는 살아 있는 비밀을 둘 자리가 아니거든. Keychain 이 있는 이유가 바로 앱이 오래 가는 비밀을 자기 파일이나 코드에 들고 있지 않아도 되게 하려는 거야.
오래 가는 건 금고에, 잠깐 쓰는 건 메모리에
수명이 다른 비밀이 둘이고, 그래서 사는 자리도 둘이야. 오래 가는 쪽인 사용자가 정한 PIN 은 Keychain 에 있고, 필요할 때만 꺼내 쓰고 다른 데 복사하지 않아. 거기서 잠깐 사는 세션 토큰을 하나 만드는데, 그 토큰은 세션이 사는 동안 메모리에만 있고 절대 파일로 안 남아. 수명에 맞춰 자리를 정하는 게 규율이야. 오래 가는 비밀은 지켜주는 금고에, 잠깐 쓰는 건 앱이 꺼지면 같이 사라지는 메모리에. 둘 다 평문으로 디스크에 닿는 일이 없고.
비밀 수명 집
---------------- ---------- ------------------------
PIN 오래 감 macOS Keychain (지켜주는 금고)
세션 토큰 잠깐 메모리에만 (파일로 안 남김)
절대 안 되는 곳: 코드에 박기, 로그, 설정 파일, 저장소.
사설로 난 길
지나가는 길도 중요해. 원격 호출은 열린 인터넷이 아니라 사설로 깔아둔 망을 타고 가. 그 길 자체가 밖에서 닿을 수 없는 데고, 세션 헤더가 그 사설 연결 위에 실리는 거지. 이렇게 겹쳐두는 거야. 비밀은 금고에, 잠깐 쓰는 토큰은 메모리에, 그리고 길은 사설로. 네트워크 경로부터 노출이 안 되니까 헤더가 애초에 공개 인터넷을 건너지도 않고. 층마다 다른 층이 뚫릴 수도 있다고 가정하고 자기 몫을 더하는 거야.