sgcSign 機能リファレンス
sgcSign デジタル署名スイートの完全な機能カタログです ― Delphi 7 ~ Delphi 13 Florence、C++Builder、.NET 向けに署名標準、キープロバイダー、国別プロファイル、検証、EU トラストリスト統合、ETSI 検証レポートを網羅します。
sgcSign デジタル署名スイートの完全な機能カタログです ― Delphi 7 ~ Delphi 13 Florence、C++Builder、.NET 向けに署名標準、キープロバイダー、国別プロファイル、検証、EU トラストリスト統合、ETSI 検証レポートを網羅します。
sgcSign はキー管理、署名操作、出力フォーマットを分離しています。任意のキープロバイダーと任意の署名者を組み合わせ、1 つのコンポーネントを変更するだけでローカル PFX とクラウド KMS を切り替えられます。
証明書と秘密鍵のアクセスを単一インターフェースの背後に抽象化します。ローカルファイル、Windows 証明書ストア、PKCS#11 ハードウェアトークン、Azure / AWS / Google Cloud KMS、HashiCorp Vault、Certum SimplySign、CSC v2 リモート QTSP に対応します。
各 ETSI フォーマット向けの専用署名者:TsgcXAdESSigner、TsgcPAdESSigner、TsgcCAdESSigner、TsgcAuthenticodeSigner。さらに TsgcDocumentSigner ― 国別プロファイルから適切な署名者を自動選択・設定する統合高レベル API です。TsgcSAFTPTSigner は、ポルトガルの Portaria 363/2010 請求書署名を生成します。
TsgcTSAClient(RFC 3161 タイムスタンプ)、TsgcOCSPClient(失効確認)、TsgcSignatureVerifier(検証)、TsgcX509Certificate(証明書デコーダー+発行者検証)、TsgcEUTrustList(LOTL/EUTL)、TsgcASiCContainer(ASiC-S/ASiC-E ZIP パッケージング)。
4 つの AdES レベル(B-B、B-T、B-LT、B-LTA)すべてで完全な ETSI 署名フォーマットをカバーし、コード署名向けの Microsoft Authenticode にも対応します。
XML 高度電子署名です。エンベロープ、デタッチ、エンベロービングの各モードに対応します。B-B / B-T / B-LT / B-LTA レベルをサポートします。署名位置を固定するエンベロープフォーマット(KSeF /v2/auth/xades-signature)向けの SignatureParentElement を提供します。Delphi 7 以降の WideString オーバーロードでポーランド語・スペイン語・ドイツ語の発音符号文字に対応します。
PDF 高度電子署名です。PDF 内に埋め込まれた署名で、署名者名・理由・場所・連絡先情報・設定可能な矩形を含む可視署名外観に対応します。Adobe Acrobat と互換性があります。TSA + OCSP を使用した PAdES-T、-LT レベルをサポートします。
任意のファイルまたはデータストリームに対する CMS/PKCS#7 バイナリ署名です。デタッチ形式とアタッチ形式に対応します。CAdES-BES、CAdES-T(タイムスタンプ付き)、CAdES-XL(失効値付き長期)をサポートします。
関連署名コンテナです。1 つまたは複数のドキュメントを XAdES または CAdES 署名とともに ZIP フォーマットアーカイブにまとめます。シンプル形式(apASiCS、単一ドキュメント)またはエクステンデッド形式(apASiCE、マニフェスト+複数ドキュメント)に対応します。最初の ZIP エントリは非圧縮の mimetype マーカーで、先頭約 50 バイトで検証者がコンテナを検出できます。
Windows PE ファイル(.exe、.dll、.sys、.ocx、.cpl、.scr)向けの Microsoft Authenticode です。SHA-1、SHA-256(デフォルト)、SHA-384、SHA-512 ハッシュアルゴリズムに対応します。RFC 3161 タイムスタンプトークン、レガシー+最新の検証者との互換性のためのネスト(デュアル)署名をサポートします。sgcSign Server で利用可能です。オプションのページハッシュ(signtool sign /ph 相当)により、Windows はカーネルモードドライバーの 4 KB ページごとに検証できます(メモリ整合性、HVCI)。
各フォーマットで 4 つの ETSI 適合レベルすべてをサポートします:B-B(基本)、B-T(タイムスタンプ)、B-LT(長期、失効値付き)、B-LTA(アーカイブ、アーカイブタイムスタンプ付き)。TSA クライアントと OCSP レスポンダーを追加することで署名を B-B から B-LT に昇格できます。
すべてのプロバイダーは IsgcKeyProvider を実装しています。署名コードを変更せずにいずれのキーソースにも切り替えられます。
| コンポーネント | 種別 | 用途 |
|---|---|---|
TsgcPFXKeyProvider |
ローカルファイル (PKCS#12) | パスワード保護された PFX/.p12 ファイル。Windows ではネイティブ Windows CNG、他のプラットフォームでは純粋な Pascal で処理します。 |
TsgcPEMKeyProvider |
ローカルファイル (PEM) | 暗号化 PKCS#8 鍵付きの PEM 証明書。ネイティブ PBES2 / PBKDF2 / AES-CBC 復号 ― OpenSSL DLL 不要。 |
TsgcWindowsCertStoreProvider |
Windows ストア | ローカルマシンおよびカレントユーザーストア。Active Directory と グループポリシーの統合をサポートします。 |
TsgcPKCS11Provider |
ハードウェアトークン | PKCS#11 ドライバー経由のスマートカードおよび HSM ― SafeNet、YubiKey、Nitrokey、Thales、Utimaco など。 |
TsgcAzureTrustedSigningProvider |
クラウド (Microsoft) | Azure Trusted Signing ― Microsoft の認定署名サービス。OAuth2 クライアントクレデンシャル。Azure Key Vault とは別のサービスです。 |
TsgcAWSKMSKeyProvider |
クラウド (AWS) | AWS Key Management Service。鍵は AWS 内に保存され、ネットワークを出るのはドキュメントハッシュのみです。 |
TsgcGCloudKMSKeyProvider |
クラウド (Google) | Google Cloud Key Management。サービスアカウント認証を使用します。 |
TsgcHashiCorpVaultKeyProvider |
クラウド (セルフホスト) | HashiCorp Vault トランジット署名エンジン。鍵は Vault クラスターから外に出ることはありません。 |
TsgcCertumSimplySignProvider |
リモート QTSP | Certum SimplySign ― ポーランドの認定電子署名プロバイダー。KSeF、ZUS、PUE に対応します。 |
TsgcCSCKeyProvider |
リモート QTSP (CSC v2) | 汎用 Cloud Signature Consortium v2 クライアント ― Universign、D-Trust sign-me、A-Trust、FNMT Cl@ve Firma、Evrotrust、Intesi Group、および CSC v2 API を公開する任意の QTSP に対応します。 |
各プロファイルはハッシュアルゴリズム、正規化、署名レベル、RFC 3161 タイムスタンプポリシー、OCSP 失効要件を対象国の規制機関の要件に合わせて事前設定しています。1 行変更するだけで対応国を切り替えられます。
| プロファイル | 国 | システム | フォーマット | レベル |
|---|---|---|---|---|
spVeriFactu | スペイン | VeriFactu (AEAT) | XAdES-EPES | B-B |
spTicketBAI | スペイン(バスク) | TicketBAI | XAdES-EPES | B-B |
spFacturaeB2B | スペイン | Facturae 3.x / FACe | XAdES-EPES | B-T |
spFatturaPA | イタリア | FatturaPA (SDI) | XAdES-BES | B-B |
spSAFTPT | ポルトガル | SAF-T PT | RSA-SHA256 | B-B |
spKSeF | ポーランド | KSeF (Krajowy System e-Faktur) | XAdES | B-T |
spFacturX | フランス / ドイツ | Factur-X / ZUGFeRD | XAdES | B-B |
spEFactura | ルーマニア | e-Factura (ANAF) | XAdES | B-T |
spNAVOnline | ハンガリー | NAV Online | XML-DSig | B-B |
spFiskalizacija | クロアチア | Fiskalizacija | XML-DSig | B-B |
spPeppolBE | ベルギー | Peppol UBL 2.0 | XAdES | B-T |
spPeppolBG | ブルガリア | Peppol UBL 2.1 | XAdES | B-T |
spMyDATA | ギリシャ | myDATA (AADE) | XAdES | B-B |
ポルトガル: SAF-T (PT) ファイル自体への署名に加えて、専用の TsgcSAFTPTSigner コンポーネントは Portaria 363/2010 の請求書単位の署名を生成します。これは RSA-SHA1 署名で、位置 1, 11, 21 and 31 にある 4 文字が請求書に印字され、QR-code field Q に格納されます。
TicketBAI: 県別のバリアント spTicketBAIAraba・spTicketBAIBizkaia・spTicketBAIGipuzkoa はそれぞれ、各県の Hacienda 公式の署名ポリシー識別子と SHA-256 ダイジェストを保持します。spTicketBAI は後方互換性のため Bizkaia のペアにマッピングされます。
チェコ EET 2.0: 売上登録(Elektronická evidence tržeb)は署名プロファイルではなく、専用のコンポーネント TsgcEETClient を備えています。登録された各売上に WS-Security で署名し、税務当局に送信して、受領確認コードである pok を読み取ります。報告は 2027 年 1 月 1 日に開始されます。EET 2.0 の詳細。
EU 加盟国の労働法要件(ドイツの § 126a BGB、イタリアの FEQ など)に準拠した eIDAS 適合署名です。管轄ごとに事前設定済みで、Profile.LoadProfile(spEmploymentXX) を使用して TsgcXAdESSigner に読み込みます。
| プロファイル | 国 | レベル | ハッシュ | タイムスタンプ | OCSP | 備考 |
|---|---|---|---|---|---|---|
spEmploymentDE | ドイツ | B-LT | SHA-256 | あり | あり | 書面形式の契約に § 126a BGB による QES が必要です。 |
spEmploymentIT | イタリア | B-LT | SHA-256 | あり | あり | FEQ 認定署名。INPS ポータルは XAdES と CAdES の両方を受け付けます。 |
spEmploymentES | スペイン | B-T | SHA-256 | あり | なし | AdES で十分です。SEPE / TGSS ポータルは FNMT または DNIe が必要です。 |
spEmploymentFR | フランス | B-T | SHA-256 | あり | なし | AdES 可。DSP2 / RGS に基づくリモート署名では QES が推奨されます。 |
spEmploymentAT | オーストリア | B-LT | SHA-256 | あり | あり | Handy-Signatur / ID Austria 経由の QES が一般的です。 |
spEmploymentBE | ベルギー | B-LT | SHA-256 | あり | あり | eID カード(BeID)経由の QES です。 |
spEmploymentPT | ポルトガル | B-LT | SHA-256 | あり | あり | Cartão do Cidadão / Chave Móvel Digital 経由の QES です。 |
spEmploymentNL | オランダ | B-T | SHA-256 | あり | なし | AdES は一般的に受け入れられます。一部の HR ポータル(UWV)では QES が必要です。 |
spEmploymentPL | ポーランド | B-T | SHA-256 | あり | なし | 契約が ZUS / PUE に提出される場合は Profil Zaufany または認定証明書による QES が必要です。 |
完全な検証パイプラインと EU トラストリスト統合、標準化された ETSI TS 119 102-2 XML 検証レポートを提供します ― EU 労働裁判所および行政機関の検証者が署名の有効性の法的証明として受け入れます。
TsgcSignatureVerifier は完全なパイプラインをカバーします:ダイジェスト確認、RSA / ECDSA 署名検証、証明書チェーン検証、OCSP 失効確認、長期検証のための埋め込み RevocationValues、SignedProperties の ID ベースフラグメントルックアップ。
TsgcEUTrustList は ETSI TS 119 612 の信頼リスト一覧と約 31 の加盟国別信頼リストを解析します。任意の X.509 証明書を EU ライブレジストリと照合して eIDAS 認定として分類できます。エアギャップ環境向けのオフラインモードキャッシュをサポートします。
すべての検証で標準化された XML 検証レポート(v1.2.1)を生成します ― EU 労働裁判所および行政機関の検証者が署名の有効性の法的証明として受け入れる形式です。
TsgcTSAClient は任意の RFC 3161 タイムスタンプ認証局に接続します。署名を B-B から B-T、B-LT、B-LTA に昇格できます ― 署名証明書の有効期限が切れた後も長期にわたって検証可能です。
TsgcOCSPClient は RFC 6960 Online Certificate Status Protocol チェックを実行します。リアルタイム失効確認を行い、OCSP レスポンスを B-LT 署名に埋め込むことで、レスポンダーが後にオフラインになっても文書の検証を可能にします。
TsgcX509Certificate は、オンラインデコーダーが表示するすべてのフィールドを公開します。鍵サイズ、アルゴリズム名、シリアル(コロン区切りおよび 10 進数)、RFC 2253 / LDAP 識別名、証明書ポリシー、鍵識別子、SHA-1 / SHA-256 / MD5 サムプリント、SubjectPublicKeyInfo SHA-256 ピンに対応します。発行者署名を暗号的に検証し(RSA および ECDSA)、AIA caIssuers URL から CA を解決し、CheckCertificateAuto を介して自動 OCSP チェックを実行します。
一貫した XML 署名処理のためのインクルーシブ C14N(xml-c14n11)とエクスクルーシブ C14N(xml-exc-c14n)をサポートします。各国別プロファイルが規制機関の要件に応じた正規化方式を選択します。
Windows では Windows CNG / BCrypt 暗号化、Linux64、macOS、iOS、Android では純粋な Pascal のエンジンを使用します。OpenSSL DLL は不要です。暗号化 PKCS#8 PEM 向けのネイティブ PBES2 / PBKDF2 / AES-CBC。ネットワーク操作には Windows では WinHTTP、他のプラットフォームでは Delphi RTL の HTTP クライアントを使用します。
Delphi 7 から RAD Studio 13 まですべての Delphi コンパイラおよび C++Builder をサポートします。モダンなユニットはレガシー互換性のためにガードされています(例:TsgcASiCContainer は D2010 以降のジェネリクスが必要で、D7 では空のユニットとしてコンパイルされます)。
.NET Framework 2.0 ~ 4.8、.NET Core、.NET 5 ~ 10、.NET Standard 向けのミラー C# 移植版です。同一の Tsgc* クラス名、Delphi ライブラリと同一の API サーフェスです。
すべてのライセンスにソースコードが完全付属します。検査、カスタマイズ、監査、拡張が可能です。コンポーネントクラス名はデザイン時 IDE 統合のために登録されています。
すべての X.509 / CRL / OCSP / TSA タイムスタンプは RFC 5280、RFC 3161、RFC 6960 に準拠した UTC TDateTime 値として保存されます。各コンポーネントの *Local プロパティでローカル時刻に変換できます。
バイナリの無料再配布が可能です。ドキュメントごとの料金やデプロイメントごとのライセンスなしに、好きなだけドキュメントに署名できます。
spFatturaPA、ポーランドなら spKSeF に切り替え
// 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;
// Authenticode-sign with Azure Trusted Signing
var
vKeyProvider: TsgcAzureTrustedSigningProvider;
vSigner: TsgcAuthenticodeSigner;
begin
vKeyProvider := TsgcAzureTrustedSigningProvider.Create(nil);
vSigner := TsgcAuthenticodeSigner.Create(nil);
try
vKeyProvider.TenantId := '00000000-0000-0000-0000-000000000000';
vKeyProvider.ClientId := '11111111-1111-1111-1111-111111111111';
vKeyProvider.ClientSecret := 'my-client-secret';
vKeyProvider.AccountName := 'my-trusted-signing-account';
vKeyProvider.CertificateProfileName := 'public-trust';
vKeyProvider.Endpoint := 'https://eus.codesigning.azure.net';
vKeyProvider.Connect;
vSigner.KeyProvider := vKeyProvider;
vSigner.Level := alBES; // alT additionally requires a TSAClient
vSigner.SignFile('myapp.exe', 'myapp-signed.exe');
finally
vSigner.Free;
vKeyProvider.Free;
end;
end;
// 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.StoreName := 'MY';
vKeyProvider.StoreLocation := cslCurrentUser;
vKeyProvider.SelectCertificateBySubject('Acme Corp');
vTSA.URL := 'https://freetsa.org/tsr';
vSigner.KeyProvider := vKeyProvider;
vSigner.TSAClient := vTSA;
vSigner.Reason := 'Approved';
vSigner.Location := 'Madrid, Spain';
vSigner.VisibleSignature.Enabled := True;
vSigner.SignPDFFile('contract.pdf', 'contract-signed.pdf');
finally
vTSA.Free;
vSigner.Free;
vKeyProvider.Free;
end;
end;
sgcSign Server のセキュリティ、署名制御、運用の機能です。登録版とトライアル版にはすべての機能が含まれます。最後の列は Community Edition で利用できる内容を示します。
| 機能 | 内容 | Community Edition |
|---|---|---|
| 2 要素サインイン | 任意の認証アプリが生成する TOTP コードと、10 個の使い捨てリカバリーコード。admin.require_2fa によりすべてのコンソールユーザーに必須にでき、紛失した第 2 要素は管理者がリセットできます。 |
はい |
| OpenID Connect サインイン | PKCE を使い、Microsoft Entra ID、Okta、Keycloak、Google、または標準的なプロバイダーを通じてコンソールにサインインします。ユーザーは外部 ID を自分のアカウントにリンクでき、アカウント申請は任意で管理者の承認を待たせることができます。 | はい |
| コンソールの堅牢化 | すべてのレスポンスにセキュリティヘッダーと厳格なコンテンツセキュリティポリシーを付与し、パスワードポリシーを設定でき、一時パスワードは初回サインイン時に変更され、ロールや権限が変わるとセッションが終了します。 | はい |
| 保存時に暗号化されるシークレット | プロバイダーのパスワード、PIN、クラウド認証情報、Webhook シークレットを、マシンに紐付いたマスターキーのもとで AES-256-GCM により保存します。--protect-secrets は既存の設定をその場で暗号化します。 |
はい |
| 承認の強制 | プロバイダー単位またはプロジェクト単位で承認を必須にし、signtool /dlib 向けの生ダイジェスト署名を含むすべての署名経路でサーバーが確認します。承認 1 件につき署名は 1 回のみです。 |
いいえ |
| API キーのライフサイクル | 最大 7 日間の重複期間を持つ再生成、編集可能な有効期限、キーの所有者、キーごとの許可プロバイダー一覧、api_keys.self_service によるオペレーター向けのセルフサービスキー。 キーは初回利用時から有効期間を開始させることもできます。最初の認証済み呼び出しから N 日間有効で、「有効化期限」の日付が必須のため、未使用のキーが無期限に有効なまま残ることはありません。サブキーは親キーが有効化されてから初めて動作し、有効化は監査ログに apikey.activate として記録され、Community エディションでは両方の値が 30 日に制限されます。 |
有効なキーは 1 つ、有効期限は最大 30 日 |
| PKCS#11 PIN リトライガード | 誤った PIN が max_pin_attempts 回に達するとトークンへのログインを停止し、allow_final_pin_try を設定しない限り最後の試行は使いません。そのため、誤った PIN でハードウェアトークンがロックされることはありません。 |
いいえ(PKCS#11 プロバイダーなし) |
| 既定のタイムスタンプサーバー | サーバー全体の RFC 3161 タイムスタンプサーバー一覧を自動フォールバックで順番に試行し、プロバイダーごとの tsa_urls と、1 件のリクエストでタイムスタンプを省略する no_timestamp を備えています。 |
はい |
sgcsign timestamp |
すでに Authenticode 署名済みのファイルに RFC 3161 タイムスタンプを追加し、各 --tsa サーバーを順番に試行します。 |
はい |
--page-hashes |
Authenticode:イメージの 4 KB ページごとにハッシュを 1 つ追加します。signtool sign /ph 相当で、メモリ整合性(HVCI)を使うカーネルモードドライバーで利用されます。 |
はい |
| 暗号化されたスケジュールバックアップ | 設定、データベース、マスターキー、キーと証明書ファイルを 1 つの AES-256-GCM アーカイブにまとめ、スケジュールまたはコンソールから書き出します。--archive restore で復元でき、サーバーを新しいマシンへ移行することもできます。 |
はい |
| 証明書の有効期限監視 | 署名証明書と TLS 証明書を毎日チェックし、残り 30 日、14 日、7 日、1 日の警告をダッシュボード、cert.expiring Webhook、メール、Prometheus メトリクスで通知します。 |
ダッシュボードとメールのみ |
| メール通知 | ロックアウト、2 要素認証とパスワードの変更、バックアップの失敗、証明書の期限切れ間近をメールで通知します。SMTP は STARTTLS または暗黙的 TLS に対応し、Windows では OpenSSL ライブラリは不要です。 | はい |
| Windows インストーラー | sgcSignServer_Setup.exe は Windows サービスをインストールし、最初の管理者を作成して、ファイアウォールのポートを開き、自己署名証明書または既存の PFX ファイルで TLS を設定します。 |
いいえ、Community は zip から start.bat で実行します(プレーン HTTP) |
| CLI 保存プロファイル | sgcsign config は設定を名前付きプロファイルに保持し、sgcsign auth set-key は API キーを保存します。Delphi CLI と .NET ツール esegece.sgcsign.cli の両方で利用できます。 |
はい |