私は、ユーザーがドキュメントにデジタル署名を行う必要があるプロジェクトに取り組んでいます。私はグーグルにチェックインし、デスクトップアプリケーションであるsinaduraについて知っていますが、これをWebアプリケーションに呼び出す必要があります。
Linuxサーバーにalfrescocommunity Editionをインストールし( https://www.alfresco.com/thank-you/thank-you-downloading-alfresco-community-edition )、以下のGitHubリンクの指示に従いました。 。
https://github.com/zylklab/alfresco-sinadura
上記の手順で正常に実装しました。しかし、Alfrescoは大きなプロジェクトであり、他にもいくつかの機能があります。しかし、私はそれを必要とせず、屋外に似た自分のWebアプリケーションにデジタル署名部分を実装する必要があります。
既存のプロジェクトにデジタル署名部分を実装するにはどうすればよいですか?誰か提案してもらえますか
ブラウザのセキュリティ制限により、JavaScriptはシステム証明書キーストアまたはスマートカードにアクセスできません。以前はJavaアプレットを使用できましたが、最新のブラウザアップデートでは使用できなくなりました。
ブラウザでのデジタル署名の現在のソリューションでは、ユーザーのコンピュータにデスクトップソフトウェアをインストールする必要があります。操作プロセスは次のとおりです。
インストール:ユーザーは自分のコンピューターにデスクトップソフトウェアをインストールします。ソフトウェアは自己署名証明書をインストールし、コンピューターのポートをリッスンしてサービスとして実行する組み込みブラウザーを含みます
Webアプリケーションは、安全なWeb接続を使用してローカルソフトウェアへの署名を要求します。例えば https://localhost:1234/sign?doc=xxxx.
ブラウザは結果を待ちます
ローカルアプリケーションはドキュメントを受信し、ユーザーに証明書を選択するか、カードを入力して署名するように求めます。ローカルアプリケーションであるため、セキュリティ制限はありません
Webアプリケーションが結果を受け取ります。 RESTサービスを介してローカルアプリケーションにクエリを実行するか、WebSocketを開くことができます。
概念は単純です(ローカルアプリケーションへの署名を要求するWebアプリケーション)が、このタイプのアプリケーションの構築は非常に複雑です。他の多くの要因を考慮に入れる必要があります。
ソフトウェアのインストールと配布
セキュリティと暗号化
デジタル署名フォーマット:XAdES、CAdES、PAdESなど。これらはアプリケーションに実装することも、ドキュメントがサーバー上にあり、単一のハッシュがローカルで署名される3つのフェーズで署名サービスを使用することもできます。
したがって、既存のソリューションを使用することをお勧めします。
SD-DSS + nex (lowina):欧州委員会が推進するオープンソースソリューション。デモを確認してください ここ
Chromeトークン署名 :Chromeおよびエストニア政府向けに開発されたWeb上でeIDを使用して署名するためのFirefox拡張機能
Sinaduraもオープンソースイニシアチブであり、私が見たところ、同じように機能しますが、重要な参照があるかどうかはわかりません。また、APIも見つかりませんでした。
Alfrescoには、カスタムアクションを作成するための構成がいくつかあります。
屋外でカスタムアクションを作成できます。
また、Javaクラスコードを実行して、ファイルにデジタル署名を作成できます。
this Java class から参照を取得できます
あなたが提供したハイレベルからあなたの要件を満たすものが何であるかを判断するのは難しいです。 「デジタル署名」は非常に広範で一般的な要件です。法的なデジタル署名は、テキストフィールドのように単純で、ユーザーに 適合署名 の入力方法に関する特定の指示を与えることができます。そしてもちろん、暗号化された証明書を使用してドキュメントに署名することもできます。
Alfrescoとそれに利用できる多くのデジタル署名アドオンの1つを試したようですが、この要件を満たすためだけにエンタープライズコンテンツ管理プラットフォーム全体を実装する必要はありません。
1つのアイデアは、SaaS Docusign または RightSignature のようなオファリングを調べることです。
別のアイデアは、独自のシンプルなサービスを開発することです。たとえば、署名する必要のあるドキュメントがPDFである場合、またはPDFに簡単に変換できる場合は、 iText PDF API)のようなものを使用してデジタル署名を作成できます。 on PDFサーバー側のドキュメント。