cocos2d-xで利用できる暗号化

6,329 views
5,996 views

Published on

cocos2d-xで利用できる暗号化

Published in: Technology

cocos2d-xで利用できる暗号化

  1. 1. cocos2d-xで利用できる暗号化 (cocos2d-x 3.0rc2) 株式会社TKS2 清水友晶
  2. 2. 清水 友晶 —  株式会社TKS2 スマートフォンアプリ開発 Webコンテンツ開発 —  日本cocos2d-xユーザ会代表 講演活動 執筆活動 —  チラ裏開発メモ: http://tks2.net/memo —  SlideShare: http://www.slideshare.net/doraemonsss
  3. 3. —  6/25発売 —  2,800円 + 税 —  400ページ —  6/18発売 —  2,980円 + 税 —  312ページ —  日経ソフトウェア 2014年2月号
  4. 4. —  日本cocos2d-xユーザ会 http://cocos2d-x.jp —  cocos2d-x開発元Chukong Technologies社公認 —  cocos2d-xのための自由なコミュニティー —  入門者から上級者まで誰でもOK!!ぜひご参加を! (1300人以上参加) —  cocos2d-xに関することなら何でも投稿できます!! —  https://www.facebook.com/groups/cocos2dxjp/
  5. 5. —  4/17 第19回 shinjuku.cocos2d-x —  5/16 第4回 cocos2d-x開発事例勉強会 —  5/22 第20回 shinjuku.cocos2d-x
  6. 6. 目次 —  cocos2d-x 3.0rc2におけるプロジェクト作成 —  setup.py —  cocosコマンド —  暗号化の必要性 —  cocos2d-xで利用できる暗号化 —  アプリ内 —  画像の暗号化 —  zipファイルの暗号化 —  サーバアクセス時 —  リクエストの暗号化 —  可逆圧縮・非可逆圧縮
  7. 7. cocos2d-x 3.0rc2における プロジェクト作成 —  setup.py —  環境変数の設定を行うことができる —  COCOS_CONSOLE_ROOT —  NDK_ROOT —  ANDROID_SDK_ROOT —  ANT_ROOT —  cocosコマンドでAndroid向けビルドをするには、 Android NDK, Android SDK, ANTが必要になるため、 チェックの意味も含めて実行してみるといい
  8. 8. cocos2d-x 3.0rc2における プロジェクト作成 —  cocosコマンド —  new —  クロスプラットフォーム対応プロジェクトの生成を行うことが できる —  プロジェクト名 —  -p … パッケージ名 —  -d … ディレクトリ —  -l … 言語(cpp, lua, js) —  ./cocos new MyProject -p net.tks2.MyProject -d -l cpp —  run —  指定プラットフォームのビルドを行い、シミュレータまたは実 機で実行することができる —  -p … プラットフォーム(android, ios, mac, web, win32, linux) —  -m … モード(debug, release) —  ./cocos run -s /MyProject -p android
  9. 9. 暗号化の必要性 —  iOS, Androidは、アプリのリソースを簡単に見ること ができる —  iOSはJail Breakしなくても、Androidはroot化しなくて もアプリの中身を閲覧することができる —  一般的なhttp通信の場合、盗聴・改竄が容易である
  10. 10. 画像の暗号化 —  TexturePackerを利用することで、画像の暗号化を行 うことができる —  フォーマットの設定 —  暗号の設定
  11. 11. 画像の暗号化 —  SpriteFrameCacheに読み込む前に暗号の設定を行う —  ZipUtils.hの読み込み —  暗号化の設定 —  テクスチャアトラスの読み込み
  12. 12. zipファイルの暗号化 —  cocos2d-xには、unzip.hにより容易にzipファイルを 扱うことができるが、暗号化には対応していない —  unzip.cpp内において、強制的に暗号化しない処理が記述 されている —  暗号化に必要な、crypt.hが存在しない —  crypt.hはminizip(zlibライセンス)に含まれるものを利 用するとよい —  http://www.winimage.com/zLibDll/minizip.html
  13. 13. zipファイルの暗号化 —  cocos2d-xにおいて、暗号化を有効化する —  crypt.hの配置 cocos2d/external/unzipディレクトリにcrypt.hを配置 する —  unzip.cppの不要な設定をコメントアウト —  ファイル解凍処理のコーディング —  cocos2d-xのソースに含まれるAssetsManagerクラスの uncompressメソッドが参考になる
  14. 14. HTTP通信における リクエストの暗号化 —  SSLを用いることで通信経路上での盗聴を防ぐことが できるが、サーバには大きな負荷が掛かる —  より高速に通信を行う必要がある場合、サーバとの データのみを暗号化する方法も考えられる —  cocos2d-xでは、デフォルトでは暗号化をサポートし ていないが、dualface氏によりCCCryptクラスが公開 されている —  https://github.com/dualface/cocos2d-x-extensions
  15. 15. HTTP通信における リクエストの暗号化 —  CCCryptoクラスでは、以下の変換を行うことができ る —  AES(暗号化) —  エンコード —  デコード —  BASE64(データ変換) —  エンコード —  デコード —  MD5(ハッシュ関数) —  SHA1(ハッシュ関数)
  16. 16. HTTP通信における リクエストの暗号化 —  ここではMD5を利用してみよう —  サーバで発行されたキーを、iPhoneなどの端末から入力 し、認証を行うようなシーンが想定されます —  CCCrypto.hの読み込み —  MD5化
  17. 17. HTTP通信における リクエストの暗号化 —  出力された結果の確認 —  CCCryptoクラスによりMD5化 —  MacのコマンドによるMD5化
  18. 18. おわり —  ありがとうございました

×