私は決してセキュリティの専門家ではありませんが、RESTスタイルのWebサービスを作ることを好んでいます。
新しいサービスを作る際には、送信するデータを安全にする必要があります。 HTTPSを使ったRESTと、WS-Securityを使ったSOAP WS、どちらのアプローチがより安全なのかという議論が始まっています。
私は、すべてのWebサービスの呼び出しにHTTPSを使用すれば、このアプローチは安全であると考えています。 私の考えでは、銀行や金融機関のWebサイトでHTTPSが十分であれば、私にとっても十分だと思います。 繰り返しになりますが、私はこの分野の専門家ではありませんが、これらの人々はこの問題について相当真剣に考え、 HTTPS を安心して使用しているのだと思います。
同僚はそれに同意せず、SOAPとWS-Securityが唯一の方法だと言っています。
この件に関しては、ウェブ上では賛否両論のようです。
ここのコミュニティは、それぞれの長所と短所について意見を述べてくれるでしょうか? ありがとうございます。
HTTPS は、ネットワーク上でのメッセージの送信を保護し、クライアントにサーバーの身元をある程度保証します。これは、銀行やオンライン証券会社にとって重要なことです。彼らがクライアントを認証する際の関心事は、コンピュータのアイデンティティではなく、あなたのアイデンティティにあります。そのため、カード番号、ユーザー名、パスワードなどを使ってお客様を認証します。その後、提出物が改ざんされていないかどうかを確認するために、いくつかの予防措置が取られますが、全体としては、セッション中に何が起こっても、それはあなたが始めたことだとみなされます。
WS-Securityは、メッセージの作成から消費まで、機密性と完全性の保護を提供します。つまり、通信の内容が正しいサーバーでしか読めないようにするのではなく、サーバー上の正しいプロセスでしか読めないようにするのです。安全に開始されたセッション内のすべての通信が、認証されたユーザーからのものであると仮定する代わりに、各通信は署名されなければなりません。
裸のバイク乗りを使った面白い説明がここにあります。
WS-SecurityはHTTPSよりも多くの保護を提供し、SOAPはRESTよりも豊富なAPIを提供します。私の意見としては、本当に追加の機能や保護が必要でない限り、SOAPとWS-Securityのオーバーヘッドを省くべきだと思います。ちょっと言い訳がましいですが、実際にどれだけの保護が正当化されるかという決定は、(単にクールに構築されるものではなく)この問題を熟知している人たちによってなされる必要があります。
技術的には、あなたの言い方ではどちらも正しくありません。なぜなら、SOAPメソッドの通信は安全ではないし、RESTメソッドは正当なユーザーの認証について何も言っていないからです。
HTTPSは、攻撃者が2つのシステム間の通信を盗聴することを防ぎます。 また、ホスト・システム(サーバー)が実際にユーザーがアクセスしようとしているホスト・システムであることを検証します。
WS-Securityは、許可されていないアプリケーション(ユーザー)がシステムにアクセスすることを防ぎます。
RESTfulなシステムがユーザーを認証する方法を持っていて、WS-Securityを持つSOAPアプリケーションがHTTPSを使っているなら、本当はどちらも安全です。 それは、データの表示とアクセスの方法が違うだけです。
wikiの記事をご覧ください。
また、ポイント・ツー・ポイントの場合は、TLS(Transport Layer Security)を使用することで、Webサービス上で機密性とデータの整合性を確保することができます(例:httpsでメッセージを送信する)。
しかし、WS-Securityは、メッセージが発信元ノードから送信された後まで、メッセージの完全性と機密性を維持するという、より広い問題に対処し、いわゆるエンドツーエンドのセキュリティを提供します。
つまり。