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 コマンド)
- 鍵の生成署名を始める前に、あなた専用の鍵ペアを作成します。
signas genkey
private_key.pem: あなたの秘密鍵です(絶対に他人に渡さないでください!)。
public_key.pem: あなたの公開鍵です(検証者に渡してください)。
- ファイルに署名するファイルが「本物」であることを証明する署名ファイルを作成します。
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 やそのパスワードを紛失すると、二度と署名ができなくなります。
公開鍵の配布: 検証者は、信頼できるルートから入手した公開鍵を使用してください。
実行コード例
- 準備:鍵ペアの生成署名活動を始める前に、一度だけ実行します。
signas genkey
入力内容: 秘密鍵を保護するためのパスワード(4文字以上)。
生成物: private_key.pem(署名用)、public_key.pem(配布用)。
- 署名:ファイルに電子署名を付与ファイルが「自分のものであること」と「改ざんされていないこと」を証明します。
例A:名前のみで署名する場合
signas sign report.pdf "Taro Yamada"
例B:GitHubリンクを含めて署名する場合
signas sign software.zip "TAICHI1129" "https://github.com"
入力内容: genkey で設定したパスワード。
生成物: report.pdf.signas または software.zip.signas。
- 検証:ファイルの真正性をチェック受け取ったファイルが本物かどうかを確認します。
同じフォルダに 対象ファイル、.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. と表示されます。
- 履歴の確認(ログ)いつ、どのファイルに対して操作を行ったかを確認します。
#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
- ハッシュ値のみの確認署名を作らずに、単純にファイルのSHA-256値だけを見たい場合です。
signas hash sample.txt
Windowsユーザーへ
signas コマンドが機能しない場合は python -m signas.cli を使用してください。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ee1425105890726d7646e362a54d54de774db8bb05c1751482380596b113f5e
|
|
| MD5 |
afab4faaa78f5dfc04d2497f06a94d00
|
|
| BLAKE2b-256 |
f6c4851591bf466ccbebb91140eb22e43a4b5b1eadb2b727bd1e61092aebf968
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5db28381b375930ca0ce961354a1c4d1a5e4085f3db34257e6c47bc3e1f155d4
|
|
| MD5 |
55bd80750c775a566ad0149358e88492
|
|
| BLAKE2b-256 |
a9c446ddf00f993d06d0793da81f53074a1e3fd55fc6e19159c0fbaf5a1c7bbc
|