Xác thực

**Xác thực** (,  = thật hoặc chính thống, bắt nguồn từ 'authentes' = tác giả/người tạo ra) là một hành động nhằm thiết lập hoặc chứng thực một cái gì đó (hoặc một người nào đó) đáng tin cậy. Có nghĩa là, những lời khai báo do người đó đưa ra hoặc về vật đó là sự thật. Xác thực một đối tượng còn có nghĩa là công nhận nguồn gốc (*provenance*) của đối tượng, trong khi, xác thực một người thường bao gồm việc thẩm tra nhận dạng của họ. Việc xác thực thường phụ thuộc vào một hoặc nhiều nhân tố xác thực (*authentication factors*) để minh chứng cụ thể.

Trong an ninh máy tính (*computer security*), xác thực là một quy trình nhằm cố gắng xác minh nhận dạng số (*digital identity*) của phần truyền gửi thông tin (*sender*) trong giao thông liên lạc chẳng hạn như một yêu cầu đăng nhập. Phần gửi cần phải xác thực có thể là một người dùng sử dụng một máy tính, bản thân một máy tính hoặc một chương trình ứng dụng máy tính (*computer program*). Ngược lại Sự tin cậy mù quáng (*blind credential*) hoàn toàn không thiết lập sự đòi hỏi nhận dạng, song chỉ thiết lập quyền hoặc địa vị hẹp hòi của người dùng hoặc của chương trình ứng dụng mà thôi.

Trong một mạng lưới tín nhiệm, việc "xác thực" là một cách để đảm bảo rằng người dùng chính là người mà họ nói họ là, và người dùng hiện đang thi hành những chức năng trong một hệ thống, trên thực tế, chính là người đã được ủy quyền để làm những việc đó.

Để phân biệt từ "xác thực" (*authentication*) với một từ gần gũi với nó, "sự ủy quyền" (hay sự cấp phép) (*authorization*), hai ký hiệu viết tắt thường được dùng để thay thế - **A1** tức sự xác thực (authentication) và **A2** tức sự ủy quyền (authorization).

Vấn đề trong việc ủy quyền thường được nhìn nhận là một vấn đề tương tự như vấn đề trong việc xác thực; Rất nhiều các giao thức an ninh tiêu chuẩn (*standard security protocols*),  các điều lệ bắt buộc, và ngay cả các quy chế cũng dựa trên cơ sở của giả định này. Tuy nhiên, sự sử dụng chính xác hơn của việc xác thực lại diễn tả nó như một quy trình dùng để xác minh sự nhận dạng của một người dùng, trong khi sự ủy quyền là một quy trình nhằm xác minh rằng một người dùng biết trước, có quyền lực để thao tác một quá trình hoạt động nào đó hay không. Sự xác thực do đó phải được tiến hành trước sự ủy quyền. Lấy ví dụ, khi chúng ta trình diện giấy chứng minh hợp thức của mình với một nhân viên thu ngân của nhà băng (*bank teller*), trước tiên, chúng ta được nhân viên thu ngân chứng thực và sau đó, chúng ta được ủy quyền để truy cập những thông tin về các tài khoản trong nhà băng của mình. Đương nhiên, chúng ta sẽ không được ủy quyền để truy cập các tài khoản mà chúng ta không sở hữu.

Do việc ủy quyền không thể được tiến hành mà không có sự xác thực đi kèm, thuật ngữ "sự ủy quyền" còn đôi khi được sử dụng với cái nghĩa là tổ hợp của cả hai, sự xác thực và sự ủy quyền.

Một ví dụ quen thuộc là ví dụ về quản lý truy cập. Một hệ thống máy tính đáng ra chỉ nên được sử dụng bởi những người được ủy quyền sử dụng mà thôi và nó phải nỗ lực phát hiện và loại trừ những người dùng không được ủy quyền. Việc truy cập  máy do đó thường được quản lý bằng cách đòi hỏi một thủ tục xác thực nhận dạng của  người dùng được tiến hành, với một mức độ đáng tin cậy nào đó, rồi sau đó mới ban cho người dùng những đặc quyền mà chúng ta có thể cấp cho chỉ danh của người dùng đó. Những ví dụ thông thường trong việc quản lý truy cập mà trong đó việc xác thực là một việc không tránh khỏi, gồm có:

*Rút tiền mặt từ một Máy rút tiền tự động (*Automated Teller Machine - ATM*).
*Quản lý một máy tính từ xa thông qua Internet.
*Sử dụng một hệ thống giao dịch ngân hàng trên mạng Internet (*Online/Internet banking*).

Tuy vậy, một điều cần phải để ý là đại bộ phận những bàn bạc trong đề tài này là lệch lạc vì những thuật ngữ được dùng ở đây không được chính xác cho lắm. Một phần của sự lộn xộn này có thể là do âm hưởng 'thi hành luật pháp' trong hầu hết các bàn luận. Đồng thời, cũng không có một máy tính, một chương trình ứng dụng máy tính hoặc một người dùng máy tính nào có thể 'xác thực được nhận dạng' (*confirm the identity*) của một người khác (*another party*). Trên bề mặt của một việc tưởng như là minh bạch, dễ hiểu, chúng ta thấy còn có nhiều vấn đề (*issues*) khúc mắc che giấu bên trong.

Chúng ta chỉ có thể áp dụng một hoặc nhiều thử nghiệm để kiểm tra. Nếu việc thử nghiệm không tìm ra những sai sót thì đối tượng bị thử nghiệm sẽ được coi như là có đủ quyền hạn để tiếp tục tiến hành, như đã quy định. Vấn đến là ở chỗ làm thế nào để xác định rằng những thử nghiệm nào là xứng đáng và rất nhiều quy trình dùng để xác định tính xứng đáng của các thử nghiệm cũng không được hoàn hảo. Rất nhiều trường hợp những trắc nghiệm này đã bị lừa đảo một cách thành công, làm cho trắc nghiệm trở nên vô hiệu. Bằng những thất bại của chúng, bản thân những trắc nghiệm này chỉ cho chúng ta thấy một cách chắc chắn tính bất tương xứng của chúng. Rất nhiều người vẫn tiếp tục coi các thử nghiệm, và cái quyết định coi việc thành công vượt qua những thử nghiệm, là những cái có thể chấp nhận được, rồi đổ lỗi những thất bại cho tính 'luộm thuộm' hoặc tình trạng 'kém cỏi' thuộc phần người nào đó. Nan đề là ở chỗ thử nghiệm đáng ra phải có hiệu quả khi được thi hành trên hiện trường chứ không phải trong môi trường lý tưởng, là những nơi không có sự luộm thuộm hoặc không bị ảnh hưởng bởi tính kém cỏi của người điều hành. Trong những trường hợp như vậy, chính thử nghiệm là cái thất bại, chứ không phải là những cái khác. Hãy xem xét một trường hợp phổ biến là trường hợp một lá thư điện tử phê chuẩn (*confirmation email*) đòi hỏi phải được hồi âm để khởi động một trương mục nào đó. Do việc lá thư hồi âm có thể dễ dàng được bố trí gửi đến từ một địa chỉ giả (*bogus*) hoặc một địa chỉ không thể phát hiện được (*untraceable*), phương pháp này là một phương pháp xác minh hoàn toàn không thể tin tưởng được (*least robust authentication possible*). Thành công trong việc vượt qua thử nghiệm này chẳng có ý nghĩa mấy, và đương nhiên, tính 'luộm thuộm' hoặc tình trạng 'kém cỏi' hầu như chẳng dính dấp một tí nào.

## Xác thực đa nhân tố

Những nhân tố xác thực (*authentication factors*) dành cho con người nói chung được phân loại theo ba trường hợp sau:
* Những cái mà người dùng **sở hữu bẩm sinh** (chẳng hạn, vết lăn tay hoặc mẫu hình võng mạc mắt, chuỗi DNA (có đủ loại định nghĩa về cái nào là cái thích hợp và đầy đủ), mẫu hình về giọng nói (cũng có vài định nghĩa ở đây nữa), sự xác minh chữ ký, tín hiệu sinh điện đặc hữu do cơ thể sống tạo sinh (*unique bio-electric signals*), hoặc những biệt danh sinh trắc (*biometric*) identifier)
*Những cái gì người dùng **có** (chẳng hạn, chứng minh thư (*ID card*), chứng chỉ an ninh (*security token*), chứng chỉ phần mềm (*software token*) hoặc điện thoại di động (*cell phone*))
*Những gì người dùng **biết** (chẳng hạn, mật khẩu, mật khẩu ngữ (*pass phrase*) hoặc số định danh cá nhân (*personal identification number - PIN*))
Đôi khi, một tổ hợp của những phương pháp trên được sử dụng, chẳng hạn, thẻ nhà băng (*bank card*) và số định danh cá nhân - trong trường hợp này, thuật ngữ được dùng là 'Xác thực dùng hai nhân tố (*two-factor authentication*).

Trong lịch sử, vết lăn tay được dùng là một phương pháp xác minh đáng tin nhất, song trong những vụ kiện tòa án (*court cases*) gần đây ở Mỹ và ở nhiều nơi khác, người ta đã có nhiều nghi ngờ có tính chất căn bản, về tính đáng tin cậy của dấu lăn tay. Những phương pháp sinh trắc khác được coi là khả quan hơn (quét võng mạng mắt và quét vết lăn tay là vài ví dụ), song có những bằng chứng chỉ ra rằng những phương pháp này, trên thực tế, dễ bị giả mạo.

Trong ngữ cảnh của dữ liệu máy tính, nhiều phương pháp mật mã (*cryptographic methods*) đã được xây dựng như chữ ký số (*digital signature*) và phương pháp xác thực bằng thử thách-trả lời (*challenge-response authentication*). Đây là những ví dụ về những cách hiện nay không thể giả mạo được **nếu** (và chỉ nếu) chìa khóa của người khởi thủy không bị thỏa hiệp. Rằng việc người khởi thủy (hay bất cứ ai ngoài kẻ tấn công biết (hoặc không biết) về một sự thỏa hiệp nào đấy là một việc chẳng có dính dáng gì hết. Không ai có thể chứng minh được những phương pháp xác thực dùng mật mã này có an toàn hay không, vì có thể những tiến triển trong toán học không lường trước được có thể làm cho chúng, sau này, trở nên dễ bị phá vỡ. Nếu xảy ra, thì việc này sẽ làm cho những phương pháp xác minh được dùng trong quá khứ trở nên không tin cậy. Cụ thể là, một bản giao kèo được ký bằng chữ điện tử có thể sẽ bị nghi ngờ về tính trung thực của nó khi người ta phát hiện ra một tấn công mới đối với kỹ thuật mật mã dùng trong các chữ ký.

## Xem thêm
* Mật mã hóa khóa công khai (*Public key cryptography*)
* Vị trí địa lý (*Geo-location*)
* Giao thức Kerberos
* SSH
* Trao đổi chìa khóa mật mã (*Encrypted key exchange - EKE*)
* Giao thức bảo an mật khẩu từ xa (*Secure remote password protocol - SRP*)
* Xác thực mạch vòng kín (*Closed-loop authentication*)
* Dịch vụ xác thực người dùng quay số vào từ xa (*Remote Authentication Dial In User Service - RADIUS*)
* Giao thức đường kính (*DIAMETER*)
* Mã xác minh thông điệp dùng khóa băm (*keyed-hash message authentication code - HMAC*)
* Giao thức xác minh có khả năng khuếch trương (*Extensible Authentication Protocol - EAP*)
* Xác thực dùng hai nhân tố/có hiệu lực cao (*Two-factor / strong authentication*)
* Ủy quyền (*Authorization*)
* Sinh trắc (*Biometrics*)
* Định nghĩa về giao thức dịch vụ xác thực công khai (*Authentication Open Service Interface Definition*)
* Thử nghiệm Turing công khai hoàn toàn tự động để phân biệt người và máy tính (*Completely Automated Public Turing Test to Tell Computers and Humans Apart - CAPTCHA*)
* Trình bao bọc giao thức điều khiển truyền thông (*TCP Wrapper*)
* Phân hưởng bí mật (*Secret sharing*)
* Truy cập Athens và quản lý nhận dạng (*Athens access and identity management*)

## Liên kết ngoài
* Password Management Best Practices .
* Password Policy Guidelines .