kbpgp – サーバ/Webブラウザ両方で使えるPGP暗号化
最近、Webサービスのセキュリティが問題視されるケースが増えています。大量のデータがある分、一度セキュリティインシデントが起こると大きな被害に繋がる可能性があります。それを防ぐには運営者からも読み取れないデータの保存が一番です。 そこで使えそうなのがkbpgp、JavaScriptによるPGPライブラリです。クライアントサイド、サーバサイドの両方で使えるライブラリになります。
kbpgpの使い方
使い方としては生成された秘密鍵を読み込みます。
alice_pgp_key = "-----BEGIN PGP PRIVATE ... etc."
alice_passphrase = "rat:beast::np:complete"
kbpgp.KeyManager.import_from_armored_pgp {
armored: alice_pgp_key
}, (err, alice) ->
unless err
if alice.is_pgp_locked()
alice.unlock_pgp { passphrase: alice_passphrase }, (err) ->
console.log "Loaded private key with passphrase" unless err
else
console.log "Loaded private key w/o passphrase"
後は指定した文字列を暗号化できます。
params =
msg: "Chuck chucky, bo-bucky!"
encrypt_for: chuck
kbpgp.box params, (err, result_string, result_buffer) ->
console.log err, result_armored_string, result_raw_buffer
この暗号化された文字列をサーバサイドに保存すれば安心して運用できるという訳です。サーバサイドとクライアントサイドで同じライブラリを使って暗号化、復号化ができるというのも面白いですね。
kbpgpはnode/JavaScript製のオープンソース・ソフトウェア(BSD License)です。