9

사용자가 기본 Forms 인증 방법을 기반으로 로그인하면 서버는 암호화 키를 머신 키를 사용하여 암호화 된 데이터를 포함하는 쿠키를 생성합니다.폼 인증 티켓이 안전합니까?

누군가가 서버의 컴퓨터 키를 찾거나 추측하거나 액세스 한 경우 웹 응용 프로그램에 로그인하게됩니다.

4 개의 서버에있는 일부 응용 프로그램을 개발했습니다. 따라서 machine.config의 모든 서버에 대해 동일한 컴퓨터 키를 하드 코딩 했으므로 자동 생성 모드를 사용할 수 없습니다.

  1. 기계 키를 무차별 적으로 적용 할 수 있습니까?
  2. 다른 방법이 있습니까? (저는 Windows와 Passport를 사용하고 싶지 않습니다)
  3. 폼 인증 티켓은 충분히 안전합니까? (즉, e- 뱅킹 애플리케이션에 수용 가능)
+0

왜 기계 키를 서버가 다운 가져온 것을 요구, 브 루트 포스 것이 가장 :-) – reach4thelasers

답변

18

ASP.NET 폼 인증 티켓은 Rijndael 알고리즘을 사용하여 암호화됩니다. Rijndael은 무제한 방식으로 데이터를 암호화하고 무차별 공격에 취약한 DES (Data Encryption Standard)를 대신하여 제작되었습니다. http://en.wikipedia.org/wiki/DES_Challenges

대조적으로 Rijndael (고급 암호화 표준 AES라고도 함)은 더 긴 키 - 256 비트를 사용하여 RSA Security가 90 년대 말에 DES를 크랙하여 DES에 균열을 내도록 요청했습니다. 및 이중 암호화 알고리즘. 256 비트 Rijndael 키 (예 : ASP.NET 컴퓨터 키)를 크랙하려면 2^200 작업 (약 10^60 - 10 0 = 60)이 필요합니다. 그 사실을 ASP.NET 티켓이 정기적으로 변경된다는 사실과 결합하면 기본적으로 해독 된 문자와 숫자의 임의의 문자열 (암호가 해독 된 바가 정확한지 아닌지를 판단하기가 불가능 함)처럼 보이면 안심할 수 있습니다. 언제든지 양식 인증 쿠키를 해독 할 것입니다. 여기 Rijndael을하고 가능한 공격에 대한

상세 정보 :

http://en.wikipedia.org/wiki/Advanced_Encryption_Standard#Known_attacks

1

첫 번째 암호화 규칙은 메시지가 키만큼 안전하다는 것입니다. 누군가 당신의 열쇠에 접근 할 수있는 방법이 충분하지 않습니다.

  1. 적절한 시간 내에 기계 키를 무차별 적으로 조작 할 수 있습니다.
  2. 나는 Fomrs 인증이 ASP.NET에서 제공되는 유일한 진정한 웹 솔루션이라고 믿습니다. 당신은 당신 자신의 것을 구현할 수 있지만 그것이 더 안전 할 것이라는 점은 의심 스럽다.
  3. 무엇이 안전할까요? 보안되지 않은 연결의 중간에있는 사람이 도용 할 수 있으며 이벤트 유효성 검사 (Web Forms에서)를 해제하거나 보안 토큰 (MVC)을 사용하지 않으면 XSRF 공격에 취약합니다. 그렇지 않으면 모든 기술에서 항상 발견되고 수정되는 악용에 대해 안전합니다.
+0

도움이 답을 표시하기 위해 기억 하는가? 무차별 공격은 기본적으로 가능한 모든 조합을 검사하여 컴퓨터 키를 추측합니다. – reach4thelasers

+0

쿠키를 서버로 보내야한다고 생각합니까? 안 그래요? 어쨌든 기계 키는 실제로 길어서 쉽게 강제로 강제 될 수 없습니다. – Stilgar

+0

Rijndael은 알고리즘 일 뿐이며 모든 컴퓨터에서 실행할 수 있습니다.기계 키에 대한 가능한 모든 조합을 점검하여 기계 키를 추측 할 수 있으면 모든 컴퓨터에서 티켓을 크랙 할 수 있습니다. 서버는 이미 기계 키를 알고 있으므로 티켓을 다시 보낼 때 추측 할 필요가 없습니다. – reach4thelasers