2011-07-27 6 views
4

텍스트 파일을 암호 해독 한 프로그램에서 OpenSSL을 사용하고 프로그램을 시작할 때마다 새 텍스트와 새로운 암호화 키로 다시 암호화합니다. 나는 안전하게 실행중인 프로그램의 인스턴스 사이에 키를 저장하고 싶습니다. 이 작업을 쉽고 안전하게 수행 할 수있는 방법이 있습니까?안전하게 AES 키 저장

+0

두 개의 개별 실행 사이에 키를 저장하거나 여러 실행중인 인스턴스간에 키를 공유하려면 OpenSSL을 TPM을 사용하도록 구성 할 수 있습니까? –

+0

두 번의 개별 실행 사이. – HighLife

+0

외부 하드웨어 없이도 해결할 수있는 매우 어려운 문제입니다. 많은 노력이 필요합니다. –

답변

3

응용 프로그램이 설치되어있는 컴퓨터에서 하드 코어 공격을 예상하지 않는 경우, 당신은 당신의 응용 프로그램 내부에 항상 하드 코드 당신이 순서대로 사용하는 것이 다른 암호화 키를 안전하게에서 이전 세션 AES 키를 저장할 수 있습니다 앱을 닫고 앱을 시작할 때 파일 시스템을 검색하기 전에 파일 시스템을

  • 당신이 하나의 문자열로 harcoded 키를 저장하지 않는 대신 여러 문자열에서 당신은 함수

  • 파일을 저장할에 연결하여 그 다음의 경우 당신은 조금에게 보안을 향상시킬 수 격리 저장소 또는 응용 프로그램 폴더 대신 Windows/Temp와 같은 상대적으로 "알 수없는"/ 인기없는 위치에

  • 당신은 비대칭 키 알고리즘을 사용합니다 (이 경우 크래킹이 더 어려워집니다.)

  • 당신은 대상 호스트가 TPM 칩이있는 경우뿐만 아니라 키

+2

이것은 회사에서 일하는 회사 (대형 은행)가 응용 프로그램별로 발행 된 키 암호화 키로 인한 난해한 암호화를 수행하는 방법입니다. 난독 화 된 바이트 코드를 리버스 엔지니어링하는 것만 큼 쉬운 일은 아닙니다. 이제 HSM과 함께 PKI를 사용하여 키를 저장하도록 권장합니다. –

+1

모호성을 통한 보안은 보안이 아닙니다. 공격자가 키를 제외한 모든 항목에 액세스 할 수 있다고 가정해야합니다. –

+0

@JulieinAustin은 원칙적으로 합의했다. 애매함에만 의존하지 마십시오. 그러나 무언가를 너무 소중하게 보호하지 않으면 무명이 많이 도움이됩니다. 공격자는 끊임없이 겁을 먹을 것입니다. 또한, "잘못된 지시": 침입자가 보안 위협에 대해 많은 시간을 낭비하도록 오도 할 수 있다면 침입자를 방해 할 수 있습니다. 이것은 "귀중품이 들어있는 거실의 그림 뒤에 숨어있는 거대한 금고이지만 중요한 재무 문서는 아닙니다." – ToolmakerSteve

1

프로그램이 안전한 지역에없는 경우에는 간단한 방법이 없습니다 (바이너리 코드는 포함됩니다 아무 키나하거나 정의하는 어떤 알고리즘을 찾기 위해 검사 할 수있는 경우) :

  • 당신은 수를 프로그래밍 방식으로 키를 난독 처리하고 파일에 저장하지만,이 경우 난독 화 알고리즘을 깨면 키를 찾을 수 있습니다. 그래서 이것은 암호화 알고리즘의 강도를 줄입니다. 갈 좋은 방법이 아닙니다.

  • 또한 프로그램에 포함 된 정적 키 (B라고 함)를 사용하여 키 (여기서는 A라고 함)를 암호화 할 수도 있지만이 경우 매번 키 A를 변경하지 않아도됩니다. 이것은 프로그램에 내장 된 키 B를 찾는 것이 디스크에 저장된 암호화 된 키 A를 찾는 데 충분하기 때문입니다. 이것은 만족스럽지도 않을 것이다.

더 복잡한 솔루션을 고려할 때는 좀 더 많은 상황 (공격의 출처, 파일의 수명주기 등)을 알아야합니다. 그러나 멀리 가기 전에 ... 그렇게 멀리 갈 필요가 있습니까? 이것이 의미하는 바는 : 당신의 프로그램이 크래킹 시도의 위험에 처해 있는가? 그리고 그것이 비난 받아야 하는가, 비판적 일까? 균열이 없거나 중요하지 않은 경우 위의 두 번째 옵션만으로 충분합니다.

1

, 당신이 그것을 활용할 수있는 파일에 다른 물건 (가짜)를 넣습니다.

관련 문제