2009-04-09 2 views
0

이것이 가능한지 확실하지 않지만 통제되지 않은 클라이언트에서 엔드 투 엔드 런타임 데이터를 보호하는 것이 가능합니까?신뢰할 수없는 클라이언트에서 Java 런타임 데이터 보안

특히 Java에서 암호화 된 데이터를 가져와 처리하고 암호화 된 데이터를 다시 전송하는 기능이 있습니까? 클라이언트에 대한 완벽한 액세스 권한을 가진 호기심 많은 제 3 자에게 일반 텍스트로 데이터를 노출시키지 않으시겠습니까?

또한 코드 난독 화는 단지 디 컴파일러가있는 전용 개인에게 짜증이 나서, 공격 당사자가 전체 소스/운영 지식을 갖고 있다고 가정합니다.

저는 답변에 어느 쪽이든 관심이 있습니다. 기존 기능이 없다면 자바 아키텍처를 고려할 때 실현 가능할 것인가? Java가 그것을 할 수 없다면, 다른 언어/플랫폼이있을 수 있습니까? 나는 이것이 특별한 하드웨어가 필요할지도 모른다고 두려워하고있다.

+0

구현 세부 정보에 초점을 맞추기보다는 달성하려는 내용을 설명하는 것이 좋습니다. –

+0

기본적으로 DRM을 구현하고 싶습니다! –

+0

그 단어가 더러운만큼, 본질적으로 그것이 내가 원하는 것입니다.그러나 목표는 판매 가능한 콘텐츠 배포를 제어하는 ​​것이 아니라 안전한 클라우드 컴퓨팅 기능을 사용하는 것입니다. –

답변

1

당신이 말하는 것을 할 수있는 기회를 얻으려면 특별한 하드웨어가 필요합니다. 안전하지 않은 계층의 "맨 위에"보안 계층을 가질 수 없습니다. 예를 들어, 공격자가 하드웨어를 완전히 제어 할 수 있다면 공격자는 항상 해당 호스트에서 실행중인 OS를 손상시킬 수 있습니다.

특수 하드웨어를 "신뢰할 수있는 플랫폼 모듈"또는 TPM이라고합니다. 이 기능은 원격 인증을 지원하므로 클라이언트가 변경되지 않았 음을 확인할 수 있습니다. TPM의 일부는 많은 컴퓨터에서 사용할 수 있습니다 (예 : Dell 노트북). 사실 미국 연방 정부가 구입 한 모든 컴퓨터에는 TPM이 있어야한다고 생각합니다. 그러나 대부분의 소비자는 TPM을 활성화하지 않으며 프라이버시 옹호자들로부터 TPM에 대한 적대감이 많습니다. 또한 TPM이있는 시스템에 원격 인증 기능이 얼마나 많은지 잘 모르겠습니다.

어쨋든, 결론은 누군가에게 비밀을 줄 수 없다는 것, 그리고 비밀에 대한 열쇠는 비밀로 유지 될 것이라는 것입니다. 전체 스택을 위에서 아래로 제어해야합니다. 신뢰할 수있는 Treacherous Computing에서는 문제의 하드웨어를 합법적으로 소유하고 있지 않더라도 그렇게 할 수 있습니다.

+0

그게 내가 필요로하는 느낌 이었어. http://trustedjava.sourceforge.net/에서 Java 용 TPM 프로젝트를 찾았지만 여전히 "실험"R & D 단계에 있습니다. –

+0

속보 - 널리 알려진 인피니언 TPM 칩에 누군가가 침입 한 것으로 알려졌다. - http://www.theregister.co.uk/2010/02/17/infineon_tpm_crack/ 분명히하기는 쉽지 않지만 TPM은 은 총알이 아니야. –

1

클라이언트가 잠겨 있지 않은 경우 기본적으로 완전히 보안 될 수 없습니다. 어떤 시점에서 바이트는 메모리에 존재할 것이며 그 메모리는 적대적인 응용 프로그램에 의해 읽혀질 수 있습니다.

당신의 목표가 완전히 안전 해지는 것은 아니지만 우스꽝스러운 일이라면 불편할 것입니다. 그렇다면 데이터를 임시 파일이나 다른 곳에서는 검토하지 않는 것이 좋습니다.

1

"할 수 없다"뿐 아니라 "쉽게 공격 할 수 있습니다".

'aspect-oriented programming'과 바이트 컴파일러 클래스를보십시오. 이것은 보통 데이터베이스 트랜잭션 삽입, 퍼포먼스 로깅, 로깅 구문 (소스 코드에서 호출을 드롭하여 훨씬 더 깔끔하게 만들 수 있도록), 액세스 제어 (구현과 권한 부여를 분리) 등의 작업에 사용됩니다. 한 클래스를 다른 클래스로 조용히 감쌀 수 있다면 많은 유용한 것들을 할 수 있습니다.

그러나 이것은 또한 응용 프로그램, 암호화 키 등에서 암호화되지 않은 모든 메시지를 캡처하기 위해 클래스를 래핑하는 것이 쉽다는 것을 의미합니다. 단 한 번의 긴 절차로 모든 것을 수행하더라도 문제가 될 수 있습니다. 조금 더 노력하십시오.

관련 문제