//tips
なるほど。いい情報。
//基本情報理解
公開鍵暗号方式と共通鍵暗号方式の違い。
共通化暗号方式は、別名でAESと呼ばれ、この方式では暗号化と復号化の鍵が一緒。ある鍵を使ってデータを暗号化し、その後に同じ鍵を使ってデータを復号化する。
RSA=公開鍵暗号方式では暗号化と復号化の鍵を別々に作り、データ受信者が両方の鍵を作り、送信者に公開鍵の方を共有する。送信者から公開鍵を用いて暗号化された情報を秘密鍵でデコードすることになる。
チャレンジレスポンス方式は、パスワードを直接やり取りしない認証のやり方で、チェックする人がキーをチェックを受ける人に渡し、認証を受ける人はキーワードとパスワードを合体したものをチェックする人に渡す。
チェックする人は事前にキーとパスワードを合体させておき、認証先から送られてくる合体物と比べ、同じであれば問題なしとするもの。
仮想通貨のhash確認の仕組みと同じ。
SSL(Secure Sockets Layer)とは、盗聴や改ざん、なりすましを防ぐことを目的とした暗号化通信のプロトコルのこと。
SSLによる通信は、Webサイトへのアクセス、メールやFTP(File Transfer Protocol)、VPN(Virtual Private Network)などで利用されている。
最近ではSSLを改良したTLS (Transport Layer Security)が一般的に利用されている。
SSL通信を行う際は、共通鍵暗号方式と秘密鍵暗号方式の双方を組み合わせているのが特徴と言える。
https://eset-info.canon-its.jp/malware_info/special/detail/200903.html
サンドボックスとはコンピューター上に設けられた攻撃されることを前提とした仮想環境であり、たとえ悪意のあるプログラムが実行されても、コンピューターをマルウェアからの感染を防ぎ、安全が守られる仕組みである。
検査したいプログラムがある時、コンピューター上で安全な仮想環境を設けて、その中でプログラムを動作させて分析する。
これにより、サンドボックス内は安全なので、もし実行されたプログラムが悪意のあるものだったとしても、コンピューターの安全は保たれることになる。
SIEM(Security Information and Event Management)とは、ファイアウォールやIDS/IPS、プロキシなどから出力されるログやデータを一元的に集約し、それらのデータを組み合わせて相関分析を行うことにより、ネットワークの監視やサイバー攻撃やマルウェア感染などのインシデントを検知するもの。
https://www.daj.jp/news/160309_01/
サニタイジングとは、利用者が入力した文字データを受け取る際に、プログラムにとって特別な意味を持つ可能性のある文字や文字列を検知して、一定の規則に従って別の表記に置き換えること。 「無害化」とも呼ばれ、攻撃者が入力データ中にコード断片などを混入させて誤作動を誘発する攻撃などを防ぐために行われる。webページへのphp入力フォーマットのhtmlの部分で扱ったもの。思い出す。
リバースプロキシは、外部インターネットからサーバーへアクセスされる通信を中継する仕組み。
https://eset-info.canon-its.jp/malware_info/special/detail/201021.html
//unityでのrayによるオブジェクト反応設計
Unityでマーケットを作成した際にプレイヤーの視線(ray)で商品をハイライトし、クリックできるようにする。
raycastで指定した場所から透明な光線を打ち、光線に当たったオブジェクト情報を取得していく。
スクリーンのタップポジションからrayを放つ方法が簡単だったのでそちらでtest。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GetInfo : MonoBehaviour
{
void Update()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 10.0f))
{
Debug.Log(hit.collider.gameObject.transform.position);
Debug.Log(hit.collider.gameObject.name);
}
}
}
カーソルが乗ったオブジェクトの座標と名前を即座に取得できた。
Physics.Raycast(Vector3 origin(rayの開始地点), Vector3 direction(rayの向き),RaycastHit hitInfo(当たったオブジェクトの情報を格納), float distance(rayの発射距離), int layerMask(レイヤマスクの設定));
が詳細情報となっており、Vector3 origin(rayの開始地点), Vector3 direction(rayの向き)のみが必須の条件。
今度はrayを受けたオブジェクトに反応をさせたいので、受け手の方にOnCollisionEnterをつけるも反応しなかった。
なのでraycastの方で接触対象の情報を操作していく。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GetInfo : MonoBehaviour
{
Ray ray;
RaycastHit hit;
GameObject ForcusObj;
Color firstcolor;
bool flag;
void Update()
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RayTry();
}
private void RayTry()
{
if (Physics.Raycast(ray, out hit, 10.0f))
{
ForcusObj = hit.collider.gameObject;
if (flag)
{
firstcolor = hit.collider.gameObject.GetComponent<Renderer>().material.color;
flag = false;
}
Debug.Log(hit.collider.gameObject.transform.position);
Debug.Log(hit.collider.gameObject.name);
hit.collider.gameObject.GetComponent<Renderer>().material.color = Color.magenta;
//Debug.DrawRay(ray.origin, ray.direction * 10, Color.green, 15, false)
}
else
{
RayFinish();
}
}
private void RayFinish()
{
if (ForcusObj != null)
{
ForcusObj.GetComponent<Renderer>().material.color = firstcolor;
flag = true;
Debug.Log("a");
}
}
}
マゼンダへの色変更はできたが対象からレイが外れた時に、元の色ではなく黒になったので要確認。