2009-07-25 3 views
0

이번 여름 프로젝트는 멀티 플레이어 온라인 플래시 게임을 만드는 것입니다. Actionscript에서 보안 로그인 시스템을 구현 한 적도 없기 때문에 조언을 사용할 수 있습니다.일반 비밀번호 보안 & 구현 Actionscript 3

내 설정은 계정 정보와 관련하여 MySQL 데이터베이스와 통신하는 Java 서버로 /로부터 게임 데이터를 송수신하는 .swf입니다.

1) 일반적으로 어떻게 진행해야합니까? 내 .swf가 암호를 암호화하여 보내야한다고 생각했습니다. (내 서버에서 암호를 다시 암호화 했습니까?) 그런 다음 데이터베이스에 저장하십시오.

2) Java에서 암호화에 대한 많은 가이드를 찾을 수있을 것이라고 확신합니다. 누구나 Actionscript 라이브러리 또는 심지어 그냥 일반 암호화 알고리즘을 추천 할 수 있습니까? (그래서 내가 동등한 검색을 할 수 있습니다.)이 작업에 적합합니까?

내 게임도 XMLSocket을 통해 통신하고 있습니다. 이 문제로 인해 보안 문제가 발생하지는 않을 것이라고 생각하지만 잘못되었다고 알려주세요.

답변

1

일반적으로 비밀번호를 전송하는 방법을 제외하고는 실제로는 전혀 전송하지 않는 것이 안전하지 않은 것으로 간주됩니다. 대신 해시 된 암호와 같은 다른 형식의 암호를 보내 주겠지 만 무지개 표 등 여전히 무의미한 표가 있습니다.

따라서 가장 좋은 방법은 암호를 nonce (숫자 한 번만 사용됨) 즉, 임의의 문자열과 타임 스탬프를 사용하고이를 대신 보냅니다. 그런 다음 해시 된 문자열, nonce 및 timestamp를 xml 형식으로 db 서버에 보내면 사용자가 저장 한 암호를 사용하여 해시 된 암호를 다시 시도 할 수 있습니다.

이것은 W3C usernameToken 사양이하는 방식입니다. 참조 - http://docs.oasis-open.org/wss/v1.1/wss-v1.1-spec-os-UsernameTokenProfile.pdf

<UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-utility-1.0.xsd"> 
    <Username>jon</wsse:Username> 
    <Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">9JSGeXj+zpvEp42I20K/1bg8rCE=</Password> 
    <Nonce>TaF3g5F37wSHtSdY</Nonce> 
    <Created>2009-07-25T10:29:34Z</:Created> 
</UsernameToken> 

그러나 이것은 원하지 않는 복잡성을 초래할 수 있습니다.

암호를 해시 한 다음 서버로 보내면 암호 버전을 해시 한 다음 사용자의 부재와 일치하는 경우 암호를 해시 할 수 있습니다. 하루가 끝나면 디 컴파일 할 수 있고 어쨌든 원래의 로그인을 뛰어 넘을 수 있기 때문에 실제 .swf 파일의 안전성을 자문해야합니다. 그러나 대부분의 경우이 충분할 것입니다.

해시 팅에 나는 보통 as3crypto (code.google.com/p/as3crypto/)를 사용합니다.하지만 abode 유틸리티 패키지에는 md5 및 sha-1 구현이 있습니다.

xml 소켓의 경우 액션 스크립트 앱에서 해당 도메인과 대화 할 수있는 사이트 간 정책 파일이 있고 플래시와 대화 할 수있는 도메인에있는 사이트 정책 파일이있는 한 괜찮습니다. . 그렇지 않으면 보안 오류가 발생할 수 있습니다.

희망이 도움이됩니다.

jon

+0

이러한 방법 중 하나를 구현하려면 암호를 일반 텍스트로 저장해야합니까? – MADgood

+0

전혀 사용하지 않으면 db 해시에 비밀번호를 저장하고 위의 방법 (예 : nonce + timestamp)을 사용하여 다시 해싱하기 전에 게임에서 비밀번호를 해시 할 수 있습니다. 동일한 서버 측에서 동일한 결과를 생성합니다. – Jon

+0

참고 : 위의 XML 예제는 해시되었지만 base64 형식이므로 암호화되지 않았으므로 그 내용을 분명히 알 수 있다고 생각했습니다. – Jon

0

Here은 md5에서 ActionScript로 암호화하는 링크입니다 (가장 많이 사용되는 암호화 algorythm이므로). 서버에서 암호화해서는 안되지만 데이터베이스에 보안 연결을 사용하고 메시지에서 암호화 된 내용과 데이터베이스의 암호화 된 암호를 비교해야합니다.