Skip to main content

File digital signature

Project description

Signas

安全なファイルデジタル署名 & 整合性検証ツールSignas は、Python で動作する軽量な電子署名ツールです。

RSA (2048-bit) 非対称暗号方式を採用しており、ファイルの「改ざん検知」だけでなく、「署名者の真正性」を確実に保証します。

主な特徴

RSA デジタル署名: 署名ファイル(.signas)自体の偽造を防止します。

強力な改ざん検知: SHA-256 とストリーミング読み込みにより、数GBの巨大なファイルも低メモリで検証可能。

身元証明: 署名者の名前と、任意で GitHub プロフィールを紐付け可能。

監査ログ (Audit Log): すべての署名・検証の履歴を audit.log に自動記録。

パスワード保護: 秘密鍵をパスフレーズで暗号化し、盗難時の不正署名を防ぎます。

インストール

pip install signas

(注意: RSA機能のために cryptography ライブラリが必要です)

使い方 (CLI コマンド)

  1. 鍵の生成署名を始める前に、あなた専用の鍵ペアを作成します。
signas genkey

private_key.pem: あなたの秘密鍵です(絶対に他人に渡さないでください!)。

public_key.pem: あなたの公開鍵です(検証者に渡してください)。

  1. ファイルに署名するファイルが「本物」であることを証明する署名ファイルを作成します。
signas sign <file> <signer_name> [github_url]

例: signas sign data.zip TAICHI1129 https://github.com3.

ファイルを検証するファイルが改ざんされていないか、署名が正しいかを確認します。

signas verify <file>

※実行には対象のファイル、.signas、および署名者の public_key.pem が必要です。

.signas ファイルの仕様

.signas は以下のデータを含む JSON 形式です:

info: ファイルの SHA-256 ハッシュ値、署名者名、GitHub リンク。

signature: メタデータに対して作成された Base64 エンコード済みの RSA-PSS 署名。

例:

{
  "info": {
    "hash": "5a51be41913d0...",
    "signer": "TAICHI1129",
    "github": "https://github.com"
  },
  "signature": "MIIBIjANBgkqh..."
}

セキュリティ上の注意秘密鍵の管理: private_key.pem やそのパスワードを紛失すると、二度と署名ができなくなります。

公開鍵の配布: 検証者は、信頼できるルートから入手した公開鍵を使用してください。

実行コード例

  1. 準備:鍵ペアの生成署名活動を始める前に、一度だけ実行します。
signas genkey

入力内容: 秘密鍵を保護するためのパスワード(4文字以上)。

生成物: private_key.pem(署名用)、public_key.pem(配布用)。


  1. 署名:ファイルに電子署名を付与ファイルが「自分のものであること」と「改ざんされていないこと」を証明します。

例A:名前のみで署名する場合

signas sign report.pdf "Taro Yamada"

例B:GitHubリンクを含めて署名する場合

signas sign software.zip "TAICHI1129" "https://github.com"

入力内容: genkey で設定したパスワード。

生成物: report.pdf.signas または software.zip.signas。


  1. 検証:ファイルの真正性をチェック受け取ったファイルが本物かどうかを確認します。

同じフォルダに 対象ファイル、.signasファイル、public_key.pem がある状態で実行します。

signas verify software.zip

成功時: ✅ Verification Successful と表示され、署名者名とGitHubリンクが表示されます。

失敗時(改ざんあり): ❌ Verification Failed: File content has been tampered with! と表示されます。

失敗時(署名の偽造): ❌ Verification Failed: Invalid or forged signature. と表示されます。


  1. 履歴の確認(ログ)いつ、どのファイルに対して操作を行ったかを確認します。
#Windows
type audit.log

# Mac / Linux
cat audit.log

表示例: [2024-05-20 12:00:00] ACTION: SIGN | FILE: software.zip | STATUS: SUCCESS | Signed by TAICHI1129


  1. ハッシュ値のみの確認署名を作らずに、単純にファイルのSHA-256値だけを見たい場合です。
signas hash sample.txt

Windowsユーザーへ

signas コマンドが機能しない場合は python -m signas.cli を使用してください。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

signas-0.1.9.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

signas-0.1.9-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file signas-0.1.9.tar.gz.

File metadata

  • Download URL: signas-0.1.9.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for signas-0.1.9.tar.gz
Algorithm Hash digest
SHA256 2e2b1e3e3806c2fbb5e5fb66e671df9f82c04dbcb99e3c947d9808631d344b0d
MD5 a78849dbd75c6ca0b52d736af82801e6
BLAKE2b-256 69b5300e13cfb4c532d7367553a1e4dd81d5ee82531a0aea7ffe64c3f9f30b10

See more details on using hashes here.

File details

Details for the file signas-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: signas-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for signas-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 8314f5d95c83be941229ff0211719dc7d5b337ee8a73c71d4c5272b96386c449
MD5 73219be7933b89fd12d4f80f8fb3f2f6
BLAKE2b-256 21aa3a78d05bb573178473ad119b48aaa0cee80c24f58f1aea839dc09bd14961

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page