본문으로 건너뛰기

CSO 등급

기능 상세

경고

자료 접근에 일부 제한이 있음을 알려드립니다.
CSO 등급 기능에 대한 상세 내용은 다음 에서 확인 하실 수 있습니다.

마우스 우클릭 등급 지정

1.개요

  • 사용자는 우클릭 메뉴를 통해 문서에 등급을 지정할 수 있습니다.

2. 기능 설정 (필수 및 옵션)

  • 아래 항목 중 필수 항목은 꼭 설정해야 기능이 동작합니다.

1. DS_MIP_INIT 정책에 관리센터 도메인추가 (필수)

커스텀 정책 DS_MIP_INIT 정책의 json 데이터의 아래의 Security365 관리센터 도메인을 추가해야합니다. (보안 등급 및 레이블 정보를 가져오기 위함)

\{
...
"s365_portal_url":"https://devspsvr.softcamp.co.kr" // 주의) 해당 주소값은 예시이며, 사이트에 적용시 알맞은 public 도메인으로 변경 필요함.
...
\}

2. 우클릭 메뉴 추가 (필수)

커스텀 정책 DS_MIP_SHELL_MENU에 등급 지정 메뉴를 추가 (링크)

(예시)
\{
...
\{
"titleRes": "SHELL_MODIFY_SECULABEL", // 메뉴명
"titleDesc": "UI_DRM_TO_AIP_DESC",
"targetCmd": 254, // 해당값 고정값이므로 반드시 254로 해야함함
"targetIcon": "ApplySecuLabel.bmp", // 메뉴 아이콘 리소스
"targetExt": "doc|xls|docx|pptx|xlsx|xlsb",
"targetType": "*"
\}
...
\}
  • 관련 리소스
    • C:\Windows\Softcamp\SDK\Res\DS\ResUIKOR.rcSHELL_MODIFY_SECULABEL = 등급 지정 정의 추가

3. 기본 선택 등급 설정 (옵션)

  • 등급 지정 UI에서 default 선택 등급을 설정하기 위해서는 ztcap 콘솔에서 집행 정책에 지정 등급 선택의 기본 등급으로 설정하여야함.

  • 집행 정책 백데이터에는 아래와 같은 기본 등급 지정 데이터가 추가됨.

    {
    //...
    "category": "availableSecurityLevelList",
    "info": {
    //...
    "defaultSelectLevelId": "iqCCmC4N-ADUvGusn-4Gkhlyi6-vPJQvg6r" // 기본지정 등급 아이디
    //...
    }
    }
  • 해당 정책이 없는 경우에는 가장 첫번째 등급 레벨의 라벨이 선택됨.

3. 관련 Security365 서비스 (필수)

경고

등급 지정 기능이 동작하기 위해서는 반드시 관리센터(spsvr) 서비스에 보안 등급&레이블 정보가 등록되어있어야하고, 또한 어떤 등급끼리 지정 및 변경이 가능한지에 대한 정책이 조건부 정책에 등록되어있어야 동작합니다.

A. 관리센터 - 보안등급&레이블 등록

B. 조건부 정책 ( ztcap ) : 변환 가능한 보안 레이블에 대한 정책

- ztcap 정책은 현재 문서가 어떤 보안 등급(레이블)로 변경이 가능한가에 대한 정책을 구성해야함. ( [개발 백그라운드 데이터 관련](https://wiki.softcamp.co.kr/pages/viewpage.action?pageId=162349616) )
- [조건부 정책 - Endpoint 메뉴 가이드](https://idocs.softcamp.co.kr/shieldrm/Guide/Webconsoleguide/Policy_Management/Endpoint)

오버레이 아이콘 적용

1. 개요

  • DS 6.0 ENT 문서등급(C/S/O)으로 지정된 문서에 대하여 오버레이 아이콘 식별 기능 제공
  • 적용 가능한 색상: Red 🔴, Green 🟢, Yellow 🟡

2. 제약 사항

  • 윈도우에 설치된 프로그램의 오버레이 아이콘이 다수(12개 이상)일 경우 기존 오버레이 아이콘이 표시되지 않을 수 있습니다.
  • 기능 개발 이전 모듈이 적용된 클라이언트 환경에서 문서등급 아이콘이 적용된 문서가 편집/저장 시 식별 정보가 삭제됩니다. 삭제되는 정보는 pre header에 저장되는 메타 데이터이며, 등급정보 데이터는 문서 내에 저장되어 있어 파일 열람/저장 시 등급 아이콘이 다시 적용됩니다.
  • 문서등급 아이콘이 적용된 문서가 Teams, SharePoint 자료실에 업로드 후 다운로드될 경우 사이트 정책에 따라 아이콘 식별 정보가 삭제될 수 있습니다.

문서 속성 창 보안 등급 표시

1. 개요

Windows 탐색기에서 파일을 마우스 오른쪽 버튼으로 누르고 [속성] 을 열면, 기존 탭들 옆에 「보안 등급」 탭이 새로 나타납니다. 이 탭에서 사용자는 해당 문서에 적용된 C/S/O 보안 등급(C/S/O = 문서를 기밀·민감·공개 등으로 구분하는 Document Security 의 문서 보안 등급 체계)을 읽기 전용으로 직접 확인할 수 있습니다. 일반 문서·자사 DRM(Digital Rights Management, 자사 문서 암호화) 문서·MIP(Microsoft Information Protection, 마이크로소프트 정보 보호) 문서 어느 타입이든 동일하게 동작합니다.

본 기능이 필요한 이유

지금까지 문서에 적용된 C/S/O 보안 등급은 탐색기 아이콘 위에 겹쳐 표시되는 작은 오버레이 아이콘으로만 확인할 수 있었습니다. 오버레이 아이콘은 동시에 표시되는 개수에 제한이 있고 작아서, 특정 문서의 등급을 확실하게 검증하기 어려웠습니다. 또한 기존 「보안문서 정보」 탭(MIP 문서용)은 MIP 레이블·권한 정보만 보여줄 뿐, C/S/O 보안 등급은 다루지 않았습니다.

본 기능은 사용자가 오버레이 아이콘에 의존하지 않고 속성 창에서 직접 등급을 확인할 수 있도록, 모든 문서 타입에 공통으로 적용되는 보안 등급 표시 탭을 제공합니다.

동작 방식

문서에 숨겨 저장된 보안 등급 정보를 읽어 속성 탭에 4개 항목(등급 ID·등급명·라벨 ID·라벨명)으로 보여줍니다. 보호 문서는 등급을 읽기 위해 내부적으로 복호화가 필요하므로, 속성 창이 멈추지 않도록 백그라운드에서 조회하고 "조회 중" 진행 표시 후 결과로 갱신합니다.

또한 문서보안에 로그인하지 않은 상태(로그아웃)에서는 「보안 등급」 탭이 나타나지 않으며(온라인 로그인 상태에서만 표시), 등급이 지정되지 않은 문서는 조회 실패와 구별되는 별도 안내 문구("보안 등급 지정이 안되어있는 문서")로 표시합니다.

정보

요약: 탐색기에서 파일 우클릭 → [속성] → 「보안 등급」 탭을 열면, 그 문서의 C/S/O 보안 등급(등급 ID·등급명·라벨 ID·라벨명)이 읽기 전용으로 표시됩니다. 일반·DRM·MIP 모든 문서 타입에서 동작합니다.

적용 범위 / 진입점

#진입점사용자 동작
1탐색기 파일 속성 창Windows 탐색기에서 파일 우클릭 → [속성] → 「보안 등급」 탭 선택
경고

본 기능은 Document Security 가 지원하는 확장자의 문서(오피스·PDF 등)에만 「보안 등급」 탭이 나타납니다. 지원하지 않는 파일(예: 이미지·텍스트)에서는 탭이 표시되지 않습니다

2. 표시되는 보안 등급 정보

「보안 등급」 탭을 열면 문서에 적용된 보안 등급 정보를 다음 4개 항목으로 보여줍니다.

항목의미
보안 등급 ID문서에 적용된 보안 등급의 식별 번호
보안 등급명보안 등급의 이름
라벨 ID문서에 적용된 라벨의 식별 번호
라벨명라벨의 이름

표시되는 등급명·라벨명은 문서에 저장된 이름을 그대로 보여줍니다(별도 정규화·치환 없음). 보호 문서는 등급 정보를 읽는 데 시간이 걸릴 수 있어, 탭에 "조회 중" 을 먼저 표시한 뒤 결과로 갱신합니다(속성 창은 멈추지 않음).

3. 사용자 화면

「보안 등급」 탭의 화면 구성은 다음과 같습니다(상단 로고 + 진행 표시 + 4행 정보).

┌─ 파일 속성 ──────────────────────────────────┐
│ [일반] [보안문서 정보] [보안 등급] │
│ ┌──────────────────────────────────────────┐ │
│ │ (Document Security 로고) │ │
│ ├─ 보안 등급 정보 ─────────────────────────┤ │
│ │ 보안 등급 ID : 2 │ │
│ │ 보안 등급명 : 사내한 │ │
│ │ 라벨 ID : 10 │ │
│ │ 라벨명 : General │ │
│ └──────────────────────────────────────────┘ │
└──────────────────────────────────────────────┘
  • 조회가 끝나기 전에는 "조회 중" 문구와 진행 막대가 표시되고, 조회가 끝나면 그 자리에 4행 정보가 채워집니다(속성 창 진입은 멈추지 않음).
  • 등급이 지정되지 않은 문서는 "보안 등급 지정이 안되어있는 문서" 문구가 표시되고, 그 외 등급을 읽지 못하는 경우(복호 권한 없음·에이전트 미기동 등)에는 "조회 불가" 문구가 표시됩니다.
  • 본 탭은 읽기 전용입니다 — 등급을 바꾸거나 지정하는 동선은 없습니다.

4. 다국어 지원

탭 제목·항목 라벨·"조회 중"·"조회 불가" 등 화면 문구는 6개 언어로 제공됩니다.

구분내용
지원 언어한국어 / 영어 / 일본어 / 중국어 / 독일어 / 러시아어
리소스ResUIKOR/ENG/JPN/CHN/DEU/RUS.rc[DS365Prop] 섹션 C/S/O 문구 키 9종(등급 미지정 문구 포함)
표시 언어 결정시스템 로케일에 해당하는 리소스 문구가 표시됨
기본값(fallback) = 영어문구 리소스가 배포되지 않았거나 해당 언어 키를 찾지 못하면 영어 문구가 표시됨(호출부에 영어 기본 문구를 함께 전달하는 현 제품 리소스 동작과 동일)
경고

다국어 문구가 정상 표시되려면 ResUI*.rc 6종(6.0.0.36)이 SDK 설치 패키지로 함께 배포되어야 합니다. 미배포 환경에서는 영어로 표시됩니다.

5. 동작 시나리오 요약표

#상황동작 결과
1지원 확장자 문서(일반·DRM·MIP)에 등급이 적용되어 있음「보안 등급」 탭 표시 → "조회 중" → 4행(등급 ID·등급명·라벨 ID·라벨명) 표시
2지원 확장자 문서이나 등급이 부여되지 않음「보안 등급」 탭 표시 → "보안 등급 지정이 안되어있는 문서"
3보호 문서이나 복호 권한이 없음「보안 등급」 탭 표시 → "조회 불가"
4Security365 에이전트가 기동되어 있지 않음「보안 등급」 탭 표시 → "조회 불가" (속성 창 멈춤 없음)
5지원하지 않는 확장자(이미지·텍스트 등)「보안 등급」 탭 미표시
6문서보안 로그아웃 또는 오프라인 로그인 상태「보안 등급」 탭 미표시 (온라인 로그인 상태에서만 표시)

등급 조회 중에도 속성 창은 멈추지 않으며, 조회가 끝나면 결과가 그 자리에서 갱신됩니다.

6. 지원 범위 (확장자 / 문서 유형)

  • 탭 노출 대상: Document Security 가 지원하는 확장자(오피스·PDF 등)의 문서. 판정은 제품이 등록한 지원 확장자 목록(읽기 전용 공유 메모리) 으로 수행합니다.
  • 문서 타입: 일반(평문)·자사 DRM·MIP 문서 전부. 타입에 따라 복호 여부만 달라지며 탭 동작은 동일합니다.
  • 로그인 상태: 문서보안 온라인 로그인 상태에서만 「보안 등급」 탭이 노출됩니다. 로그아웃·오프라인 로그인 상태에서는 탭이 나타나지 않습니다.
  • 미지원: 지원 확장자 목록에 없는 파일에는 탭이 나타나지 않습니다.

7. 제약사항

항목내용
조회 불가 사유 부분 구분등급이 지정되지 않은 문서는 "보안 등급 지정이 안되어있는 문서" 문구로 별도 표시됩니다. 그 외 복호 권한 없음·에이전트 미기동 등은 사유를 구분하지 않고 단일 "조회 불가" 문구로 표시합니다.
에이전트 의존보안 등급 조회는 Security365 에이전트(DS365.Core 파이프 서버)에 의존합니다. 에이전트 미기동 시 "조회 불가" 로 표시됩니다(속성 창 멈춤 없이 안전하게 처리).
등급별 색상·정규화 명칭 미적용본 기능은 등급명을 문서 저장값 그대로 표시하며, 오버레이 아이콘과 같은 등급별 색상 표시·관리센터 등급 체계 기준 정규화 명칭(기밀/민감/공개) 변환은 포함하지 않습니다.
감사·권한별 가시성·정책 충돌 처리 미포함기획에서 정의한 등급 조회 감사 로그, 역할·부서 범위별 가시성, 표시 정책 충돌 안내(5종 상태)는 본 작업 범위 밖이며 후속 개발 영역입니다.
로그아웃·오프라인 시 탭 미노출문서보안 온라인 로그인 상태에서만 탭을 표시합니다. 로그아웃·오프라인 로그인 상태에서는 「보안 등급」 탭이 나타나지 않습니다.

문서 종료 시 C/S/O 등급 자동 지정

1. 개요

문서를 저장하거나 닫는(종료하는) 시점에, 회사 보안 정책이 지정해 둔 단일 C/S/O 보안 등급(기밀·민감·공개)을 시스템이 사용자 개입 없이 자동으로 문서에 부여하는 기능입니다. 관리자가 조건부 정책에 "적용할 등급·레이블"을 미리 지정해 두면, 대상 문서에 저장·종료 이벤트가 발생할 때 그 등급이 그대로 적용됩니다.

이 자동 지정은 C/S/O 등급 부여의 기본(기존) 경로이며, "문서 종료 시 사용자 수동 C/S/O 등급 지정"은 같은 시점에 사용자가 직접 등급을 고르도록 하는 확장 경로입니다. 두 방식은 서버 정책 카드로 분기되며, 한 문서에 동시에 적용되지 않습니다.

본 기능이 필요한 이유

  • 등급 체계가 단순하거나 부서 단위로 등급이 고정된 환경에서는, 사용자가 매번 등급을 고르지 않아도 조직 정책대로 일괄 부여되는 편이 효율적입니다.
  • 우클릭 [문서 등급 설정] 메뉴는 사용자가 의도적으로 실행해야만 동작하므로, 새 문서를 만들고 그냥 닫는 일반적 흐름에서는 등급이 누락될 수 있습니다. 저장·종료 시점의 자동 지정은 이 공백을 메워, 대상 문서가 항상 정책이 정한 등급을 갖도록 보장합니다.

동작 방식

문서 저장·종료 시 그 문서가 자동 지정 카드(setSecuLevel)에 매칭되면, 정책에 지정된 단일 등급·레이블을 별도 확인 창 없이 문서에 적용합니다.

요약: 저장·종료 시 정책이 "자동 지정"을 지시하면, 사용자에게 아무것도 묻지 않고 정책이 정한 단일 등급이 문서에 부여됩니다. 자동·수동 분기는 서버 정책 카드로 결정되며, 부여 내역은 통합 로그에 자동/수동 구분과 함께 기록됩니다.

사용자 경험 (별도 선택 화면 없음)

자동 지정은 무음(silent)으로 동작합니다 — 저장·종료 시 등급 선택창이나 안내 창이 뜨지 않습니다. 등급이 적용된 결과는 탐색기 오버레이 아이콘과 파일 속성 창의 「보안 등급」 탭에서 확인할 수 있습니다.

적용 범위 / 진입점

#진입점 (문서 이벤트)동작 시점
1문서 열람/편집 후 종료(또는 저장)편집 프로그램에서 문서를 저장하거나 닫을 때 (1차 지원 범위)
  • 동일한 자동 지정(setSecuLevel)은 조건부 정책 설정에 따라 문서 열람·파일 단위 이벤트(로컬 탐색기 이동/복사, Cloud 다운로드·업로드)에서도 동작하도록 구성할 수 있습니다.
  • 일반 문서와 보안(DRM/MIP) 문서를 모두 대상으로 합니다.

2. 정책 / 설정

저장·종료 이벤트의 등급 집행 카드(관리 콘솔 「보안 등급 설정」)에서 지정 방식을 자동 지정으로 선택하면, 관리자가 지정한 단일 등급·레이블이 자동 부여 대상이 됩니다.

지정 방식입력 항목집행 키워드
자동 지정적용할 등급 + 레이블 (각 1개)setSecuLevel
수동 지정사용자에게 노출할 등급 (복수)availableSecurityLevelList

수동 지정은 "문서 종료 시 사용자 수동 C/S/O 등급 지정" 섹션을 참고하십시오.

조건부 집행 정책(enforcementAttributes) 스키마

조건부 정책(ZTCAP)의 집행 정책은 집행 카드 배열(enforcementAttributes)이며, 등급 카드는 그 배열의 한 항목입니다(필요 시 변환 카드 등과 함께 배열에 담깁니다). 각 카드는 처리 순서(order)·종류(category)·세부 정보(info)로 구성되고, 자동 지정은 categorysetSecuLevel인 카드로 표현됩니다.

{
"enforcementAttributes": [
{
"order": 0,
"category": "setSecuLevel",
"info": {
"detail": "레벨ID;레이블ID"
}
}
]
}
  • 자동 카드의 info.detail레벨ID;레이블ID 단일 쌍(세미콜론 구분)입니다 — 적용할 등급 1개와 그 하위 레이블 1개를 지정합니다.
  • 수동 카드(availableSecurityLevelList)가 후보 등급 ID 배열을 담아 사용자에게 노출하는 것과 달리, 자동 카드는 목적지 등급·레이블을 관리자가 단일로 확정합니다.

현재 등급 평가 (N2SF 상향)

자동 지정도 N2SF 등급 이동 규칙(상향만 허용, 하향 불가)을 따릅니다. 다만 수동 지정처럼 선택창에서 후보 등급을 걸러 보여주는 방식이 아니라, 정책 조건 단계에서 문서의 현재 등급을 평가해 대상 여부를 판정합니다. 즉 하향이 일어나지 않도록 정책 매칭 시점에 걸러지며, 집행 카드에는 목적지 등급만 지정됩니다.

3. 동작 시나리오 요약표

#상황동작 결과
1자동 지정 카드(setSecuLevel) 매칭 + 저장·종료정책에 지정된 단일 등급·레이블을 확인 창 없이 자동 적용 + 통합 로그(자동 구분, 변경 전/후 등급)
2수동 지정 카드(availableSecurityLevelList) 매칭본 경로 개입 없이 수동 지정 경로로 선택창 노출 (해당 섹션 참고)
3대상 문서 아님 / 등급 카드 미발행등급 변경 없음
4상주 에이전트 미가동 등 장애등급 미적용 + 통합 로그 장애(ERROR). 저장·종료 자체는 정상 진행
5변환 카드와 함께 구성 (예: DRM 암호화 + 자동 등급)한 정책 안에서 카드 순서대로 순차 실행 (예: 변환 → 등급)

4. 지원 범위 (확장자 / 문서 유형)

  • 대상: 오피스 문서 — pps · ppsx · ppt · pptx · doc · docx · xls · xlsx · xlsb · xlsm (우클릭 수동 지정·종료 시 수동 지정 사양과 동일 범위).
  • 문서 유형: 일반 문서 + 보안(DRM/MIP) 문서 모두 지원.
  • 등급·레이블은 Security365 관리센터의 보안 분류 레이블을 따릅니다(1차 과제 기준 등급–레이블 1:1 매핑).

5. 주요 흐름

관리자 — 정책 등록

  1. 관리 콘솔 → 조건부 정책 → Endpoint → 대상 문서·구성원·조건 지정.
  2. 문서 이벤트에서 "문서 열람/편집 후 종료(또는 저장)"를 선택합니다.
  3. 집행 정책 → 등급 카드 「보안 등급 설정」 → 지정 방식 자동 지정 선택.
  4. 적용할 등급(C/S/O) 1개와 그 하위 레이블 1개를 지정 → 저장.

클라이언트 — 저장·종료 시 자동 적용

  1. 사용자가 문서를 저장하거나 종료합니다.
  2. 저장·종료 이벤트와 매칭되는 자동 지정 정책을 확인합니다.
  3. 정책에 지정된 단일 등급·레이블을 문서에 적용합니다(사용자 확인 없음).
  4. 부여 내역을 통합 로그(자동 구분, 변경 전/후 등급)로 전송합니다.

6. 제약사항

#제약내용
1단일 등급 고정자동 지정은 정책에 지정된 단일 등급·레이블만 부여합니다. 문서 내용 기반으로 등급을 판정해 부여하는 방식은 포함하지 않습니다(향후 확장 검토 영역).
2자동/수동 혼재 불가동일 문서에 자동(setSecuLevel)·수동(availableSecurityLevelList) 등급 카드가 동시에 발행되는 경우는 서버 정책에서 배제됩니다.
3에이전트 의존등급 적용은 상주 에이전트(정책 처리 코어)에 의존합니다. 미가동 시 등급이 적용되지 않습니다(의도된 무동작).
4정책 우선순위동일 조건에 복수 정책이 매칭되면 우선순위 상위 정책 1건이 적용됩니다. 한 정책 내 변환·등급 카드는 관리자가 설정한 순서대로 실행됩니다.

문서 종료 시 사용자 수동 C/S/O 등급 지정

1. 개요

문서를 닫는(종료하는) 시점에, 회사 보안 정책이 "사용자가 직접 고르도록" 지정한 경우 보안 등급 선택창을 띄워 사용자가 그 문서의 보안 등급(C/S/O — 기밀/민감/공개)을 직접 선택·적용하도록 하는 기능입니다. 기존에는 종료 시점에 정책이 정한 단일 등급을 시스템이 자동으로 매기는 방식만 동작했는데, 여기에 사용자 수동 선택 경로를 더해, 정책에 따라 자동 지정과 사용자 직접 선택을 모두 지원합니다. (국가 다중보안체계 N2SF(National Network Security Framework) 대응)

본 기능이 필요한 이유

N2SF는 문서 등급 분류의 주체와 책임을 사용자에게 둡니다. 시스템이 자동으로 등급을 부여하는 것만으로는 "작성자가 직접 분류했다"는 요건을 충족하기 어려운 상황이 있습니다.

기존 제품에서 사용자가 직접 등급을 고르는 창은 마우스 우클릭 → [문서 등급 설정] 메뉴에서만 열 수 있었습니다. 사용자가 새 문서를 만들고 그냥 닫는 일반적 흐름에서는 등급이 누락되거나 시스템 자동값에 의존하게 됩니다. 또한 종료 시점에 정책이 "사용자 직접 선택"을 내려보내도, 클라이언트가 이를 처리하지 못하고 그냥 넘어가 등급이 적용되지 않는 한계가 있었습니다.

본 기능은 작업 흐름의 자연스러운 종료 지점에서 분류를 유도해 이 공백을 메웁니다.

동작 방식 (한 줄 메커니즘)

문서 종료 시 그 문서가 수동 지정 정책에 매칭되면, 우클릭 [문서 등급 설정]과 동일한 등급 선택창을 띄우고 — 사용자가 등급을 고르면 그 등급을 문서에 적용하고, 취소하면 등급을 적용하지 않습니다(no-op).

정보

요약: 문서를 닫을 때 정책이 "사용자 직접 선택"을 지시하면 닫히는 문서마다 보안 등급 선택창이 표시되고, 사용자가 고른 등급이 문서에 적용됩니다. 자동 지정과 수동 선택은 서버 정책 카드로 분기되며, 등급 변경 내역은 통합 로그에 자동·수동 구분과 함께 기록됩니다.

적용 범위 / 진입점

#진입점동작 시점
1편집기 프로세스 종료Office 등 편집 프로그램을 닫을 때 닫히는 문서마다
2단일 문서 종료편집기에서 개별 문서를 닫을 때
  • 적용 로그인 환경: s365 · sso (DS6 표준 인증 경로). 레거시 appAuth 경로는 적용 범위에서 제외됩니다(제약사항 항목 참고).
  • 일반 문서와 보안(DRM/MIP) 문서를 모두 대상으로 합니다.

2. 사용자 화면 (UX)

종료 시 수동 지정 정책에 매칭되면, 우클릭 [문서 등급 설정]과 동일한 보안 등급 설정 창이 표시됩니다. 좌측 메뉴와 우측 등급 목록으로 구성된 2단 창이며, 닫는 문서의 정보와 선택 가능한 등급·레이블을 보여줍니다.

  • 상단: 닫는 문서의 아이콘·파일명·경로와 제품 로고.
  • 좌측: 메뉴 영역(보안 등급 설정).
  • 우측: 등급 목록 — 등급마다 색상 표시·등급명·설명이 있고, 그 아래 해당 등급의 레이블이 라디오 항목으로 나열됩니다. 레이블 하나를 선택하면 그 등급으로 분류됩니다(전체에서 하나만 선택).
  • 하단: [취소] · [확인] 버튼.
┌──────────────────────────────────────────────────────────────┐
│ [문서] 분기보고서.docx [ Document Security 로고 ] × │
│ C:\Users\...\분기보고서.docx │
├───────────────┬────────────────────────────────────────────────┤
│ │ 보안 등급 설정 │
│ ▍보안 등급 │ 종료하는 문서에 적용할 보안 등급을 선택하세요. │
│ 설정 │ │
│ │ ● C등급 (기밀) 조직 기밀 정보 │
│ │ ○ C-극비 ● C-대외비 ○ C-내부 │
│ │ ────────────────────────────────── │
│ │ ● S등급 (민감) 민감 정보 │
│ │ ○ S-대외비 ○ S-내부 │
│ │ ────────────────────────────────── │
│ │ ● O등급 (공개) 공개 가능 │
│ │ ○ O-일반 │
│ │ │
│ │ [ 취소 ] [ 확인 ] │
└───────────────┴────────────────────────────────────────────────┘
사용자 선택결과
레이블 선택 후 [확인]선택한 등급·레이블을 문서에 적용. 통합 로그에 수동 지정·변경 전/후 등급·지정자 기록
[취소] / 닫기(×) / 미선택등급을 적용하지 않음(no-op). 통합 로그는 미적용(INFO)으로 남음
  • 화면 기본 선택은 정책의 기본 등급을 따릅니다.
  • 여러 문서를 한꺼번에 닫으면 문서마다 선택창이 순차로 표시됩니다.

3. 정책 / 설정

종료 이벤트의 등급 집행 카드(관리 콘솔 「보안 등급 설정」)에서 자동/수동 지정 방식을 선택하며, 선택에 따라 저장되는 카드 종류가 달라집니다.

지정 방식입력 항목집행 키워드
자동 지정적용할 등급 + 레이블 (각 1개)setSecuLevel
수동 지정사용자에게 노출할 등급 (복수)availableSecurityLevelList

조건부 집행 정책(enforcementAttributes) 스키마

조건부 정책(ZTCAP)의 집행 정책은 집행 카드 배열(enforcementAttributes)이며, 등급 카드는 그 배열의 한 항목입니다(필요 시 변환 카드 등과 함께 배열에 담깁니다). 각 카드는 처리 순서(order)·종류(category)·세부 정보(info)로 구성되며, 등급 지정 방식(자동/수동)은 category로 결정됩니다.

{
"enforcementAttributes": [
{
"order": 0,
"category": "availableSecurityLevelList",
"info": {
"detail": "[{\"levelId\":\"NI9V0lbL-...\"},{\"levelId\":\"iqCCmC4N-...\"},{\"levelId\":\"dliTWZzt-...\"}]",
"defaultSelectLevelId": "iqCCmC4N-ADUvGusn-4Gkhlyi6-vPJQvg6r"
}
}
]
}

info.detailJSON 문자열로 한 번 더 인코딩된(이중 인코딩) 등급 ID 배열입니다. 우클릭 수동 지정 경로의 후보 등급 형식과 동일합니다.

자동 카드 vs 수동 카드

두 방식은 같은 등급 카드 자리에서 categoryinfo.detail 형식으로 구분됩니다.

// 자동 지정 — 종료 시 단일 등급/레이블 자동 부여 (기존)
{
"order": 0,
"category": "setSecuLevel",
"info": {
"detail": "레벨ID;레이블ID"
}
}
// 수동 지정 — 종료 시 노출할 등급 복수 (사용자 선택, 본 기능)
{
"order": 0,
"category": "availableSecurityLevelList",
"info": {
"detail": "[{\"levelId\":\"...\"},{\"levelId\":\"...\"}]",
"defaultSelectLevelId": "..."
}
}
  • 자동 카드의 detail레벨ID;레이블ID 단일 쌍(세미콜론 구분)입니다.
  • 수동 카드의 detail은 후보 등급 ID 배열이며, 사용자가 그중 하나(+세부 레이블)를 선택창에서 고릅니다.

클라이언트 사용 필드 (수동 카드)

필드사용
category = availableSecurityLevelList수동 지정 디스패치 키
info.detail (등급 ID 배열, 이중 인코딩)사용자가 고를 후보 등급 ID 목록
info.defaultSelectLevelId선택창의 기본 선택 등급

4. 다국어 / 리소스

등급 선택창 문구는 6개 언어로 제공됩니다.

항목내용
지원 언어한국어 · 영어 · 중국어 · 일본어 · 독일어 · 러시아어
리소스DSResKor/Eng/Chn/Jpn/Deu/Rus.ini[GRADE_UI] 섹션 (선택창 문구 8개 키)
표시 언어 결정클라이언트 UI 문화권(시스템 로케일)에 해당하는 리소스 문구 표시
기본값(fallback)해당 언어 리소스·키를 찾지 못하면 영어 문구 표시
경고

프랑스어·체코어·번체 등 위 6종 외 언어는 미지원으로, 영어로 표시됩니다. 다국어 문구는 SDK 설치 패키지로 함께 배포되어야 정상 표시됩니다.

5. 동작 시나리오 요약표

#상황동작 결과
1수동 지정 카드 매칭 문서 종료 + 사용자가 등급 선택·[확인]선택창 표시 → 선택 등급 적용 + 통합 로그(수동, 변경 전/후, 지정자)
2수동 지정 카드 매칭 문서 종료 + [취소]/X/미선택선택창 표시 → 등급 미적용(no-op), 통합 로그 미적용(INFO)
3자동 지정 카드(setSecuLevel) 매칭 문서 종료본 경로 개입 없이 기존 자동 지정으로 단일 등급 부여
4상주 에이전트(데몬) 미가동·표시 실패등급 미적용(no-op) + 통합 로그 장애(ERROR). 편집기 종료는 정상 진행
5여러 문서 일괄 종료 (수동 매칭)문서마다 선택창 순차 표시

6. 지원 범위 (확장자 / 문서 유형)

  • 대상: 오피스 문서 — pps · ppsx · ppt · pptx · doc · docx · xls · xlsx · xlsb · xlsm (우클릭 수동 지정·종료 시 자동 지정 사양과 동일 범위).
  • 문서 유형: 일반 문서 + 보안(DRM/MIP) 문서 모두 지원.
  • 등급·레이블은 Security365 관리센터의 보안 분류 레이블을 따릅니다(1차 과제 기준 등급–레이블 1:1 매핑).

7. 주요 흐름

관리자 — 정책 등록

관리 콘솔에서 종료(또는 저장) 이벤트의 등급 카드를 수동 지정으로 설정하고, 노출할 등급을 복수 선택해 저장합니다.

사용자 — 종료 시 수동 지정

  1. 사용자가 문서를 열람/편집 후 종료(또는 저장)합니다.
  2. 종료 이벤트와 매칭되는 수동 지정 정책을 확인합니다.
  3. N2SF 규칙(미지정 → 허용 등급 전체 / 기지정 → 동일·상위)으로 노출 등급을 결정합니다.
  4. 등급 선택창을 표시하고 사용자가 등급·레이블을 선택합니다.
  5. 선택 등급을 문서에 적용하고 통합 로그(수동 구분·지정자)를 전송합니다.
  6. 여러 문서가 닫히면 문서마다 위 흐름을 반복합니다.

8. 제약사항

#제약내용 / 사용자 영향
1동기 점유선택창이 떠 있는 동안 해당 종료 처리 경로가 점유됩니다(사용자 선택 시간만큼). 편집기 종료 응답 자체는 영향받지 않으나, 동시 진행 중인 다른 보안 동작이 지연될 수 있습니다. 무한 대기를 막기 위해 자동 닫힘 타임아웃이 적용됩니다.
2N문서 순차 처리여러 문서가 일괄 종료되면 문서마다 선택창이 순차로 뜨고, 각 선택 시간이 누적됩니다. (배치 단일 목록 UI는 본 작업 범위 외)
3다국어 지원 범위6개 언어(한·영·중·일·독·러)만 지원하며, 그 외 언어는 영어로 표시됩니다.
4리소스 반영 시점선택창 문구는 상주 데몬이 1회 로드해 보관하므로, 리소스(INI) 갱신은 데몬 재시작 또는 재부팅 후 반영됩니다(설치 패키지 배포 시에는 무관).
5자동/수동 혼재 불가동일 문서에 자동·수동 등급 정책이 동시에 발행되는 경우는 서버 정책에서 배제(혼재 불가)됨을 전제로 합니다.
6적용 환경s365 · sso 인증 경로에 적용되며, 레거시 appAuth 경로는 미포함입니다.
7에이전트 의존상주 에이전트가 미가동이면 등급이 적용되지 않습니다(의도된 무동작).

CSO 등급별 프린트 마킹

1. 개요

보안문서를 인쇄할 때 문서의 CSO 등급(C/S/O)에 따라 상·하단 텍스트와 중앙 마킹을 등급별로 다르게 표시한다. 등급은 문서 헤더의 SFI overlay icon index 로 판별하고, 등급별 커스텀 정책(DS_PRINTMK_CSO_C/O/S)의 값을 기본 프린트 마킹 정책이 만든 마킹 행에 치환(item-override)한다.

등급SFI overlay icon index커스텀 정책명
C1DS_PRINTMK_CSO_C
O2DS_PRINTMK_CSO_O
S3DS_PRINTMK_CSO_S

2. 치환 태그 사양

태그대상 행nType / LOCATION비고
TEXT_OPTION중앙 사선 워터마크MARKING_SETTING마킹 텍스트의 $oText 변수로 치환됨
TEXT상·하단 텍스트행nType=0 / LOC=0(상), 2(하)같은 <case=MARKING_DATA> 안에 LOCATION 으로 위치 지정
CENTER_TEXT중앙 텍스트행nType=0 / LOC=1전용 태그. TEXT 재사용 불가 (ExtractTagValue 첫 매치가 상단행을 잡음)
IMAGE_FILE_NAME중앙 이미지행nType=1 / LOC=1BMP 포맷(확장자 무관). windows\Softcamp\SDS\ 에 배치

분기 배타성: 이미지행(nType=1) / 중앙텍스트행(nType=0·LOC=1) / 상하단텍스트행(nType=0·LOC=0,2) — 셋이 겹치지 않는다. nType==0 가드로 중앙 텍스트 치환이 이미지행을 침범하지 않는다.

3. 정책 설정

기본 프린트 마킹 정책 (관리자 콘솔 → 프린트 마킹 → 스크립트)

중앙 = 이미지행(dscgru.dll) + 텍스트행("보안문서"). CSO override 가 이 중앙 텍스트행("보안문서")을 등급별 CENTER_TEXT 로 치환한다.

<Begin>
<case=MARKING_VERSION>
<VERSION="2">
</case>
<case=MARKING_SETTING>
<NORMAL_DOC="0">
<ENABLE="1">
<BMP_FILE_USE="0">
<DENSITY_CENTER="40">
<INTERCHARACTER="0">
<INTERLINE="100">
<SLOPE="300">
<TEXT_OPTION="이문서는보안문서입니다. ">
<DATE_FORMAT1="yyyy-MM-dd ">
<DATE_FORMAT2="yyyy, MM, dd ddd">
<DATE_FORMAT3="yyyy MM dd">
<TIME_FORMAT1="HH:mm">
<TIME_FORMAT2="hh mm ss">
<TIME_FORMAT3="hh mm ">
<WIDTH="600">
<HEIGHT="600">
<HP_PRINT_DENSITY="10">
<DOT_PRINTER="ALL">
</case>
<case=MARKING_DATA>
<NORMAL_DOC="0">
<TYPE="1">
<LOCATION="1">
<ALIGN="0">
<FONT_SIZE="200">
<IMAGE_FILE_NAME="dscgru.dll">
<MARGINX="0">
<MARGINY="0">
<RESERVED="0">
</case>
<case=MARKING_DATA>
<LOCATION="0">
<ALIGN="1">
<FONT_SIZE="20">
<FONT_NAME="굴림">
<FONT_COLOR="0">
<FONT_WEIGHT="0">
<TEXT="보안/ $uID / $uName / $uOrg / $HostName">
<MARGINX="0">
<MARGINY="0">
</case>
<case=MARKING_DATA>
<NORMAL_DOC="0">
<LOCATION="2">
<ALIGN="1">
<FONT_SIZE="20">
<FONT_NAME="굴림">
<FONT_COLOR="0">
<FONT_WEIGHT="0">
<TEXT="보안/ $pDate1 / $pTime1 / $oText">
<MARGINX="0">
<MARGINY="0">
</case>
<case=MARKING_DATA>
<NORMAL_DOC="0">
<LOCATION="1">
<FONT_SIZE="150">
<FONT_NAME="HY견고딕">
<FONT_COLOR="0">
<FONT_WEIGHT="300">
<TEXT="보안문서">
<ALIGN="1">
</case>
<End>

DS_PRINTMK_CSO_C 커스텀 정책

CENTER_TEXT="C등급" → 기본정책 중앙 텍스트행("보안문서")을 "C등급"으로 치환. 상·하단 TEXT 도 C등급 문구로 치환.

<Begin>
<case=MARKING_VERSION>
<VERSION="2">
</case>
<case=MARKING_SETTING>
<NORMAL_DOC="0">
<ENABLE="1">
<BMP_FILE_USE="0">
<DENSITY_CENTER="40">
<INTERCHARACTER="0">
<INTERLINE="100">
<SLOPE="300">
<CENTER_TEXT="C등급">
<DATE_FORMAT1="yyyy-MM-dd ">
<DATE_FORMAT2="yyyy, MM, dd ddd">
<DATE_FORMAT3="yyyy MM dd">
<TIME_FORMAT1="HH:mm">
<TIME_FORMAT2="hh mm ss">
<TIME_FORMAT3="hh mm ">
<WIDTH="600">
<HEIGHT="600">
<HP_PRINT_DENSITY="10">
<DOT_PRINTER="ALL">
</case>
<case=MARKING_DATA>
<LOCATION="0">
<ALIGN="1">
<FONT_SIZE="20">
<FONT_NAME="굴림">
<FONT_COLOR="0">
<FONT_WEIGHT="0">
<TEXT="C등급 문서/ $uID / $uName / $uOrg / $HostName">
<MARGINX="0">
<MARGINY="0">
</case>
<case=MARKING_DATA>
<NORMAL_DOC="0">
<LOCATION="2">
<ALIGN="1">
<FONT_SIZE="20">
<FONT_NAME="굴림">
<FONT_COLOR="0">
<FONT_WEIGHT="0">
<TEXT="C등급 문서/ $pDate1 / $pTime1 / $oText">
<MARGINX="0">
<MARGINY="0">
</case>
<case=MARKING_DATA>
<NORMAL_DOC="0">
<LOCATION="1">
<FONT_SIZE="150">
<FONT_NAME="HY견고딕">
<FONT_COLOR="0">
<FONT_WEIGHT="300">
<ALIGN="1">
</case>
<End>

DS_PRINTMK_CSO_S 커스텀 정책

<Begin>
<case=MARKING_VERSION>
<VERSION="2">
</case>
<case=MARKING_SETTING>
<NORMAL_DOC="0">
<ENABLE="1">
<BMP_FILE_USE="0">
<DENSITY_CENTER="40">
<INTERCHARACTER="0">
<INTERLINE="100">
<SLOPE="300">
<CENTER_TEXT="S등급">
<DATE_FORMAT1="yyyy-MM-dd ">
<DATE_FORMAT2="yyyy, MM, dd ddd">
<DATE_FORMAT3="yyyy MM dd">
<TIME_FORMAT1="HH:mm">
<TIME_FORMAT2="hh mm ss">
<TIME_FORMAT3="hh mm ">
<WIDTH="600">
<HEIGHT="600">
<HP_PRINT_DENSITY="10">
<DOT_PRINTER="ALL">
</case>
<case=MARKING_DATA>
<LOCATION="0">
<ALIGN="1">
<FONT_SIZE="20">
<FONT_NAME="굴림">
<FONT_COLOR="0">
<FONT_WEIGHT="0">
<TEXT="S등급 문서/ $uID / $uName / $uOrg / $HostName">
<MARGINX="0">
<MARGINY="0">
</case>
<case=MARKING_DATA>
<NORMAL_DOC="0">
<LOCATION="2">
<ALIGN="1">
<FONT_SIZE="20">
<FONT_NAME="굴림">
<FONT_COLOR="0">
<FONT_WEIGHT="0">
<TEXT="S등급 문서/ $pDate1 / $pTime1 / $oText">
<MARGINX="0">
<MARGINY="0">
</case>
<case=MARKING_DATA>
<NORMAL_DOC="0">
<LOCATION="1">
<FONT_SIZE="150">
<FONT_NAME="HY견고딕">
<FONT_COLOR="0">
<FONT_WEIGHT="300">
<ALIGN="1">
</case>
<End>

DS_PRINTMK_CSO_O 커스텀 정책

<Begin>
<case=MARKING_VERSION>
<VERSION="2">
</case>
<case=MARKING_SETTING>
<NORMAL_DOC="0">
<ENABLE="1">
<BMP_FILE_USE="0">
<DENSITY_CENTER="40">
<INTERCHARACTER="0">
<INTERLINE="100">
<SLOPE="300">
<CENTER_TEXT="O등급">
<DATE_FORMAT1="yyyy-MM-dd ">
<DATE_FORMAT2="yyyy, MM, dd ddd">
<DATE_FORMAT3="yyyy MM dd">
<TIME_FORMAT1="HH:mm">
<TIME_FORMAT2="hh mm ss">
<TIME_FORMAT3="hh mm ">
<WIDTH="600">
<HEIGHT="600">
<HP_PRINT_DENSITY="10">
<DOT_PRINTER="ALL">
</case>
<case=MARKING_DATA>
<LOCATION="0">
<ALIGN="1">
<FONT_SIZE="20">
<FONT_NAME="굴림">
<FONT_COLOR="0">
<FONT_WEIGHT="0">
<TEXT="O등급 문서/ $uID / $uName / $uOrg / $HostName">
<MARGINX="0">
<MARGINY="0">
</case>
<case=MARKING_DATA>
<NORMAL_DOC="0">
<LOCATION="2">
<ALIGN="1">
<FONT_SIZE="20">
<FONT_NAME="굴림">
<FONT_COLOR="0">
<FONT_WEIGHT="0">
<TEXT="O등급 문서/ $pDate1 / $pTime1 / $oText">
<MARGINX="0">
<MARGINY="0">
</case>
<case=MARKING_DATA>
<NORMAL_DOC="0">
<LOCATION="1">
<FONT_SIZE="150">
<FONT_NAME="HY견고딕">
<FONT_COLOR="0">
<FONT_WEIGHT="300">
<ALIGN="1">
</case>
<End>

정책 작성 주의

  • 이 구성의 등급별 중앙 마킹 = CENTER_TEXT(텍스트 치환) 방식이다. 기본정책의 중앙 텍스트행("보안문서")을 "C등급"/"S등급"/"O등급"으로 치환한다.
  • CSO 정책에는 per-grade IMAGE_FILE_NAME 가 없다. 중앙 이미지(dscgru.dll)는 기본정책 고정 — 모든 등급 동일. 등급별로 다른 이미지가 필요하면 CSO 정책에 <IMAGE_FILE_NAME="..."> 추가 + 해당 BMP 를 SDS 폴더 배치 (현 구성 미사용 — 확장 옵션).
  • CSO_C/S/O 정책 끝의 <case=MARKING_DATA><LOCATION="1">(TEXT/IMAGE 없는 빈 중앙행)은 무효 구조다 (override 가 무시). 두어도 무해하나 동작에 관여하지 않는다.