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.6.tar.gz (7.7 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.6-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: signas-0.1.6.tar.gz
  • Upload date:
  • Size: 7.7 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.6.tar.gz
Algorithm Hash digest
SHA256 1ee1425105890726d7646e362a54d54de774db8bb05c1751482380596b113f5e
MD5 afab4faaa78f5dfc04d2497f06a94d00
BLAKE2b-256 f6c4851591bf466ccbebb91140eb22e43a4b5b1eadb2b727bd1e61092aebf968

See more details on using hashes here.

File details

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

File metadata

  • Download URL: signas-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 8.4 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 5db28381b375930ca0ce961354a1c4d1a5e4085f3db34257e6c47bc3e1f155d4
MD5 55bd80750c775a566ad0149358e88492
BLAKE2b-256 a9c446ddf00f993d06d0793da81f53074a1e3fd55fc6e19159c0fbaf5a1c7bbc

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