보안 검토 자료
전산·보안 담당자가 도입 심사에 쓰도록 한 쪽에 모았습니다 (v0.62.0 기준).
1. 바깥 통신
| 언제 | 어디로 | 무엇을 | 끄기 |
|---|---|---|---|
| 시작 시·창이 떠 있는 동안 6시간마다·예약 검사 뒤(자동) | drev.co.kr/version.json (HTTPS) | 버전 숫자 조회(요청 머리글에 현재 버전 번호) | config.yaml update_check: false |
| [설치] 클릭 시 / 예약 검사 뒤 새 판이 있을 때(자동) | 작은 판: drev.co.kr/Drev-App.zip · 큰 판·설치판 실행 파일: github.com → release-assets.githubusercontent.com | 새 판 프로그램 파일 내려받기 (판매자 서명 + SHA-256 대조) | config.yaml auto_update: false (그러면 클릭할 때만) |
| [의견 보내기] 클릭 시 | 회사 SMTP(설정한 경우) → 메일 앱 | 적은 내용·버전·고른 경우에만 진단 줄(경로·파일 이름·프로젝트 번호·도면번호·Rev 값·한글 오류 문장은 가림) | 누르지 않으면 없음 |
| 브리핑 자동 발송(사내 메일 서버를 설정한 경우) | 설정한 메일 서버 → 정한 수신자 | 아래 '6. 메일에 실리는 것' | 메일 설정을 비우면 초안(.eml)만 만듦 |
| 창 모드로 화면을 열 때 | Microsoft (화면 엔진 Edge WebView2 자체) | 엔진이 스스로 하는 통신 — Drev가 텔레메트리·백그라운드 통신·SmartScreen·구성요소 업데이트를 끄는 인수를 주지만 엔진 자체 업데이트(Microsoft Edge Update)는 끄지 못함 | 설정 › 화면 여는 방식 '기본 브라우저' (ui: browser) |
| 검사·비교·확인 | 없음 | — | — |
2. 업데이트 무결성
업데이트 목록(version.json)에는 판·파일 지문(SHA-256)·발행/만료 시각을 묶은 본문에 판매자 비밀키로 한 Ed25519 서명이 붙습니다.
프로그램은 코드에 고정한 공개키(지문 689534a3c966e67b6fa5b807910fb0c3ccfe6c02eeef77d39b5e3c86689478ca)로만 그 서명을 믿고, 서명이 없거나 틀리거나 만료됐거나
판이 서명과 다르면 설치하지 않고 화면·로그에 이유를 남깁니다. 받은 파일은 서명된 지문과 맞을 때만 쓰며, 교체 뒤 새 판이 실제로 실행되는지 확인하고
실패하면 이전 판으로 되돌립니다. 실행 파일 자체의 코드 서명(Authenticode)은 아직 없습니다 — 포터블판은 Python Software Foundation이 서명한 Python 런타임으로 동작합니다.
3. 설치 위치 · 권한
- 설치판:
%LOCALAPPDATA%\Drev— 관리자 권한 불필요, 시작 메뉴(선택 시 바탕화면) 바로가기, [앱 및 기능]에서 제거 - 포터블판: 압축을 푼 폴더 그대로(프로그램과 데이터가 같은 폴더)
- 매일 자동 실행을 켜면 Windows 작업 스케줄러에
ProjectWatcher작업이 생깁니다(설치한 그 Windows 계정, 창 없음) - 화면은 그 PC 안(127.0.0.1)에서만 열리고 따로 로그인이 없습니다 — 감시 PC는 담당자 한 명이 쓰는 PC에 두세요
- 감시 폴더는 읽기만 합니다 — 감시 대상 파일을 수정·이동·삭제하는 코드가 없습니다
- 양식함(선택 기능, 기본 꺼짐) — 회사 양식을 폴더로 올리고 승인·판 관리·내려받기를 하는 별도 화면입니다. 켜면 Windows 작업
DrevForms가 로그인 때 그 화면을 사내망 주소(기본 포트 8766)에 열고, 직원은 관리자가 등록한 계정으로 로그인합니다. 암호화(HTTPS)가 없어 사내망 전용입니다 — 인터넷(공인) 주소에서 온 접속은 거절하며, 공유기에서 그 포트를 열면 안 됩니다. 다른 PC에서 열려면 방화벽 인바운드 규칙(개인·도메인 네트워크)이 필요합니다 (설치판은 설치 때 고르면 관리자 확인 후 추가, 포터블판은 설정 화면에 명령 한 줄 안내). 양식 파일은 그 PC의 Drev 데이터 폴더(forms.db·forms_store)에만 보관합니다
4. 저장하는 데이터 (데이터 폴더: 설치판 %LOCALAPPDATA%\Drev, 포터블판 프로그램 폴더)
state.db— 변경·확인 이력, 감시한 문서의 글자와 비교용 페이지 그림. 도면과 같은 등급으로 다루세요(디스크 암호화 BitLocker 권장)config.yaml— 설정. SMTP 비밀번호는 그 PC의 그 Windows 계정만 풀 수 있게 암호화(DPAPI)briefs— 브리핑 HTML과 메일 초안(.eml) ·backups— 주 1회 자동 백업 ·watcher.log— 실행 기록
5. 제거 후 남는 것
제거하기 전에 설정 › 매일 자동 실행에서 [자동 실행 해제]를 먼저 누르세요. 제거하면 프로그램이 지워지고
%LOCALAPPDATA%\Drev의 config.yaml·state.db·briefs·backups·watcher.log는 남습니다 — 완전히 지우려면 그 폴더를 삭제하세요.
포터블판은 폴더를 지우면 그것이 제거입니다(자동 실행이나 [이 PC에 설치]를 켰다면 먼저 [설정]에서 해제).
6. 메일에 실리는 것
- 바뀐 부분의 글자(이전 값·새 값·위치)와 전/후 확대 사진(원본 파일이 아님) — 사진은 설정 › 메일 '전/후 사진을 싣지 않음'(
mail.images: false)으로 뺄 수 있고, 그러면 '사진은 감시 PC 화면에서' 한 줄만 남습니다 - 프로젝트 번호·파일 이름·감시 폴더 이름 아래의 경로(예: server/P26-050/도면) — 감시 폴더의 전체 경로(C:\…·\\서버\공유\…)는 기본으로 싣지 않습니다(
mail.show_paths: true로 켬) - 변경마다 #번호와 '확인했으면 이 메일에 회신해 주세요' 안내 — 메일에는 확인 링크를 싣지 않습니다(화면이 127.0.0.1에서만 열리기 때문). 확인 링크는 감시 PC의 화면과 그 PC에 저장된 브리핑 원본(.html)에만 있습니다
- 메일 서버를 설정하지 않으면 메일 초안(.eml)만 만들고, 보내기는 사람이 합니다. 공용 메일 서비스(Gmail·네이버 등)를 넣으면 사진이 그 회사 서버를 거칩니다 — 사내 메일 서버를 쓰세요