자격 증명을 사용하기 위해 할 수있는 모든 것은 공격자도 할 수 있습니다.
난독 화가 실제로 당신을 사는 것은 무엇입니까? 시간. 직접 사용하는 계획과 마찬가지로 데이터는 결국 거기에 있습니다. 누군가가 당신의 계획이 무엇인지 알아내는 것은 시간 문제 일뿐입니다. 이것은 모두 편집증 수준과 당신이 편한 위험 수준에 대한 평가에 달려 있습니다. 특히, 자격 증명을 저장하는 방법은 데이터베이스를 실행하는 기계에 액세스 할 수있는 사람에 따라야합니다.
결국 고무는 길을 쳤다. 그래서 가서 정복하십시오. 난독 화를 완전히 노크하지 마십시오. 똑똑한 관행과 결합하십시오.
접근과 제안
기계에서 사용할 각 계정에 대한 응용당 API 키 생성
타사 계정에서 API 키를 생성 할 수 있다면 모든 잠재적 응용 프로그램을 종료하지 않고 계정에 대한 액세스를 취소 할 수 있습니다. 많은 서비스에는 이러한 유형의 API 키 (Google, Twitter, StackexChange, Facebook 등)가 있습니다.
단순히 "응용 프로그램"을 설정 한 다음 소비자 키와 비밀뿐만 아니라 액세스 토큰 및 액세스 비밀을 사용하십시오. 기계는 이러한 자격 증명을 저장하면됩니다. 타협이 발생하면 그 키 세트를 취소해야합니다. 또한이를 통해 계정 당 권한을 지정할 수 있습니다.
자격 증명 세트에 사용자 당 비밀번호 사용
사용자가 로그인하면 비밀번호 세트를 잠금 해제합니까? 이렇게하려면 적절한 해싱 체계와 키보다 몇 가지 해싱 단계가 발생하는 검증 검사를 기반으로 키를 생성합니다.
어쨌든 디스크에서 암호화하십시오
항상 하나의 키로 자격 증명을 암호화 할 수 있습니다. 그런 다음 다른 모든 비밀을 보호하는 하나의 키만 보호 할 수 있습니다. 그런 다음 다른 자격 증명에 액세스하기 전에 해독해야합니다.
시스템의 키링에 비밀을 보관하십시오
Linux에서 사용하십시오 그놈-비어 링. 그런 다음 간단한 만들기 읽기 업데이트-날짜 호출을 만들어 비밀번호 데이터베이스로 취급 할 수 있습니다. 그놈 키링은 PKCS#11 표준을 기반으로합니다.
그만큼 그놈-비어 링에는 API가 있습니다 키링 및 검색 품목에 저장하기 위해.
/* A callback called when the operation completes */
static void
found_password (GnomeKeyringResult res, const gchar* password, gpointer user_data)
{
/* user_data will be the same as was passed to gnome_keyring_find_password() */
// ... do something with the password ...
/* Once this function returns |password| will be freed */
}
static void
find_my_password()
{
gnome_keyring_find_password (GNOME_KEYRING_NETWORK_PASSWORD, /* The password type */
found_password, /* callback */
NULL, NULL, /* User data for callback, and destroy notify */
"user", "me",
"server", "gnome.org",
NULL);
}
Windows 7+에서 "EFS (Encrypted File System)"기능을 사용하십시오. 모든 파일은 인증서로 암호화되어 있으며 Windows 비밀번호로 보호됩니다.
그래도 이것이 당신을 잘못된 보안 감각으로 몰아 넣지 마십시오. 이것이 실행중인 서버 인 경우 누군가가 상자에 네트워크 액세스를 받으면 키링 데이터 자체에도 액세스 할 수 있습니다.
액세스 권한을 부여하는 원격 기계를 설정하십시오
공개 및 개인 키 쌍을 사용하여 자격 증명 또는 잠금 해제 키에 대한 액세스 권한을 부여하는 기계를 설정할 수 있습니까?
해싱에
사용자 이름과 비밀번호를 해시하면 다시 얻지 못합니다. 해시는 단방향 기능으로 설계되었습니다.
당신은 할 수 있습니다 인코딩 그래도 난처한 데이터는 있지만 권장하지는 않습니다.