
使いやすいデータ保護用暗号化フレームワーク:前方秘匿性(フォワードセキュリティ)を備えた安全なメッセージングと安全なデータストレージ。14のプラットフォームにわたる統一APIを提供します。
Themisは、認証、ストレージ、メッセージング、ネットワーク交換などの際にデータを保護するための、オープンソースの高水準暗号サービスライブラリです。Themisは、ほとんどのアプリに共通する典型的なデータ保護ユースケースの90%を解決します。
Themisは、単純な暗号機能から複雑な暗号機能まで、簡単・迅速・安全に構築するのに役立ちます。Themisにより開発者は、アプリケーションの開発という本質に集中できます。
アプリやバックエンドに保存されたシークレット(APIキー、セッショントークン、ファイル)を暗号化します。
データベースに保存する前に、機密データフィールドを暗号化します("アプリケーションサイドのフィールドレベル暗号化")。
ThemisとAcraを使用した検索可能な暗号化、データのトークナイゼーション、データマスキングをサポートします。
シークレットを安全に交換: 当事者間で機密データを共有し、患者と医師の間のシンプルなチャットアプリを構築します。
中央集権型または分散型アーキテクチャでエンドツーエンド暗号化スキームを構築: 1つのアプリでデータをローカルに暗号化し、どこでも暗号化された状態で使用し、認証されたユーザーのみが復号化します。
リアルタイムの安全なセッションを維持: アプリから接続されたデバイスを制御するための暗号化メッセージを送信し、アプリからバックエンドへリアルタイムの機密データを受信します。
秘密を明かさずに当事者間でシークレットを比較します(ゼロ知識証明ベースの認証)。
すべてに適合する一つの暗号ライブラリ: Themisはマルチプラットフォームアプリ(例: Node.jsバックエンドを備えたiOS+Android+Electronアプリ)に最適です。100%互換のAPIを提供し、サポートされているすべてのプラットフォームで同じように動作するためです。
Themisは、中核となる暗号セキュリティ操作の使用を簡素化する、既製のビルディングブロック*(「暗号システム」)*を提供します。
Themisは、4つの重要な暗号サービスを提供します:
私たちは、Themis上に他の製品(例: AcraやHermes)を構築するためにThemisを開発しました。
モバイル、Web、デスクトップ、またはサーバーサイドアプリケーションにThemisをインストールするには、インストールページを参照してください。 ソースからのビルドではなく、インストールパッケージの使用を強くお勧めします。
Themisは以下の言語/プラットフォームで利用できます。各言語の詳細は言語別ハウツーを参照してください:
Themisは、x86_64/i386、ARM、Apple Silicon(ARM64)、各種AndroidアーキテクチャのCPUアーキテクチャをサポートしています。
Themisは以下の最新の安定したOSバージョンでビルドおよび検証を行っています:
私たちは、このリストをより幅広いプラットフォームに拡大する予定です。Themisの改善や、お好みのプラットフォームや言語への対応を支援したい場合は、ご連絡ください。
Themisのドキュメントには、進化し続ける公式ドキュメントが含まれており、導入ガイドラインからユースケースまで、主要なThemisライブラリの背後にある暗号システムとアーキテクチャの簡単な説明を網羅しています。
詳細については、ドキュメントを参照してください:
Themisは、OpenSSL、LibreSSL、BoringSSLなどの有名な暗号ライブラリによって実装された、実績のある暗号アルゴリズムに依存しています。詳細については、Themisの暗号技術のドキュメントを参照してください。
この配布物には暗号化ソフトウェアが含まれています。現在お住まいの国では、暗号化ソフトウェアの輸入、所持、使用、および/または他国への再輸出に制限がある場合があります。暗号化ソフトウェアを使用する前に、暗号化ソフトウェアの輸入、所持、使用、再輸出が許可されているかどうかについて、お住まいの国の法律、規制、およびポリシーを確認してください。詳細については、http://www.wassenaar.org/ を参照してください。
米国商務省産業安全保障局(BIS)は、このソフトウェアを、非対称アルゴリズムによる暗号機能を使用または実行する情報セキュリティソフトウェアを含む輸出商品管理番号(ECCN)5D002.C.1に分類しています。この配布の形式および方法により、オブジェクトコードとソースコードの両方について、ライセンス例外ENC Technology Software Unrestricted (TSU)(BIS輸出管理規則 第740.13条を参照)に基づく輸出が許可されます。
アプリケーションがThemisを使用していて、Apple App Storeに提出する場合、暗号化の使用を宣言する際に一定の要件があります。
どうすればよいかについては、Themisに関するAppleの暗号輸出規制をお読みください。
Themisコアライブラリの各変更は、社内の暗号技術者とセキュリティエンジニアのチームによってレビューおよび承認されています。リリースのたびに、Themisに携わっていない暗号技術者による内部監査を実施しています。
私たちは、静的コード解析ツール、ファジングツール、メモリ解析ツール、単体テスト(各プラットフォームごと)、統合テスト(Themisがサポートするさまざまな言語、OS、x86/x64アーキテクチャ間の互換性の問題を発見するため)など、多くの自動化されたセキュリティテストを使用しています。セキュリティテストの実践について詳しくは、Themisセキュリティドキュメントをご覧ください。
セキュリティ関連の問題を発見したと思われる場合は、[email protected] までメールをお送りください。バグ報奨金プログラムが適用される場合があります。
モバイルおよびサーバープラットフォーム向けの暗号サービスライブラリとして、Themisは安全なデータ交換と保存を提供する「最先端」の暗号化ツールです。
Themisを使用することで、以下のような現在のデータプライバシー規制へのコンプライアンスを向上させることができます:
詳細については、ドキュメントの規制をご覧ください。
Themisは、モバイルプラットフォーム向けのデータ暗号化ライブラリとしてOWASPによって推奨されています。
Themisは非商用・商用を問わず幅広く使用されており、公開されているアプリケーションやライブラリの一部はこちらで見ることができます。
ブログやコントリビューターのリストに掲載されたいですか?Themisを使って作成したプロジェクトについてお知らせください!
貢献して永遠の敬意を得られるものを探しているなら、issueリストから何かを選んでください。コントリビューションガイドラインが出発点として最適です。
これほど多くのプラットフォームでThemisをサポートすることは大変な作業ですが、誰にとっても便利にThemisを使っていただけるよう最善を尽くしています。ユーザーが遭遇する問題のほとんどは、インストールプロセスと依存関係の管理に関連しています。問題が発生した場合は、お知らせください。
Cossack Labsでは、ThemisおよびThemisを使用するアプリケーション向けのプロフェッショナルサポートサービスを提供しています。
このサポートには、Webおよびモバイルアプリケーションを中心としたライブラリ統合、モバイルアプリケーション向けエンドツーエンド暗号化スキームの設計と構築、社内ライブラリ統合や高水準プロトコルのセキュリティ監査、暗号技術を必要とするカスタムアプリケーション開発、コンサルティングとトレーニングサービスが含まれますが、これらに限定されません。
[email protected] までメールをお送りいただくか、Cossack Labsのサイバーセキュリティサービスをご覧ください。
技術的な質問をしたい場合、バグを報告したい場合、機能を提案したい場合は、GitHubでディスカッションを開始したり、issueトラッカーでissueを報告したり、[email protected] に連絡したりしてください。
Cossack Labs Limitedのビジネス部門との連絡は、[email protected] までメールをお送りください。
| プラットフォーム | ドキュメント | 例 | バージョン |
|---|
| ⚛️ React Native (iOS, Android) | React Native ハウツー | docs/examples/react-native | |
| 🔶 Swift (iOS, macOS) | Swift ハウツー | docs/examples/swift | |
| 📱 Objective-C (iOS, macOS) | Objective-C ハウツー | docs/examples/objc | |
| ☕️ Java (Desktop) | Java(デスクトップ)ハウツー | docs/examples/java | |
| ☎️ Java (Android) | Java(Android)ハウツー | docs/examples/android | |
| 📞 Kotlin (Android) | Kotlin(Android)ハウツー | docs/examples/android | |
| 🔻 Ruby | Ruby ハウツー | docs/examples/ruby | |
| 🐍 Python | Python ハウツー | docs/examples/python | |
| 🐘 PHP | PHP ハウツー | docs/examples/php | |
| ➕ C++ | C++ ハウツー | docs/examples/c++ | |
| 🍭 Node.js | JavaScript(Node.js)ハウツー | docs/examples/js | |
| 🖥 WebAssembly | JavaScript(WebAssembly)ハウツー | docs/examples/js | |
| 🐹 Go | Go ハウツー | docs/examples/go | |
| 🦀 Rust | Rust ハウツー | docs/examples/rust | |
| 🕸 С++ Google Chrome向けPNaCl | WebThemisプロジェクト |