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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

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

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

1729閲覧

iOSのセキュリティに関してどれぐらいの処理をするのが妥当なのかわかりません。

sachiko-kame

総合スコア334

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

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

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/08/20 13:50

編集2022/01/12 10:55

今までセキュリティの方での実装経験などがなく知識が追いついてません。しかし、今度のプロジェクトでセキュリティ面を意識する事になりました。

今まで調べてきた事、方向性がこれで妥当かどうか(決して全くサイバーに合わない処理と言っている訳ではありません。あくまで基本的な処理が入っているかの確認をしていただけると嬉しいです。)みていただきたいです。よろしくお願いします。

現在の知識の箇条書き

・セキュリティの100%はない。Googleの大手でさい、日々セキュリティ対策に勤しんでいる。なぜなら、新しいセキュリティ対策をしても常に新しくセキュリティを解除するサイバー達が沢山いるから。

・大事なものはiosならキーチェーンなどを使い値を保存した方が、普通に端末に保存するUserDefaultsよりはるかにセキュリティを高くして保存できる(なぜなら、アプリ内で保存するのではなく、端末自体に保存なので、ハッカーも手を出しにくい。)

・アクセストークン、リフレッシュトークンには必ず期限がある。(なぜなら、もし仮にハッカーに取られてしまっても期限があればずっと悪用できないから)

・APIを使い情報を個人の情報をもらうときはアクセストークン(期限短い)方を付与。アクセストークンの期限切れと同時にリフレッシュトークン(期限が長い)をサーバーに要求。こうする事で常にweb上を行き来しハッカーに取られやすいアクセストークンが仮に取られてしまってもリフレッシュトークンが取られない限り悪用は短い期間ですむ。

・証明書の作成。証明書とは印鑑証明書のようなもの。しかし、この実装の方法や流れはまだ掴めていません。

今回セキュアにしたい情報
アクセストークン
リフレッシュトークン

現在考えている実装の流れ
アクセストークン(期限短い)、リフレッシュトークン(期限長い)をユーザーのパスワードとメールアドレスをサーバーに送り発行してもらったものをキーチェーンを使い端末に保存。

APIによる情報をもらうときはアクセストークン付与で個別の情報をもらい、アクセストークンの期限が切れたときはリフレッシュトークンで、また新たにアクセストークンとリフレッシュトークンを取得端末に保存。さらにリフレッシュトークンが切れた際にはログイン画面からやり直してもらう。

さらに、ログイン時には必ずログインされたメールアドレスあてにログインしましたの報告をする。(この事で、ログインしていないはずの方がログイン(悪用)されていたらそのアカウントを止める事ができ、悪用が短い期間ですむから。)

懸念点と考えていること
今回証明書の使い方が理解できなかった事もありますが、今回使う情報で、クレジットカードの番号などはなく、会社の情報やメールアドレスとパスワードなので、強烈にハッカーに狙われ、損害がそれほど多くなりそうではないので、これぐらいのセキュリティが妥当かと思いました。一番はあくまで乗っ取りが怖かったのでその対策にメールアドレスでログインの確認などを入れたいと思いました。

アクセストークンとリフレッシュトークンに関しては期限を1日と1週間ほどと考えていますが、これはちょうどいいのか、短いのか長いのかが正直わかりませんでした。

長い文書読んでいただきありがとうございます。結構長い間色々調べても妥当性がわからなく、今回相談させていただきました。よろしくお願いします。

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

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

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

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

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

Stripe

2017/08/20 14:33

何を守るためのセキュリティなんですか? アクセストークンやリフレッシュトークンは最終的に守りたいものとは別ですよね?
Stripe

2017/08/20 14:39

一度登録したパスワードやメールアドレスは後から変更はできないんですか?
sachiko-kame

2017/08/20 14:44

コメントありがとうございます。理解があっているかわかりませんが、最終的に守りたいものとして、個人でしかできない操作(例えば勉強会などの依頼です。)と登録時に使ったメールアドレスとパスワードを守りたいです。よろしくお願いします。
Stripe

2017/08/20 14:45

端末とサーバー間の通信はhttpsなどで暗号化するんですよね? アクセストークンやリフレッシュトークンは両方ともキーチェーンに保存してるのに、アクセストークンがハッカーに取られて、リフレッシュトークンが取られないと想定している根拠はなんですか?
sachiko-kame

2017/08/20 14:47

すみません。二回目の質問まで見れていませんでした。登録したパスワードやメールアアドレスは後から変更は可能にするつもりです。
sachiko-kame

2017/08/20 14:51

アクセストークンが取られると想定しているのは通信時でのやりとみのときに考えていました。なのでキーチェーンで保存したリフレッシュトークンが取られれれば、アクセストークンも取られると考えています。そのためにリフレッシュトークンにも期限をつけるべきではないかと考えています。端末のサーバー感の通信はhttpsの通信にはなると思いますが、暗号化は正直考えていませんでした(知識がなく)。通信時での暗号化は当たり前に行われるものでしょうか?重なった質問になってしまってごめんなさい。
Stripe

2017/08/20 14:58

httpsは暗号化通信です。(httpは非暗号化通信です。)httpsを信頼するなら通信時にアクセストークンを取られる可能性はゼロになりますよ。
sachiko-kame

2017/08/20 15:08 編集

そうだったんですね。その認識自体なかったです。ありがとうございます。http通信可能にするとセキュリティ自体が怪しくなるという認識はあったので、通信はhttpsのみにしようと思っています。通信時にアクセストークンが取られる可能性がゼロになるとは全く知りませんでした。ありがとうございます。通信時のものが取られないだけでもすごく心強いです。 ということは、そもそもアクセストークンのみでも、アクセストークンとリフレッシュトークン両方があってもセキュリティ自体は変わらないってことですか?何回も質問してごめんなさい。
Stripe

2017/08/21 12:48

両方とも同じセキュリティレベルだと思います。だから、どちらかがあればアクセス可(OR条件)だとあまり意味が無いかもしれません。両方ないとアクセス不可(AND条件)だと少し良くなるかもしれません。
sachiko-kame

2017/08/21 22:40

なるほど、とても勉強になります。ありがとうございます!今回色々教えてくださりとても、嬉しかったです。本当にありがとうございました⭐️本当に助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問