2013-07-18 3 views
4

서버에서 데이터를주고받는 앱을 만드는 중입니다. 충분히 간단합니다. 끊어진 연결이 발생할 경우 연결이 끊어 질 때까지 데이터 저장 기능을 프로그래밍하기 시작했습니다. 이 데이터는 SQLite 데이터베이스에 로컬로 저장됩니다.암호화 수수께끼

데이터 (테이블이 아님)가 암호화되고 개별 사용자 salt/IV 서버 측을 저장합니다.

여기 내 문제의 핵심이 있습니다. 사용자가 연결성이 없으면 내 서버에 연결하여 소금/IV를 검색 할 수 없으며 장치에 개별 키를 저장하면 다른 사람이 엿볼 수있을 정도로 간단합니다!

데이터 보안을 위해 사용할 수있는 일반적인 방법이 있습니까? 나는 인터넷에 연결하지 않고 안전하게 데이터를 저장할 수있는 방법이 없다는 것을 믿기 어렵다. 그러나 다시, 나는이 전체 서버 통신 사업에 비교적 새로운 것이다.

+1

가능한 [Android의 SQLite 및 SharedPreferences 파일의 보안 수준] (http://stackoverflow.com/questions/3608883/how-secure-are-sqlite-and-sharedpreferences-files-on-android) –

+0

그 '얼마나 안전한'링크가 도움이 되겠지만 중복되지는 않습니다. –

+0

첫 번째 로컬 암호화가 수행 된 방법을 알고 서버에 데이터를 두 번 암호화 하시겠습니까? 첫 번째 암호화에는 소금이 들어 있지 않습니다. –

답변

1

악마의 옹호자를 노리는 것 : 서버가 해킹 당하지 않았으며 침입자로부터 개인 키/소금/IV를 배달한다고 누가 말할 수 있습니까? 예를 들어 손상된 액세스 포인트를 통해 또는 호스트 이름을 서버를 대체하는 다른 IP 주소로 리디렉션하는 일부 안드로이드 멀웨어를 통해이 작업을 수행 할 수 있습니다.

이러한 잠재적 인 문제에 대해 걱정할 필요가 없습니다. 귀하는 사용자 기기의 무결성을 유지할 책임이 없습니다. 내가 너라면 내부/비공개 앱 저장소에 사용자 기기의 암호화 키/자격 증명을 저장합니다.

사용자가 뿌리가 있거나 손상된 시스템을 가지고 있다면 책임을지지 않으며 사용자는 걱정할 필요가 없습니다.

특히 앱이 공격자가 연구, 주소 지정 및 악용 할 가치가 있는지 여부를 묻는 것이 좋습니다.

+0

앱이 돈과 약간의 민감한 정보를 다룰 것이므로 정보가 서버에 전송되기 전에 정보를 수정하고 싶은 사람을 확실히 볼 수 있습니다. 나는 정확하게 자세하게 설명 할 수는 없지만 심각한 문제를 일으킬 것이라고 말하면서 나를 믿는다. 나는 당신이 한마디 보안을 말해야한다고 생각한 적이 결코 없었습니다. 그리고 당신 말이 맞습니다. 사용자가 자신의 장치를 안전하게 유지하는 것은 내 책임이 아닙니다. 대답 해줘서 고마워, 친구. – Matal