2

製品設計ツールの1つから機密情報を取得するアプリケーションが1つあります。そのため、チャネルとしてHTTPSを使用し、Webサービスに送信する前に要求パラメーターと一部のデータを暗号化しています。だから、すべてが大丈夫のようです。

しかし、セキュリティ監査のアプリケーションを提供したところ、暗号化キーがソースコードにハードコーディングされていることがわかりました。彼らはSothinkSWFDecompilerを使用して私のSWFファイルを調べました。彼らは鍵を握り、それについて懸念を表明した。

このアプリケーションは、Flex 3(SDK 3.4)を使用して開発されました。ソースコードにハードコーディングせずに秘密鍵を使用するための最良の方法はありますか?誰かがこの種の問題に遭遇した場合は、私に知らせてください。

誰でも、ハードコーディングせずにSourceCodeで秘密鍵を使用するための最良の方法を教えてください。

これが私のサンプルコードです:

var currentResult:String = "";
        var strDataToEncrypt:String = "";
        var kdata:ByteArray;

        var todayDate:Date = new Date();

        kdata = Hex.toArray(Hex.fromString("secretKey here"));
        strDataToEncrypt =username.toUpperCase() + "#$#" + password + "#$#"  + todayDate.getTime().toString();          
        var data:ByteArray;
        data = Hex.toArray(Hex.fromString(strDataToEncrypt))
        var name:String = "des3-ecb";
        var pad:IPad = new PKCS5; 
        var mode:ICipher = Crypto.getCipher(name, kdata, pad);
        pad.setBlockSize(mode.getBlockSize());
        mode.encrypt(data);
        currentResult = Base64.encodeByteArray(data);
        var token:String = currentResult;
4

2 に答える 2

2

フラッシュで完全に保護するようなものはありません。キーはコード内にあるか、外部にロードされている必要があり、ある時点で、十分に判断された人なら誰でもキーを取得できるようになります。あなたができることは、このプロセスを非常に複雑にして、面倒な価値がないようにすることだけです。

ソースを逆コンパイルして読みにくくする方法については、この質問をご覧ください:swfファイルを逆コンパイルから保護する方法は?

于 2011-04-12T08:20:23.580 に答える
0

データをURLパラメータとして送信しないでください。ポストリクエストで送信します。

それが不可能な場合は、公開鍵を使用してスキームを実装してみてください。ただし、注意してください。何か間違った実装を行うと、さらに大きなセキュリティ問題が発生する可能性が高くなります。

于 2011-04-12T08:18:13.170 に答える