2012-11-04 7 views
0

나는 시험 프로젝트를 진행 중입니다! 암호를 보호하기위한 몇 가지 기술을 찾고 있는데 longblob 필드가 mysql 데이터베이스에 있습니다. 이 필드는 질문지를 저장하는 데 사용됩니다. 누군가가 내 데이터베이스를 해킹하더라도 특별한 패스 키/암호가 없으면 필드에 액세스 할 수 없도록 만들려고합니다.비밀번호로 테이블 #mysql의 필드를 보호하십시오.

+0

따라서 기밀성 (예 : longblobs 암호화)을 적용하려고하지만 가용성 및 무결성 (예 : 누군가가 DB에 액세스 할 수 있다고 가정)? 응용 프로그램과 데이터베이스 간의 통신 링크를 먼저 시행 할 때까지이 작업을 수행 할 필요가 없습니다. 그것은 텐트 창에 감옥 막대를 넣는 것과 같습니다;) –

답변

0

AES 또는 DES 암호화/해독을 사용할 수 있습니다. DES는 바이너리로 컴파일 할 몇 가지 SSL을 요구하는 응용 프로그램 코드에서

encryption functions

주 키를 보관하십시오.

+0

필드에 액세스 할 때마다 임의의 다른 키를 사용하고 싶습니다. 가능한가? –

+0

그것은 어디에 저장하겠습니까? 암호화 된 필드에 가깝게 저장하면 모든 사람이 키를 준 것처럼 해독 할 수 있습니다. 자물쇠 옆에있는 (무작위) 키를 매달아 놓는 것과 같습니다. –

+0

네 포인트가있어! 하지만이 방법을 구현하는 방법은 여전히 ​​매우 혼란 스럽습니다. 여기 구현에 관한 몇 가지 링크를 공유한다면 정말 gr8 일 것입니다. –

1

'암호 보호'라는 개념은 실제로 암호화 키가있는 '암호화'입니다.

아마 당신의 mysql 데이터베이스는 이미 보호되어 있고, 서버와 데이터베이스 로그온 자체가 모두 암호로 보호되어있을 것입니다. 그러나 추가 보안을 제공하기 위해 암호화 된 필드를 저장할 수 있습니다.

MySQL DB는 서버에 있습니까? 아니면 액세스 할 때와 동일한 컴퓨터에 있습니까? 후자의 경우 동일한 컴퓨터에 암호화 키를 저장하는 것을 포함하지 않는 방식으로 암호화해야합니다 (마치 컴퓨터에 침입 한 것처럼 암호화 키를 찾을 수 있음). 자세한 내용은 How to encrypt a specific column in a MySQL table?을 참조하십시오. 데이터베이스 서버에 '키'를 저장하지 마십시오. 별도의 응용 프로그램 서버 또는 용지에 저장하십시오.

+0

실제로 내 DB는 내 응용 프로그램을 호스팅 할 서버와 동일한 서버에 있습니다. 단순히 테이블에 대한 액세스를 제한하기 위해 패스 키를 사용하여 테이블을 잠글 수있는 방법이 없습니까? –

+0

원래 질문에서 물어 본 것과 정확히 일치하지는 않습니다. - Table! = Field. 물론 테이블에 대한 액세스를 제한하는 방법 (특정 사용자에 대한 액세스 제한 - http://dev.mysql.com/doc/refman/5.0/en/security.html)이 있습니다. 그러나, 당신은 누군가 당신의 데이터베이스를 해킹하는 것을 상상하고 있습니다. 그렇다면 권한있는 계정 (MYSQL에서 보안 결함이있는 경우 관리자 계정)을 사용하게 될 것 같습니다. 따라서 다른 곳에 저장된 AES 암호화 키로 필드를 암호화하는 것이 더 좋습니다. – Joe

+0

네, 실제로 둘 중 하나가 나를 위해 작동합니다 (테이블 또는 필드 잠금). 이런 종류의 문제에 대해 AES 사용 방법에 대한 링크를 공유 할 수 있습니까? –