문제

어제 내가 질문 는 Guid 를 생성되는 윈도우에서 2003 안전 사용으로 세션 Id? 그리고 대답과 결합과 함께 이 문서 Guid 은 전 세계적으로 독특한하지만,하위 문자열의 Guid 지 메시지가 나를 생각하는 교체에 대한 현재의 메커니즘을 사용하여 Guid 으로 세션 ID 에서 쿠키가 있습니다.

기 때문에 그것은 작품의 비트를 변경했는 빠른 GUID 테스트에 나 Vista PC 확인하려면 시퀀스의 Guid 를 분명하게 결정(무엇을 어떻게 될지 걱정입니다면 공격을 얻을 수 있었 시퀀스의 Guid 를 생성한 내 서버에 그들이 할 수있을 것을 생성하는 새로운 일치하는 사람).

에서 레이몬드 첸의 문서(참조하는 이 아주 오래된 사양 Uuid 및 Guid 에서 1998)GUID 의:

  • 60 의 비트 타임스탬프,
  • 48 의 비트 컴퓨터는 식별자
  • 14 비트의 uniquifier 고
  • 여섯 비트 고정

가는 경우가 생성 10Guid15ASCII 문자(제외한'-')는 타임 스탬프,다음 12ASCII 문자는 컴퓨터는 식별자를,다음 3.5ASCII 문자는 임의의 마지막 1.5 문자는 고정되어 있습니다.

을 받고 10Guid 내 비스타에 PC 를 사용하여.Net 시스템이다.입니다.NewGuid()수익률:

b4e95ead-3619-4dc2-9102-cf7ab0efd927
a45ee719-decd-46b2-8355-7becbe406f74
9af68d75-35a0-4907-b6ab-f15e33acfe96
bed88fa3-3209-4a19-97dd-85d5428ea5f4
123cb39b-8d81-41c6-8894-f1257a8f7606
e2b1f6b1-5791-4a18-80a9-5dc668574ecb
c52aa660-2629-4659-bb83-5583081e5a1c
76eda32d-ceda-412e-8ade-30c47416e954
cbc4d45e-7281-40d2-9f90-00539b04fe98
be36524c-267c-4791-bc9e-3c20b29d7615

유일한 식별할 수 있는 패턴에 빠른 시각적인 검사는 13ASCII 문자는 항상 4.

저는 다시 남겼는지 궁금하는 경우에 의존하는 시스템입니다.Guid 를 생성하는 의사 무작위 세션 Id 은 강력한 보호하기 위해 충분한 웹 응용 프로그램 균열 세션 ID 가치가있을 것입에 가장 달러의 수천?

업데이트:를 사용하는 대신 GUID 나는 지금 계획을 생성하는 내 session ID 를 사용하는 방법은 아래.난로 변환하 384 비트 임의의 번호를 0x00 바이트 문자열을 그렇게 그것을 사용하기에 적합한 HTTP 쿠키입니다.

RNGCryptoServiceProvider rngProvider = new RNGCryptoServiceProvider();
byte[] myKey = new byte[48];
rngProvider.GetBytes(myKey);
string sessionID = null;
myKey.ToList().ForEach(b => sessionID += b.ToString("x2"));
Console.WriteLine(sessionID);
도움이 되었습니까?

해결책

그것은 완전한 대답하지만,나는 당신을 말할 수 있는 13hex 자리는 항상 4 기 때문에 그것을 나타내의 버전 알고리즘을 생성하는 데 사용되는 GUID(id est,v4);또한,나는 견적 Wikipedia:

암호 해독의 WinAPI GUID 발전기는,이후 시퀀스의 V4Guid 은 의사,임의 주어진 초기 상태의 수 까지 예측은 다음 250 000Guid 함수에 의해 반환되는 UuidCreate.이런 이유 Guid 를 사용할 수 없 암호화,예를들면,임의의 키를 사용합니다.

의 나머지에서 문서 참조: http://en.wikipedia.org/wiki/Guid

----편집

보안 측면에서 보면,나는 당신을 생성하 session ID 그러나 당신은 같은 느낌,그 암호화 등;는 방법 당신은 당신할 수 있는 팩에서 당신이 원하는 모든 정보를 한 다음 그리고 서명에 결국-가능한 문제가 되는 사이에 균형 크기의 키 및 결과의 크기는 쿠키입니다.Guid 를으로 유용한 Id 지만,나는 유일에 의존한 전용 암호화 기법에 대한 보안이다.

다른 팁

나는 당신이 사용 시스템입니다.보안입니다.Cryptography.RandomNumberGenerator.이를 생산하도록 설계 번호는 될 수 없습니 리버스 엔지니어링.Guid 의 동기를 부여하는 고유합니다.결합할 수 있습니다.GUID 고 안전한 임의의 숫자이지만,128 비트 보안 임의의 숫자를 충돌에습니다.

일부 사항:

  1. 거의 모든 구현 Guid 할 수 있도록 설계되었 cryptograhpically 안전합니다.(이 상상하는 것에 의해 부담 문서 링크된 다음 항목입니다.)
  2. 13ASCII 문자는 기표의 는 알고리즘은 무엇이었을 생성하는 데 사용되는 GUID.

만약 당신이 정말로 걱정 소프트웨어 및 하드웨어의 강력한 세션 Id,그는 아마도 암호화된 보안시할 무언가를 결정에서 기계는 최고의 접근 방식이다.아마 생성 중간 pad 에서 내부 문서 또는 데이터 소스는 심지어 작동합니다.

당신은 무엇을 하려고 할까?당신은 단지 소스의 임의의 번호?

체크아웃 random.orghotbits.많은,몇 년 전 나는 자바 라이브러리를 수집하는 것이 숫자는 이러한 소스에서,그리고 그들을 함께 가입하를 얻기 위해,매우 아름다운 임의의 시리즈(그러나 그는 두 사이트에 없 cahootz).

짧은 대답은 없 guid 의 없는 충분히 강하를 생성하는 세션 id 을 방지하려면 세션 id 추측하고 있습니다.

에 대한 동일한 이유는 당신이 사용하고 싶지 않 GUID 로 AES 키를 사용하고 싶지 않은 그들의 모든 유형에 대한 민감합니다.

GUID 매우 잘 작동한 것 그들은 수 있도록 설계되어 있습니다:를 수학적으로 보장해 고유 ID 를 반복하지 않습니다.

는 경우에도 균열 세션 ID 만 1000 달러의 가치가 상상하는 경우 그게 수행 100 시간.지금 당신은 말하고 심각한 블.

나는 그것의 쉬운 방법이 사용하 GUID 지만,저항과 거래를 통하여 복용한 적절한 예방조치를 적절히 안전한 응용 프로그램입니다.귀하의 사용자가 감사할 것이다.

그것은 거의 불가능하다 얻을 중복 guid 를 고려 possiblities 의 점을 기억해야 합니다.여기에는 일부 빠른 수학한 사실

곡물의 세계에서 모래 75,000,000,000,000,000,000

수 Guid340,282,366,920,938,463,463,374,607,431,770,000,000

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top