sgcSign

Delphi・C++Builder・.NET 向けエンタープライズグレードのデジタル署名スイートです。10 種類のキープロバイダーと 21 の事前設定済み国別プロファイルから XAdES、PAdES、CAdES、ASiC 署名を生成します — インプロセスのコンポーネントライブラリとして、またはビルドファーム向けのセルフホスト型リモート署名デーモンとしてご利用いただけます。

XAdES / PAdES / CAdES / ASiC
10 種類のキープロバイダー
21 か国プロファイル
EU eIDAS 準拠

ライブラリまたはサーバー — 共通の署名コア

sgcSign は、同一の署名エンジン・キープロバイダー・国別プロファイルを共有する 2 つの補完的な形態で提供されています。組み込みライブラリ、集中管理型サーバー、またはその両方を組み合わせてご利用ください。

sgcSign コンポーネントライブラリ

Delphi / C++Builder / .NET アプリケーションの内部で直接 XAdES、PAdES、CAdES、ASiC 署名を生成するドロップイン型コンポーネントです。ネイティブ 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 まで

4 つの ETSI 署名ファミリーと PE バイナリ向けの Microsoft Authenticode を完全にサポートしています。すべての 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 — 関連署名コンテナー

1 つまたは複数のドキュメントと関連する XAdES または CAdES 署名を単一の ZIP アーカイブにまとめます。シンプル形式(1 ドキュメント)または拡張形式(マニフェスト+複数ドキュメント)に対応しています。

Authenticode + ClickOnce + NuGet + VSIX

コード署名 — sgcSign Server

Windows PE ファイル(.exe、.dll、.sys、.ocx)、ClickOnce マニフェスト、NuGet パッケージ、VSIX バンドルに署名します。SHA-256(デフォルト)、SHA-384、SHA-512 および旧システムとの互換性のためのデュアル署名をサポートしています。

ローカルファイル、ハードウェアトークン、クラウド KMS

すべてのプロバイダーは同一の IsgcKeyProvider インターフェースを実装しているため、署名者はコードを変更せずにあらゆるキーソースで動作します。コンポーネントを 1 つ変更するだけで 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 Key Management Service を使用します。AWS 内に保管された鍵で署名し、ドキュメントのハッシュを送信すると生の署名が返されます。

Google Cloud KMS

TsgcGCloudKMSKeyProvider

Google Cloud Key Management を使用します。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 などに対応しています。

EU 電子インボイスおよび雇用契約

各プロファイルは、対象国の規制当局の要件に合わせてハッシュアルゴリズム、正規化方式、署名レベル、タイムスタンプ、OCSP 失効ポリシーを事前に調整しています。1 行変更するだけで適用国を切り替えることができます。

電子インボイスプロファイル(12)

プロファイル システム 形式 レベル
spVeriFactuスペインVeriFactu (AEAT)XAdES-EPESB-B
spTicketBAIスペイン(バスク)TicketBAIXAdES-EPESB-B
spFacturaeB2BスペインFacturae 3.x / FACeXAdES-EPESB-T
spFatturaPAイタリアFatturaPA (SDI)XAdES-BESB-B
spSAFTPTポルトガルSAF-T PTRSA-SHA256B-B
spKSeFポーランドKSeF (Krajowy System e-Faktur)XAdESB-T
spFacturXフランス / ドイツFactur-X / ZUGFeRDXAdESB-B
spEFacturaルーマニアe-Factura (ANAF)XAdESB-T
spNAVOnlineハンガリーNAV OnlineXML-DSigB-B
spFiskalizacijaクロアチアFiskalizacijaXML-DSigB-B
spPeppolBE / spPeppolBGEU(ベルギー、ブルガリア)Peppol UBL 2.xXAdESB-T
spMyDATAギリシャmyDATA (AADE)XAdESB-B

EU 雇用契約プロファイル(9)

雇用契約に関する各加盟国の労働法要件に適合した eIDAS 準拠の署名です。各法域の AdES / QES レベル、ハッシュ、正規化、タイムスタンプ、OCSP 失効ポリシーを事前に調整しています。労働行政の検証機関にも承認されています。

ドイツ — spEmploymentDE

レベル B-LT。書面形式の契約(例:24 か月超の有期雇用、契約後の競業禁止)には BGB §126a に基づき QES が必要です。

イタリア — spEmploymentIT

レベル B-LT、FEQ 有資格署名。CAdES(.p7m)が広く使用され、XAdES も受け入れられています。INPS ポータルは両形式に対応しています。

スペイン — spEmploymentES

レベル B-T、AdES で十分です。SEPE / TGSS ポータルには FNMT または DNIe 証明書が必要で、CRL は FNMT トラストリスト経由で取得されます。

フランス — spEmploymentFR

レベル B-T、AdES で問題ありません。DSP2 / RGS に基づくリモート署名フローでは QES が推奨されます。

オーストリア — spEmploymentAT

レベル B-LT。QES は Handy-Signatur / ID Austria 経由が一般的です。

ベルギー — spEmploymentBE

レベル B-LT。QES は eID カード(BeID)経由で取得します。

ポルトガル — spEmploymentPT

レベル B-LT。QES は Cartão do Cidadão / Chave Móvel Digital 経由で取得します。

オランダ — spEmploymentNL

レベル B-T。AdES は一般的に受け入れられており、一部の HR ポータル(UWV)では QES が必要です。

ポーランド — 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 の加盟国別トラストリストを解析します。発行 TSP サービスをライブ EU レジストリと照合することで、任意の 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 からクラウド KMS まで — 同一の API

ローカル PFX で VeriFactu インボイスに署名する

  • パスワードを使って PFX から証明書を読み込む
  • VeriFactu プロファイルが自動適用される
  • 1 回のメソッド呼び出しで署名済み 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 署名を追加するか、ビルドファーム向けに集中管理型署名サービスを構築してください。