서버 관리자도 못 읽는 봉인된 봉투 암호화로 학생 데이터 받기
학생 각자 기기로 제출한 결과가 교사에게 쌓이되 각 교사만 관리하게 하고 싶은데, 앱스스크립트가 평문으로 저장된다는 이야기를 듣고 코덱스에게 암호화를 요청했더니 해준다고는 하는데 믿어도 될지 묻는 질문이 올라왔다. n8n을 제안했다가 개발자 PC를 서버처럼 쓰는 방식이라 방향이 안 맞는다는 정정이 이어졌고, 클로드가 제안한 봉인된 봉투 방식, 즉 브라우저에서 공개키·비밀키 쌍을 만들어 학생 제출물을 공개키로 암호화해 서버에는 암호문만 쌓이고 관리자도 못 읽는 방식(WebCrypto 기반 종단간 암호화)이 공유됐다.
선생님들의 답 7개
선생님 드라이브에 저장해두고 n8n에서 특정 폴더에 파일이 업로드되면 그걸 트리거 삼아 메일 등으로 전송하게 만드는 건 어렵지 않다. 다만 개발자의 PC를 서버처럼 쓰는 형태라 방향성이 안 맞는 것 같다.
PDF나 이미지 대신 JSON 형태로 저장하면 과금 폭탄의 위험을 줄일 수 있을 것 같다. 사용자 컴퓨터에만 데이터가 남게 하려면 데스크톱 앱으로 가야 할 수도 있는데, 살핌도 이런 방식이고 거기에 외부 저장을 열어주는 형태로 볼 수 있다.
클로드가 제안한 봉인된 봉투 방식을 공유한다. 선생님이 수업 열기를 누르면 브라우저가 공개키와 비밀키를 한 쌍 만들고 공개키만 서버에 올라간다. 학생이 제출하면 그 공개키로 보고서를 잠가서 보내므로 서버(수파베이스)에는 암호문만 쌓이고 관리자도 무엇이 적혔는지 못 읽는다. 열쇠를 가진 선생님 브라우저에서만 풀리는 방식으로, 브라우저 내장 WebCrypto만 쓰고 새 의존성도 필요없다. 다만 관리 링크를 잃으면 아무도 못 여는 게 이 방식의 단점이다.
이 방식은 종단간 암호화 방식이라 유출되어도 해커가 읽을 수 있는 정보가 없다. 다만 암호화가 되었든 아니든 개인 클라우드에 개인정보가 보유되고 있다는 사실 자체가 걸릴 수 있어 문서등록대장 개인정보 지침을 다시 찾아봐야 할 것 같다.
학생 개인정보를 다루는 서비스 자체가 안 되는 게 아니라, 절차와 법적 기준을 충족하면 가능하다. 안 그러면 안 되는 것일 뿐이다.