私のゲームアプリでは、iPhone/iPadからTCPを介して制御するセントラルサーバにログインしてログイン情報を送信する必要があります。TCP経由でパスワードを暗号化する方法は?
私が現在行っていることは、ログイン用のASCIIバイトとパスワードでクリアされたLOGINオペコードを送信することです。私はユーザーのパスワードを明確に送信したくありません。たとえば、Wi-Fi接続の場合があります。
この暗号化はどのように処理できますか?ここに私の要件は次のとおりです。
- 私はは絶対に必要な場合、私は意志、は、サードパーティ製のlibが使用する必要はありません。必要であれば、それは私がこのアプリはすべての国で利用できるようにしたい私の影響は、アプリケーションストア
- に「あなたのアプリケーションは、それに暗号を持っていない」に「はい」と答えています何BSDライセンスまたは類似
- なければなりません
- デバイス上でローカルにパスワードをハッシュし、そのキャッシュされた値のみを送信することはできますか?ハッシュが盗まれた場合、ユーザーのアカウントが侵害される可能性がありますが、パスワードが失われることはありません(パスワードは保存されません)。
- OAuthのアウトオブザ私が以前経験したようにセットアップされたシステムは、あまりにも侵襲的です。
私はここで敗北しています。これは、開発のほぼ1年を終える前に私が取り組む必要がある最後の3つの事柄の1つであるので、私はここで良い助けを感謝します。(これは理論的でも時期尚早の最適化でもありません!
は、あなたが[RSA](http://en.wikipedia.org/wiki/RSA)のような公開鍵暗号の型に見たことがありますか?または、クライアントにマスターキーを保存しておくのが快適な場合は、[AES](http://en.wikipedia.org/wiki/Advanced_Encryption_Standard)はどうですか?あらかじめ構築されたライブラリは存在しますが、これらのメソッドは自分で実装することができます。その仕様はパブリックドメインです。 – ShaneC
セキュリティ保護されたトランスポート層であるかどうかにかかわらず、クリアテキストのパスワードを保存する必要はありません。何か読んでください。 :) – bzlm