sgcSign

Delphi, C++Builder, .NET을 위한 엔터프라이즈급 디지털 서명 스위트예요. 10개의 키 공급자와 21개의 사전 구성된 국가 프로파일에서 XAdES, PAdES, CAdES, ASiC 서명을 생성해요 — 인프로세스 컴포넌트 라이브러리 또는 빌드 팜을 위한 자체 호스팅 원격 서명 데몬으로 사용할 수 있어요.

XAdES / PAdES / CAdES / ASiC
10개 키 공급자
21개 국가 프로파일
EU eIDAS 준수

라이브러리 또는 서버 — 동일한 서명 코어

sgcSign은 동일한 서명 엔진, 키 공급자, 국가 프로파일을 공유하는 두 가지 보완적인 형태로 제공돼요. 임베디드 라이브러리, 중앙화된 서버 중 선택하거나 둘 다 함께 사용해 보세요.

sgcSign 컴포넌트 라이브러리

애플리케이션 내에서 직접 XAdES, PAdES, CAdES, ASiC 서명을 생성하는 Delphi / C++Builder / .NET 컴포넌트예요. 네이티브 CNG/BCrypt 암호화, 외부 DLL 없음, 전체 소스 코드 포함이에요.

라이브러리 기능 →

sgcSign Server

자체 호스팅 원격 서명 데몬 — REST API, Bootstrap 웹 관리자, Windows 서비스 설치 프로그램이에요. 문서 형식 위에 Authenticode, ClickOnce, NuGet, VSIX 서명을 추가해요. GitHub Actions, Azure DevOps, Jenkins, Docker, Helm 파이프라인이 준비돼 있어요.

서버 개요 →

모든 ETSI 형식, B-B부터 B-LTA까지

PE 바이너리용 Microsoft Authenticode를 포함한 4가지 ETSI 서명 패밀리를 완전히 지원해요. 4가지 AdES 레벨 모두 지원해요.

</>

XAdES

ETSI EN 319 132 — XML 고급 전자 서명

XML에 대한 봉투형, 분리형, 래핑형 서명이에요. 레벨 B-B / B-T / B-LT / B-LTA. Delphi 7 이상에서 WideString 오버로드를 통해 폴란드어, 스페인어, 독일어 발음 기호가 손실 없이 처리돼요.

PAdES

ETSI EN 319 142 — PDF 고급 전자 서명

PDF 문서에 디지털 서명을 삽입해요. 서명자 이름, 이유, 위치, 연락처, 구성 가능한 사각형이 포함된 가시적 서명 모양이에요. Adobe Acrobat과 호환돼요.

CAdES

ETSI EN 319 122 — CMS/PKCS#7 고급 전자 서명

모든 파일 또는 데이터 스트림에 대한 CMS/PKCS#7 바이너리 서명이에요. 분리형 및 첨부형이에요. BES, T, XL 적합성 레벨이에요.

ASiC-S / ASiC-E

ETSI EN 319 162 — 연관 서명 컨테이너

하나 이상의 문서와 관련 XAdES 또는 CAdES 서명을 단일 ZIP 아카이브에 번들링해요. 단순(문서 하나) 또는 확장(매니페스트 + 여러 문서)이에요.

Authenticode + ClickOnce + NuGet + VSIX

코드 서명 — sgcSign Server

Windows PE 파일(.exe, .dll, .sys, .ocx), ClickOnce 매니페스트, NuGet 패키지, VSIX 번들에 서명해요. SHA-256(기본값), SHA-384, SHA-512, 레거시 호환성을 위한 이중 서명이에요.

로컬 파일, 하드웨어 토큰, Cloud KMS

모든 공급자는 동일한 IsgcKeyProvider 인터페이스를 구현해요. 따라서 서명자는 수정 없이 모든 키 소스와 작동해요. 하나의 컴포넌트만 변경하여 PFX 파일에서 AWS KMS로 전환해요.

PFX / PKCS#12

TsgcPFXKeyProvider

로컬 비밀번호로 보호된 PFX 파일이에요. 네이티브 Windows CNG 지원; OpenSSL DLL이 필요 없어요.

PEM 파일

TsgcPEMKeyProvider

PEM 인코딩된 인증서와 암호화된 PKCS#8 개인 키예요. 네이티브 PBES2 / PBKDF2 / AES-CBC 복호화 — 외부 라이브러리가 필요 없어요.

Windows 인증서 저장소

TsgcWindowsCertStoreProvider

로컬 머신 및 현재 사용자 인증서 저장소예요. Windows PKI 및 Active Directory와의 원활한 통합이에요.

PKCS#11 하드웨어 토큰

TsgcPKCS11Provider

표준 PKCS#11 인터페이스를 통한 스마트 카드 및 HSM — SafeNet, YubiKey, Nitrokey 및 PKCS#11 드라이버가 있는 모든 벤더예요.

Azure Trusted Signing

TsgcAzureTrustedSigningProvider

Microsoft의 적격 서명 서비스예요. OAuth2 클라이언트 자격 증명, 개인 키는 절대 Azure를 벗어나지 않아요. Azure Key Vault와는 별개예요.

AWS KMS

TsgcAWSKMSKeyProvider

AWS 키 관리 서비스예요. AWS에 보관된 키로 서명해요; 문서 해시가 전송되고 원시 서명이 반환돼요.

Google Cloud KMS

TsgcGCloudKMSKeyProvider

Google Cloud 키 관리예요. Google Cloud에 호스팅된 키를 사용한 서비스 계정 인증이에요.

HashiCorp Vault

TsgcHashiCorpVaultKeyProvider

Vault 전송 서명 엔진이에요. 키는 Vault 내부에 유지되고, 문서 해시는 인증된 REST API를 통해 전송돼요.

Certum SimplySign

TsgcCertumSimplySignProvider

인정된 폴란드 전자 서명 공급자예요. KSeF, ZUS 및 기타 폴란드 공공 행정 포털을 위한 클라우드 기반 원격 서명이에요.

CSC v2 (Cloud Signature Consortium)

TsgcCSCKeyProvider

원격 QTSP를 위한 일반 CSC v2 클라이언트 — Universign, D-Trust sign-me, A-Trust, FNMT Cl@ve Firma, Evrotrust, Intesi Group 등이에요.

유럽 전자 인보이스 & 근로 계약

각 프로파일은 해시 알고리즘, 정규화, 서명 레벨, 타임스탬프, OCSP 폐지 정책을 대상 국가의 규제 기관에 맞게 사전 조정해요. 한 줄 변경으로 관할권을 전환해요.

전자 인보이스 프로파일 (12개)

Profile Country System Format Level
spVeriFactuSpainVeriFactu (AEAT)XAdES-EPESB-B
spTicketBAISpain (Basque)TicketBAIXAdES-EPESB-B
spFacturaeB2BSpainFacturae 3.x / FACeXAdES-EPESB-T
spFatturaPAItalyFatturaPA (SDI)XAdES-BESB-B
spSAFTPTPortugalSAF-T PTRSA-SHA256B-B
spKSeFPolandKSeF (Krajowy System e-Faktur)XAdESB-T
spFacturXFrance / GermanyFactur-X / ZUGFeRDXAdESB-B
spEFacturaRomaniae-Factura (ANAF)XAdESB-T
spNAVOnlineHungaryNAV OnlineXML-DSigB-B
spFiskalizacijaCroatiaFiskalizacijaXML-DSigB-B
spPeppolBE / spPeppolBGEU (Belgium, Bulgaria)Peppol UBL 2.xXAdESB-T
spMyDATAGreecemyDATA (AADE)XAdESB-B

EU 근로 계약 프로파일 (9개)

근로 계약에 관한 회원국 노동법 요건을 위한 eIDAS 준수 서명이에요. 각 관할권의 AdES / QES 레벨, 해시, 정규화, 타임스탬프, OCSP 폐지 정책으로 사전 조정돼요. 노동 행정 검증기에서 허용돼요.

Germany — spEmploymentDE

서면 계약에 대해 § 126a BGB에 따라 레벨 B-LT, QES가 필요해요 (예: 24개월 초과 기간제, 계약 후 경업 금지).

Italy — spEmploymentIT

레벨 B-LT, FEQ 적격 서명이에요. CAdES (.p7m)가 널리 사용되며; XAdES도 허용돼요. INPS 포털에서 두 형식 모두 허용해요.

Spain — spEmploymentES

레벨 B-T, AdES로 충분해요. SEPE / TGSS 포털은 FNMT 또는 DNIe 인증서가 필요해요; FNMT 신뢰 목록을 통한 CRL이에요.

France — spEmploymentFR

레벨 B-T, AdES 허용이에요. DSP2 / RGS 하의 원격 서명 흐름에서 QES가 선호돼요.

Austria — spEmploymentAT

레벨 B-LT이에요. Handy-Signatur / ID Austria를 통한 QES가 일반적이에요.

Belgium — spEmploymentBE

레벨 B-LT이에요. eID 카드(BeID)를 통한 QES예요.

Portugal — spEmploymentPT

레벨 B-LT이에요. Cartão do Cidadão / Chave Móvel Digital을 통한 QES예요.

Netherlands — spEmploymentNL

레벨 B-T이에요. AdES가 일반적으로 허용되며; 일부 HR 포털(UWV)에서는 QES가 필요해요.

Poland — spEmploymentPL

레벨 B-T이에요. 계약이 ZUS / PUE로 전달될 때 Profil Zaufany 또는 적격 인증서를 통한 QES예요.

EU 신뢰 목록, ETSI 검증 보고서 & LTV

sgcSign은 EU와 동일한 방식으로 서명을 검증해요 — 라이브 LOTL에 대해, 노동 법원과 공공 기관이 법적 증거로 허용하는 표준화된 XML 보고서와 함께해요.

LTV를 통한 서명 검증

완전한 검증 파이프라인 — 다이제스트 확인, RSA/ECDSA 서명 검증, 인증서 체인 검증, OCSP 폐지 확인, 장기 검증을 위한 내장 RevocationValues, SignedProperties에 대한 Id 기반 프래그먼트 조회예요.

EU 신뢰 목록 (LOTL / EUTL)

TsgcEUTrustList는 ETSI TS 119 612 신뢰 목록 목록과 약 31개의 회원국별 신뢰 목록을 파싱해요. 라이브 EU 레지스트리에서 발급 TSP 서비스를 조회하여 모든 X.509 인증서를 eIDAS 적격으로 분류해요.

ETSI TS 119 102-2 검증 보고서

모든 검증에 대해 생성되는 표준화된 XML 검증 보고서(v1.2.1) — EU 노동 법원 및 공공 행정 검증기에서 서명 유효성의 법적 증거로 허용돼요.

RFC 3161 타임스탬프

모든 RFC 3161 타임스탬프 기관을 위한 내장 TsgcTSAClient예요. 서명을 XAdES-T, XAdES-LT, XAdES-LTA로 승격해요 — 서명 인증서가 만료된 후에도 오랫동안 검증 가능해요.

로컬 PFX에서 Cloud KMS까지 — 동일한 API

로컬 PFX로 VeriFactu 인보이스 서명

  • PFX에서 비밀번호로 인증서 로드
  • VeriFactu 프로파일 자동 적용
  • 하나의 메서드 호출로 서명된 XML 반환
SignVeriFactu.pas
// Sign Spanish VeriFactu invoice
var
  vKeyProvider: TsgcPFXKeyProvider;
  vSigner: TsgcDocumentSigner;
begin
  vKeyProvider := TsgcPFXKeyProvider.Create(nil);
  try
    vKeyProvider.FileName := 'certificate.pfx';
    vKeyProvider.Password := 'secret';
    vKeyProvider.LoadFromFile;

    vSigner := TsgcDocumentSigner.Create(nil);
    try
      vSigner.KeyProvider := vKeyProvider;
      vSigner.Profile := spVeriFactu;
      memoSigned.Text := vSigner.SignXML(memoXML.Text);
    finally
      vSigner.Free;
    end;
  finally
    vKeyProvider.Free;
  end;
end;

Azure Trusted Signing으로 EXE를 Authenticode 서명

  • 로컬 PFX 없음, USB 토큰 없음
  • 개인 키는 Azure에 유지됨
  • Microsoft 발급 공개 신뢰 인증서
SignWithAzure.pas
// Authenticode-sign with Azure Trusted Signing
var
  vKeyProvider: TsgcAzureTrustedSigningProvider;
  vSigner: TsgcAuthenticodeSigner;
begin
  vKeyProvider := TsgcAzureTrustedSigningProvider.Create(nil);
  vSigner := TsgcAuthenticodeSigner.Create(nil);
  try
    vKeyProvider.AccountName := 'my-trusted-signing-account';
    vKeyProvider.CertificateProfileName := 'public-trust';
    vKeyProvider.Endpoint := 'https://eus.codesigning.azure.net';

    vSigner.KeyProvider := vKeyProvider;
    vSigner.SignFile('myapp.exe', 'myapp-signed.exe');
  finally
    vSigner.Free;
    vKeyProvider.Free;
  end;
end;

PAdES-LT — 타임스탬프가 있는 가시적 서명

  • Windows 저장소의 인증서
  • RFC 3161 TSA가 PAdES-T로 승격
  • 이유 & 위치가 있는 가시적 서명
SignPDFVisible.pas
// PAdES-T with visible signature appearance
var
  vKeyProvider: TsgcWindowsCertStoreProvider;
  vSigner: TsgcPAdESSigner;
  vTSA: TsgcTSAClient;
begin
  vKeyProvider := TsgcWindowsCertStoreProvider.Create(nil);
  vSigner := TsgcPAdESSigner.Create(nil);
  vTSA := TsgcTSAClient.Create(nil);
  try
    vKeyProvider.SubjectName := 'CN=Acme Corp';
    vKeyProvider.LoadFromStore;

    vTSA.URL := 'https://freetsa.org/tsr';

    vSigner.KeyProvider := vKeyProvider;
    vSigner.TSAClient := vTSA;
    vSigner.Reason := 'Approved';
    vSigner.Location := 'Madrid, Spain';
    vSigner.VisibleSignature.Enabled := True;
    vSigner.SignPDF('contract.pdf', 'contract-signed.pdf');
  finally
    vTSA.Free;
    vSigner.Free;
    vKeyProvider.Free;
  end;
end;

빌드 팜을 위한 중앙화된 서명

빌드 파이프라인을 위한 중앙화된 서명이 필요하신가요? sgcSign Server는 REST API 및 Bootstrap 웹 관리자 뒤에 동일한 엔진을 래핑해요 — Windows 서비스 설치 프로그램, 준비된 GitHub Actions / Azure DevOps / Jenkins / Docker / Helm 파이프라인, 멀티테넌트 프로젝트 모델, 2단계 승인 워크플로, SHA-256 해시 체인 감사 로그, Prometheus 메트릭, HMAC 서명 웹훅이에요.

  • Authenticode, ClickOnce, NuGet, VSIX 서명
  • REST API, 웹 관리자, Windows 서비스 설치 프로그램
  • 기본적으로 모든 기능 포함
sgcSign Server에 대해 자세히 알아보기
github-actions.yml
name: Sign Release
on: [push]

jobs:
  sign:
    runs-on: windows-latest
    steps:
      - uses: esegece/sgcsign-action@v1
        with:
          server: https://sign.acme.local
          project: acme-release
          file: myapp.exe
          format: authenticode

오늘 eIDAS 준수 서명을 시작해요

Delphi, C++Builder 또는 .NET 애플리케이션에 XAdES, PAdES, CAdES, ASiC 서명을 추가하거나, 빌드 팜을 위한 중앙화된 서명 서비스를 구축해 보세요.