Sequoia 0.20.0がリリースされ、RustでのOpenPGPの実装



Sequoia0.20.0 パッケージリリースが昨日導入されました。それは提供していますOpenPGPの規格(RFC-4880)を実装している機能とコマンドラインツールのライブラリを。プロジェクトチームは、OpenPGPプロジェクト(RFC-4880)のメンバーの3人で構成されています。コードベースのセキュリティと信頼性を向上させるために、彼らはRustでOpenPGPの新しい無料の実装を作成することを決定しました。プロジェクトコードは、GPLv2 +ライセンスの下で配布されます。



開発者の目標は、製品のセキュリティを向上させるだけでなく、GnuPGの欠点を取り除くことでもあります。互換性を壊したり、コードベースを根本的に作り直したりしない限り、メインプロジェクトでそれらを排除することはできません。たとえば、GnuPGの個々のコンポーネント間の接続は十分に強力であるため、ユニットテストシステムを作成することはもちろん、変更を加えることも困難です。 gpupgコマンドラインツールキットは、機能と機能のライブラリで同期されていないため、多くのアクションはユーティリティを使用してのみ実行できます。



Sequoiaには、Gitスタイルのサブコマンドをサポートするsqコマンドラインユーティリティに加えて、低レベルと高レベルの2つのAPIオプションがあります。 C言語とPython言語にはバインディングがあります。 OpenPGP標準で説明されている機能のほとんどは、デジタル署名の暗号化、復号化、作成、および検証でサポートされています。



追加機能には、個別に提供されるデジタル署名の検証サポート、パッケージマネージャーとの統合への適応、およびしきい値と時間によって署名を制限する機能が含まれます。



低レベルAPIは、OpenPGPの機能と、ECCサポートや標準の将来のエディションの「ドラフト」からの要素など、いくつかの関連する拡張機能を非常に厳密に再現します。例外に関する限り、これらは、セキュリティに悪影響を与える可能性のある仕様の古い部分にすぎません。たとえば、MD5ハッシュのサポートなどです。 APIは、バッファなしのメッセージ処理もサポートします。その機能に関しては、OpenPGP標準の完全なカバレッジに近づき、OpenPGPデータを処理する準備が完全に整っています。安定した1.0リリースは近い将来リリースされる予定です。



高レベルのAPIについては、進化し始めたばかりであり、これまでのところ、公開鍵の保存やネットワークを介した機能へのアクセスなどの機能をカバーしています。プロジェクトの進展に伴い、その他のサポートやドメイン固有の機能が追加される予定です。



さらに、このパッケージには、開発、デバッグ、およびインシデント分析に使用できる非常に強力なパッケージ検査ツールも含まれています。検査ツールはパーサーと組み合わされているため、ユーザーは暗号化されたメッセージ、デジタル署名、およびキーの構造を分析できます。



  sq packet dump --hex message.pgp
 
   New CTB, 13 bytes: One-Pass Signature Packet
       Version: 3
       Type: Binary
       Pk algo: EdDSA Edwards-curve Digital Signature Algorithm
       Hash algo: SHA512
       Issuer: 83F8 2E4F E9A5 E098
       Last: true
 
   00000000  c4 0d                                              frame
   00000002        03                                           version
   00000003           00                                        sigtype
   00000004              0a                                     hash_algo
   00000005                 16                                  pk_algo
   00000006                    83 f8  2e 4f e9 a5 e0 98         issuer
   0000000e                                             01      last


プラットフォームのサポートに関しては、パッケージは現在、Linux、FreeBSD、Windows、macOS、Android、およびiOSプラットフォームで動作します。孤立したエンクレーブでコンピューティングするためのコプロセッサなど、これらのプラットフォームによって提供される暗号化サービスを使用する可能性もあります。追加の分離を提供するために、公開鍵と秘密鍵で機能する別々のプロセスにサービスを分離することが実践されています。たとえば、キーストアは別のプロセスの形で開発されます。 Cap'n Protoプロトコルは、個々のプロセスの相互作用を保証するために使用されます。



提示された新しいバージョンには、低レベルのパッケージsequoia-openpgpsqvプログラムgpgvの置き換え)が含まれていますステートレスOpenPGP CLIの実装を使用して、デタッチされた署名とsqopユーティリティを検証します。さびの要件がバージョン1.46に引き上げられました。変更をチェックするための継続的な統合システムの使用が拡張され、OpenPGPとの互換性をテストするためのセットが改善されました。



近い将来、開発者はバージョン1.0のリリースを計画しています。これには、現在のように低レベルのAPIだけでなく、高レベルのAPIも含まれます。






All Articles