코드 서명
만들면 바로 배포된다고 생각하기 쉽습니다. 서명이 없으면 윈도우와 맥 모두 경고를 띄웁니다. “알 수 없는 개발자” 라는 화면 앞에서 대부분의 사용자는 설치를 멈춥니다. 만드는 것과 남의 컴퓨터에서 실행되게 하는 것은 다른 일입니다.
한 문장으로
코드 서명은 이 프로그램을 누가 만들었고 배포된 뒤 바뀌지 않았음을, 운영체제가 확인할 수 있게 하는 절차입니다.
하는 일
- 인증서 발급 — 개인 사업자와 법인의 절차가 다릅니다
- 서명 — 배포 파일에 만든 사람 정보를 붙이기
- 맥 공증 — 애플 서버에 올려 검사를 받는 추가 절차
- 윈도우 평판 — 다운로드가 쌓이며 경고가 줄어드는 구조
- 갱신 — 인증서에는 유효 기간이 있습니다
- 자동 배포에 넣기 — 매번 손으로 서명하지 않게
하지 않는 일
- 프로그램 자체의 보안 — 서명은 출처를 밝히는 것이지 안전을 보증하지 않습니다
- 라이선스와 정품 확인 — 다른 주제입니다
- 스토어 등록 — 스토어를 거치면 절차가 달라집니다
이웃 개념과 헷갈리는 지점
- 스토어 배포맥 앱스토어나 마이크로소프트 스토어를 통한 배포
- 스토어를 거치면 서명과 검사를 스토어가 관리합니다. 대신 심사와 수수료가 붙고 기능 제약도 생깁니다.
- 자동 업데이트새 버전을 스스로 받아 교체하는 장치
- 업데이트 파일도 서명돼 있어야 합니다. 아니면 중간에 바꿔치기당해도 확인할 방법이 없습니다.
- TLS 인증서웹사이트의 통신을 암호화하는 인증서
- 이름이 비슷하지만 다른 것입니다. 발급 기관도 절차도 다르고, 하나가 있다고 다른 하나가 되지 않습니다.
- 난독화코드를 읽기 어렵게 만드는 것
- 서명은 출처를 밝히고 난독화는 내용을 가립니다. 둘 다 해도 프로그램이 안전해지는 것은 아닙니다.
언제 필요한가
이럴 때 필요합니다
- 설치할 때 경고가 뜬다는 문의를 받을 때
- 처음 외부에 배포할 때
- 인증서 만료가 다가올 때
- 사내 배포에서 고객 배포로 넘어갈 때
아직 아니어도 됩니다
- 사내에서만 쓰고 정책으로 예외를 걸어 둘 수 있다면 미룰 수 있습니다
- 웹으로 충분한 기능이라면 애초에 해당이 없습니다
- 이미 서명과 공증이 자동 배포에 들어가 있다면 손댈 것이 없습니다
여기서부터는 갈립니다
인증서 발급에 걸리는 시간과 요구 서류는 발급 기관과 회사 형태에 따라 다르고, 개인 사업자와 법인이 또 다릅니다. 그리고 윈도우는 서명이 있어도 처음에는 경고가 뜰 수 있습니다. 다운로드가 쌓이면서 평판이 생겨야 사라지는데, 그 기간을 미리 알 수는 없습니다. 그래서 배포 일정을 잡을 때는 인증서 발급과 초기 평판 구간을 함께 감안해야 하고, 둘 다 우리가 앞당길 수 있는 부분이 아닙니다.
자주 묻는 질문
설치할 때 경고가 뜹니다. 맥은 아예 실행을 막고 우회 방법을 안내해야 하며, 윈도우도 “보호됨” 화면이 뜹니다. 기술적으로는 설치할 수 있지만 실제로는 대부분 거기서 멈춥니다.
인증서는 연 단위로 발급받고 종류에 따라 가격이 다릅니다. 맥은 애플 개발자 프로그램에 가입해야 합니다. 둘 다 배포하면 각각 필요합니다. 큰 금액은 아니지만 매년 나가는 비용입니다.
배포하는 운영체제마다 따로 필요합니다. 하나로 양쪽이 되지 않습니다. 한쪽만 배포한다면 그쪽만 준비하시면 됩니다.
이미 설치된 것은 대개 계속 돕니다. 다만 새로 배포하는 파일에는 유효한 인증서가 필요합니다. 만료 전에 갱신해 두지 않으면 급한 수정을 못 내보내는 상황이 생깁니다.
가능하지만 표시되는 이름이 개인 이름이 됩니다. 사업용이라면 사업자나 법인 명의를 권합니다. 발급 절차도 명의에 따라 달라서 미리 확인하시는 게 좋습니다.
범위가 애매해도 괜찮습니다
지금 상황만 알려 주시면 필요한 범위와 대략의 규모를 짚어 드립니다.