質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

意見交換

クローズ

5回答

879閲覧

iOSアプリからPHPに情報を送る際の暗号化について

takepon_far

総合スコア0

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

0グッド

3クリップ

投稿2023/03/10 16:19

0

3

テーマ、知りたいこと

iOSアプリからPHPに情報を送る際の暗号化について

背景、状況

私は新たにSNSを開発しています。
その中でサーバーとの情報のやり取りでセキュリティを十分に確保する方法を探しています。

iOSではHTTPS通信が必須となっているのですが、一般的にHTTPS通信でもサーバーに送信する個人情報は暗号化すべきという意見がありました。

私の開発環境としては
クライアント→iOS
サーバー→PHP(フレームワーク使用なし)
としており言語が違うため、この二つに共通した暗号化方式が見つからず、片方が暗号化しても複合化をすることができず困っています。

のちのちAndroidの対応も視野に入れているのでPHPを基準として、暗号化、複合化を考えた方が良いと思っているのですが、それは現実可能な考えなのでしょうか?
DBに格納された暗号化データは基本的に複合できないのが正しいセキュリティなのでしょうか?
セキュリティに関して最近学んでいるところなので拙いですが、ご意見あればよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答5

#1

maisumakun

総合スコア145064

投稿2023/03/10 22:43

一般的にHTTPS通信でもサーバーに送信する個人情報は暗号化すべきという意見

まずは、この意見の詳細をご提示ください。

ほとんどの場合、「すべき」ということには前提条件があり、真に「一般的」なことはそう多くありません。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

maisumakun

総合スコア145064

投稿2023/03/10 22:49

DBに格納された暗号化データは基本的に複合できないのが正しいセキュリティなのでしょうか?

パスワードなど特殊なものを除けば、「復号できないデータ」は使用不能です。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

takepon_far

総合スコア0

投稿2023/03/11 02:03

まずは、この意見の詳細をご提示ください。

ほとんどの場合、「すべき」ということには前提条件があり、真に「一般的」なことはそう多くありません。

コメントいただきありがとうございます。
ご意見いただき考えを改めました。

こちらの質問の回答で「「POSTパラメータを隠蔽したいからhttpsにする」ということをお考えであれば、それは全く意味が無いと思います」というのをみて、そう思い込んでいました。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12134771137

また別の観点で調べてみたところ、以下のような記事も見つかりました。
この記事はHTTPS通信におけるファイルの二重暗号についての記事になりますが、パラメータにも同じことが言えると思ったので参考にしています。
https://zenn.dev/koduki/articles/7cae805327c6ed
こちらの記事ではさまざまな観点から二重暗号化は必要なのかについて考察をしている記事で、参考になりました。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

ockeghem

総合スコア11701

投稿2023/03/11 13:58

暗号化をする際には、盗聴などのシチュエーションについて検討する必要があります。

登場人物として、利用者(A)、サーバー(B)、攻撃者(X)を考えます。
HTTPSは通常、AとB間の通信に対しては堅牢で、Xによる盗聴等を防ぐことができます。

ならば、以下はなんだということになるわけですが、

「POSTパラメータを隠蔽したいからhttpsにする」ということをお考えであれば、それは全く意味が無いと思います

これは、POSTバラメータ「名」を秘匿したいという話であり、値の方ではありません。
HTTPSはPOSTバラメータ名も暗号化するのですが、パラメータは名は通常固定です。そして、HTTPSは利用者自体は通信内容を見ることができます。ですから、攻撃者Xが自らこのアプリを利用して、自身の通信内容を見ると、パラメータ名はわかってしまうことを指しています。この場合、値は攻撃者Xが入力した値ですから、攻撃者にとって価値のない情報です。まとめると、下記のようになります。

  • パラメータ名(固定): HTTPSによって保護されない
  • パラメータ値(可変): HTTPSによつて保護される

このように、どのような情報を、どのような脅威から保護したいかによって、セキュリティの内容は変わってきます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

takepon_far

総合スコア0

投稿2023/03/13 00:58

私の理解が足りていませんでした。
今回の回答で理解できました。
ありがとうございます。
Q&Aで作るべきスレを意見交換でたててしまい、ベストアンサーおよびクローズができないため
このままにします。

ご回答ありがとうございました。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問