logologo
시작
가이드
개발
플러그인
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
시작
가이드
개발
플러그인
API
logologo
개요

데이터 소스

데이터 소스 관리
메인 데이터 소스

외부 데이터 소스 (데이터베이스)

소개
외부 MySQL
외부 MariaDB
외부 PostgreSQL
외부 MSSQL
외부 Oracle
메인 vs. 외부 데이터베이스 비교
REST API 데이터 소스
KingbaseES 데이터 소스

데이터 테이블

개요
일반 테이블
상속 테이블
파일 테이블
트리 테이블
캘린더 테이블
댓글 테이블
표현식 테이블
SQL 테이블
데이터베이스 뷰

테이블 필드

개요
필드 유효성 검사

기본 유형

한 줄 텍스트
여러 줄 텍스트
전화번호
이메일
URL
정수
숫자
백분율
비밀번호
색상
아이콘

선택 유형

체크박스
드롭다운 (단일 선택)
드롭다운 (다중 선택)
라디오 버튼
체크박스

멀티미디어

Markdown
Markdown(Vditor)
리치 텍스트
첨부 파일 (관계)
첨부 파일 (URL)

날짜 & 시간

개요
날짜/시간 (타임존 포함)
날짜/시간 (타임존 미포함)
Unix 타임스탬프
날짜 (시간 미포함)
시간

도형

점
선
원
다각형

고급 유형

UUID
Nano ID
정렬
계산 공식
자동 번호
JSON
테이블 선택기
암호화

시스템 정보

생성일
마지막 수정일
생성자
마지막 수정자
스페이스
Table OID

관계 유형

개요
일대일
일대다
다대일
다대다
다대다 (배열)

개발

개요
Previous Page테이블 선택기
Next Page생성일
TIP

이 문서는 AI로 번역되었습니다. 부정확한 내용이 있을 경우 영어 버전을 참조하세요

#암호화

#소개

고객 휴대폰 번호, 이메일 주소, 카드 번호 등 일부 민감한 비즈니스 데이터는 암호화할 수 있습니다. 암호화된 데이터는 데이터베이스에 암호문 형태로 저장됩니다.

20251104192513

#암호화 방식

WARNING

플러그인은 자동으로 애플리케이션 키를 생성하며, 이 키는 /storage/apps/main/encryption-field-keys 디렉터리에 저장됩니다.

애플리케이션 키 파일명은 키 ID이며, 확장자는 .key입니다. 파일명을 임의로 변경하지 마십시오.

애플리케이션 키 파일을 안전하게 보관하십시오. 만약 애플리케이션 키 파일을 분실하면, 암호화된 데이터를 복호화할 수 없습니다.

만약 하위 애플리케이션에서 플러그인을 활성화한 경우, 키는 기본적으로 /storage/apps/${하위 애플리케이션 이름}/encryption-field-keys 디렉터리에 저장됩니다.

#작동 방식

봉투 암호화(Envelope Encryption) 방식을 사용합니다.

20251118151339

#키 생성 과정

  1. 암호화 필드를 처음 생성할 때, 시스템은 32비트 애플리케이션 키를 자동으로 생성하여 Base64 인코딩 방식으로 기본 저장 디렉터리에 저장합니다.
  2. 새로운 암호화 필드를 생성할 때마다 해당 필드에 대해 32비트 필드 키가 무작위로 생성됩니다. 이 필드 키는 애플리케이션 키와 무작위로 생성된 16비트 필드 암호화 벡터를 사용하여 암호화(AES 암호화 알고리즘)된 후, fields 테이블의 options 필드에 저장됩니다.

#필드 암호화 과정

  1. 암호화 필드에 데이터를 쓸 때마다, 먼저 fields 테이블의 options 필드에서 암호화된 필드 키와 필드 암호화 벡터를 가져옵니다.
  2. 애플리케이션 키와 필드 암호화 벡터를 사용하여 암호화된 필드 키를 복호화한 다음, 복호화된 필드 키와 무작위로 생성된 16비트 데이터 암호화 벡터를 사용하여 데이터를 암호화(AES 암호화 알고리즘)합니다.
  3. 복호화된 필드 키를 사용하여 데이터를 서명(HMAC-SHA256 해시 알고리즘)하고, Base64 인코딩 방식으로 문자열로 변환합니다(생성된 데이터 서명은 이후 데이터 검색에 사용됩니다).
  4. 16비트 데이터 암호화 벡터와 암호화된 데이터 암호문을 이진 방식으로 연결하고, Base64 인코딩 방식으로 문자열로 변환합니다.
  5. Base64 인코딩된 데이터 서명 문자열과 연결된 Base64 인코딩된 데이터 암호문 문자열을 '.' 구분자로 연결합니다.
  6. 최종적으로 연결된 문자열을 데이터베이스에 저장합니다.

#환경 변수

애플리케이션 키를 지정하려면 환경 변수 ENCRYPTION_FIELD_KEY_PATH를 사용할 수 있습니다. 플러그인은 해당 경로의 파일을 애플리케이션 키로 로드합니다.

애플리케이션 키 파일 형식 요구 사항:

  1. 파일 확장자는 .key여야 합니다.
  2. 파일명은 키 ID로 사용되며, 고유성을 보장하기 위해 UUID를 사용하는 것이 좋습니다.
  3. 파일 내용은 Base64 인코딩된 32비트 이진 데이터여야 합니다.
ENCRYPTION_FIELD_KEY_PATH=/path/to/my/app-keys/270263524860909922913.key

#필드 설정

20240802173721

#암호화 후 필터링에 미치는 영향

암호화된 필드는 다음 조건만 지원합니다: 같음, 같지 않음, 존재함, 존재하지 않음.

20240802174042

데이터 필터링 방식:

  1. 암호화 필드의 필드 키를 가져와 애플리케이션 키를 사용하여 필드 키를 복호화합니다.
  2. 필드 키를 사용하여 사용자가 입력한 검색 텍스트를 서명(HMAC-SHA256 해시 알고리즘)합니다.
  3. 서명된 검색 텍스트를 '.' 구분자와 연결한 후, 데이터베이스에서 암호화 필드에 대해 접두사 일치 검색을 수행합니다.

#키 로테이션

WARNING

nocobase key-rotation 명령을 사용하기 전에 애플리케이션에 이 플러그인이 로드되었는지 확인하십시오.

애플리케이션을 새 환경으로 마이그레이션한 후, 이전 환경과 동일한 키를 계속 사용하고 싶지 않을 때 nocobase key-rotation 명령을 사용하여 애플리케이션 키를 교체할 수 있습니다.

키 로테이션 명령을 실행하려면 이전 환경의 애플리케이션 키를 지정해야 합니다. 명령 실행 후 새로운 애플리케이션 키가 생성되어 이전 키를 대체합니다. 새로운 애플리케이션 키는 Base64 인코딩 방식으로 기본 저장 디렉터리에 저장됩니다.

# --key-path는 데이터베이스 암호화 데이터에 해당하는 이전 환경의 애플리케이션 키 파일을 지정합니다.
 yarn nocobase key-rotation --key-path /path/to/old-app-keys/270263524860909922913.key

하위 애플리케이션의 애플리케이션 키를 교체하려면 --app-name 파라미터를 추가하여 하위 애플리케이션의 name을 지정해야 합니다.

 yarn nocobase key-rotation --app-name a_w0r211vv0az --key-path /path/to/old-app-keys/270263524860909922913.key