보안 관련 자료 보다가 흥미가 있는 자료들 메모함.
게임을 만들고 출시를 하기 위해선 내 게임을 해킹하지 못하게 보안은 필수 인거 같다.
될 수 있으면 클라이언트는 연출만 하고,
서버 없이 만들 었다면 보안을 꼭 해서 출시해야 됨.
- 보안
* 유니티를 사용해서 얻은 다양한 플랫폼은 보안에 관해서는 취약점이 됨.
* AVM : 안드로이드 가상 머신
: 드라이버를 확인해서 걸러버리자.
- 가상 안드로이드일 경우 CD롬이 있을수 있음.
* 난독화
: 난독화는 해석을 어렵게 할 뿐 불가능하지 않음.
: Crypto Obfuscator Tool사용
* dll 해석을 불가능하게 하자
: Anti-decompile
: Il2CPP를 이용하면 바로 해당 바이너리 코드로 생성되기 때문에 dll이 생성되지 않음.
- 출시할 때 무조건 적용해야함.
* 암호화
: 암호화는 키가 핵심이다.
: Algorithm : AES
: CipherMode : CBC
: Padding : PKCS7
: Hash : SHA3 or SHA-256, md5
: Encoding : Base64
: 스크립트 암호화
* 프로세스 어태치를 이해하고 방어하자
: 리눅스의 os는 프로세스 어태치를 해논 상태인 프로세스는 다른녀석이 어태치할 수 없다. 때문에 프로세스 어태치를 막기위해서 내가 먼저 선점하면 된다.
* 메모리 보호
: 1. Key를 클라이언트에 넣치 않고 서버에서 관리하며 https 통신을 이용해 가저온다.
: 2. 모든가 동일한 키를 사용할 필요가 없다. 사용자마다 다른 키를 사용한다.
: 3. SHA256 mySHA256 또는 MD5 md5Hash를 이용해 Hash한 결과값을 사용한다.
: 4. Aes를 이용해 암호화 한다.
: 5. 올려놓은 데이터 값을 삭제한다.
: 6. 혹시라도 에티딩이 됐을대를 대비해 한번더 검사한다.
: Key 서버 구축
: App Seoaling을 사용한다?
* NDC 자료
: 신승민 : 링크
: 홍진선 : 링크
'Programming > Blah Blah' 카테고리의 다른 글
워크 맵핵 만들기 (26) | 2017.12.25 |
---|---|
재귀 함수 장단점 (0) | 2017.12.22 |
연결 프로그램 오류(연결 프로그램 등록이 안될 때) (1) | 2017.12.19 |
멀티 게임 연결방식 선정 (0) | 2017.12.12 |
git 터미널 명령어 (0) | 2017.09.12 |
VisualSVN Server + TortoiseSVN (0) | 2017.01.22 |
UML(Unified Modeling Language) (0) | 2017.01.11 |
자율적 캐릭터 만들어보기 (0) | 2016.10.13 |