5

私は少し難解なプロジェクトに取り組んでおり、小さな/遅い組み込みマイクロ(OSなし)で基本認証を実装する必要があります。このデバイスは、シリアルポートを介していくつかのWebページを提供します。これらのページは、制御できないハードウェアによってIPネットワークを介して噴出されます。

このようなサーバーコード(飢餓ダイエットのnwebを考えてください)は、HTTP GET / POST要求を受け取り、ページを吐き出し、それに応じて設定を変更します。

ユーザーがデータを表示したり、設定を変更したりできないようにするために、ユーザーのログイン/セッションを認証する何らかの方法が必要です。

このデバイスは、インターネットに直接さらされたり、深刻なハッキングに100%難攻不落になることを意図したものではありません(ネットワークセキュリティ/分離は顧客の問題です*)。セキュリティ要件は、下位ランクが点滅灯に触れないようにすることです;)

スペース/処理能力が不足しているため(コードスペースが約2kで、MHzが少ないと仮定)、SSLなどを実装することはできませんが、標準のHTTPアクセス制御よりも少なくとも1つ優れていると便利です。。

GET、POST、Cookieデータの設定/読み取りを処理できます。私たちのマイクロが持っているものの1つは、まともな暗号標準のハードウェア乱数ジェネレーターです。

  • =実際には、顧客はデバイスを独自のネットワークにぶら下げたり、物理的に切断したり、少なくともファイアウォールで保護したりする必要があります。しかしねえ、それがボーイングのために働くなら...
4

1 に答える 1

1

アクセスから保護したいだけの場合:GETリクエストがあるときはいつでも、パスワードのCookieを探してください。Cookieが設定されていない場合は、パスワードをサーバーにPOSTするHTMLログインフォームを返送してください。サーバーが正しいパスワードでPOSTデータを取得した場合は、COOKIEをパスワードに設定する「loginginok」ページを返送してください。そうすれば、(明らかに正しいパスワードで)ログインした人は誰でも、今後のすべてのGET要求でCookieが設定されます。ログインしたことがない人には、常にログインページが表示されます。乱数と、乱数とパスワードのXORの2つのCookie値を設定することで、「非表示」にすることができます。このようにすると、クライアントはCookieの値を把握できなくなります。さらに進んで、たとえばクライアントIPとXORを実行すると、クライアントはCookieを他のコンピューターにコピーできなくなります。

単純な暗号化が必要な場合は、javascriptでXMLHTTPREQUESTSを使用できます。サーバーに単純なpuesdo乱数ジェネレーター(または単純なXORの隠蔽など)を使用してデータを暗号化し、クライアントにjavascriptで同じことを逆方向に実行させます。サーバーにindex.htmlを除くすべてのページを暗号化させることができ、index.htmlでは、javascriptの他のページをXMLHTTPREQUESTSして復号化し、innerHTMLなどを使用してコンテンツをdivに配置することができます。

于 2012-11-25T21:55:44.540 に答える