2012-01-29 3 views
2

얼마 전에 웹상에서 "루아 에이스"솔루션을 발견했습니다. 그리고 그 안전에 대해 약간의 걱정을하십시오. 암호를 암호화하는 동안 쉽게 볼 수 있기 때문에, 실제 암호화에 사용하지 마십시오 -루아 에이스 암호화

가 :

그것은 상태.

"파일 암호화 테스트"스크립트에서이를 말합니다.

내 질문은 :

왜, 그 방법은 문자열을 암호화하고 파일에 쓰기에서 어떤 차이가?

암호화하는 동안 어떻게 볼 수 있습니까? 암호화 후에도 볼 수 있습니까?

기본적으로 사용하는 것이 안전합니까?

누가 이것을 사용했는지 확인할 수있는 사람이 있습니까? 원본 개발자에게 메일을 보냈지 만 이메일 주소가 잘못되었습니다.

전혀 사용해야합니까?

답변

7

나는 이유 추천되었다 두 가지 이유가 있습니다 가정

  1. 문자열 루아에서 불변, 그래서이 생성 된 후에는 다른 데이터 로 문자열을 덮어 쓸 수있는 방법은 없습니다.
  2. 루아에서는 객체가 가비지 수집됩니다. 가비지 컬렉터는 프로그램에서 의 특정 지점에서만 실행되며 응용 프로그램은 더 이상 개체에 대한 참조가 없는데 가비지 수집기가 실행될시기를 알릴 방법이 없습니다. 당신이 볼 수 있듯이 char 배열 대신를 사용하여,

    Why is char[] preferred over String for passwords?

    : 그때까지, 암호 문자열은 포인트 1.

루아와 유사하다

참조 자바의 경우,에 의해 메모리에 유지됩니다 배열은 변경 가능하고 완료되면 0으로 다시 초기화 할 수 있기 때문에 문자열을 저장하는 더 좋은 방법입니다.

char 배열에 가장 가까운 루아는 숫자로 채워진 테이블입니다. 여기서 암호는 문자열이 아닌 테이블로 저장됩니다. 여기서 테이블의 각 요소는 각 문자의 정수 표현으로 구성됩니다. 예를 들어 "pass"{0x70,0x61,0x73,0x73}이됩니다. 암호가 들어있는 테이블이 암호화 또는 암호 해독에 사용 된 후에는 암호가 프로그램에 의해 도달 할 수 없기 전에 0으로 채워지고 결국에는 가비지 수집됩니다.


귀하의 의견에 따르면, 나는 오해했을 수 있습니다. 어쩌면 "파일 암호화 테스트"는 암호화 된 파일과 함께 일반 텍스트로 암호를 저장하여 파일에 액세스 할 수있는 사람, 심지어 공격자도 쉽게 해독 할 수있는 능력을 제공 할 수 있습니다. 그러나 위의 요점은 여전히 ​​적용됩니다. 그러나 이것은 여전히 ​​추측 일뿐입니다. 내가 언급 한 암호화 라이브러리에 대한 링크를 제공하지 않으면 무슨 뜻인지 정확히 알 수 없습니다.


은 내가 AES 라이브러리에서 모양과 암호가 "쉽게 볼 수있는"사용자 유형 명령 줄이나 단말기를 통해 일반 텍스트 암호, 순서를 시작하기 때문에 발생하는 것에 대해 우려를 촬영했습니다 프로그램의 출력에는 암호문 만 들어 있지만 루아 프로그램. 패스워드를 제공하는 좀 더 안전한 방법은 (sudo에서와 같이) 입력을 보이거나 (많은 웹 페이지에서와 같이) 도트 나 별으로 입력을 가리는 것이 아닙니다.

위의 설명은 논리적 인 설명 일뿐입니다.

+2

[_Data Lifetime은 시스템 문제입니다.] (http://xenon.stanford.edu/~talg/papers/SIGOPS04/abstract.html) 및 [_Great Shredding Your Garbage : 안전한 탈퇴를 통해 데이터 수명 단축 _ ] (http://www.usenix.org/event/sec05/tech/chow.html)는 문제에 대해 더 알고 싶어하는 사람들과 문제 해결 방법을 배우려는 사람들에게 흥미로울 수 있습니다. –

+0

경고 : LUA 구현이 측면 채널 보호 기능을 제공하지 않을 수도 있습니다. 예 : 다른 시스템에 대한 응답으로 AES 암호를 사용하면 키를 재구성하는 데 사용할 수있는 정보가 누출 될 수 있습니다 (그러나 대부분의 사용자는 무결성 보호 기능을 추가하는 것을 잊어 버리기 때문에 해당 인수는 음소거 될 수 있음). –

+0

예 그게 문제가 될 수 있습니다. 그러나 당신이 그것을 묘사하는 방식으로, 전체가 안전하지 않거나 안전하지 않습니다. "파일 암호화"를 인용 할 때만 인용했습니다. 또한 내가 사용하고자하는 암호화 솔루션이 무엇이든간에 문제가되지 않는다고 생각합니다. 그러나 어떻게 극복 할 수 있습니까? – user1058431

1

OpenSSL에 대한 바인딩이고 AES 표준을 사용하여 데이터를 암호화 할 수있는 LuaCrypto과 같은 다른 방법을 시도해 볼 수도 있습니다.

+0

이것은 AES를 수행하는 훨씬 더 테스트되고 유용한 방법 인 것으로 보입니다. 보안과 속도가 LUA 옵션보다 1000 배 더 우수합니다. –